QuickRead is a modern, feature-rich mobile application built with Flutter that provides users with the latest news articles from around the world. The app offers a seamless and interactive news reading experience with multiple advanced features.
- Fetch and display latest news articles
- Support for top headlines and search functionality
- Clean, modern UI with card-based article display
- Light and Dark mode support
- Smooth theme switching
- Persistent theme preference
- Date range filtering for news articles
- Source and category selection options
- Sorting by published date, relevancy, or popularity
- User-friendly interface for applying filters
- Real-time news search
- Search history management
- Easy access to recent searches
- Article content reading feature
- Play/Pause/Stop speech controls
- Clear US English pronunciation
- Save favorite articles
- Dedicated bookmarks screen
- Easy bookmark management
- Full article URL launching
- Detailed article view
- Share and read full articles
The app uses Firebase Authentication to manage user accounts. Users can sign up and log in using their email and password. The authentication flow includes:
- Sign Up: New users can create an account by providing an email and password.
- Login: Existing users can log in to their accounts.
- Logout: Users can log out, which clears their authentication state.
- Google Sign-In: Users can sign in using their Google account, which allows for a seamless login experience.
Here are some screenshots of the app in action:
The application follows the MVVM (Model-View-ViewModel) architecture pattern, enhanced by the Provider package for state management. This structure promotes a clear separation of concerns:
- Model: Represents data structures and business logic (e.g.,
Article,SearchFilters,NewsService). - View: Comprises UI components that display data and interact with users (e.g.,
HomeScreen,ArticleDetailsScreen). - ViewModel: Managed by the
Provider, it holds the app's state and business logic, notifying the View of any changes (e.g.,NewsProvider,SearchHistoryProvider).
This architecture enables reactive programming, allowing the UI to automatically update in response to state changes, making the app scalable and maintainable.
- Flutter
- Dart
- Provider for State Management
- News API for fetching articles
- SharedPreferences for local storage
- flutter_tts for text-to-speech
- url_launcher for opening web links
- flutter_tts: Text-to-Speech functionality
- provider: State management
- shared_preferences: Local data persistence
- url_launcher: Opening web URLs
- http: Network requests
- Flutter SDK (latest stable version)
- Android Studio or VS Code with Flutter extensions
- Android/iOS simulator or physical device
- Clone the repository
git clone https://github.com/Sanmoy1/QuickRead.git
cd QuickRead- Install dependencies
flutter pub get- Get a News API Key
- Visit NewsAPI.org
- Sign up and get a free API key
- Replace the API key in the NewsProvider
- Run the app
flutter run- Modify
lib/providers/news_provider.dartto update API key - Adjust TTS settings in
lib/providers/tts_provider.dart
-
Home Screen
- Latest news articles
- Search functionality
- Theme toggle
-
Article Details Screen
- Full article preview
- Text-to-Speech
- Open full article
- Bookmark option
-
Bookmarks Screen
- Saved articles
- Theme toggle
- Article management
- Internet access
- Text-to-Speech engine access
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
Report issues and bugs on the GitHub repository issues page.
Happy Reading! 📖✨






