This Project is to Cover a Flutter News App using News API
This project is a Flutter application for displaying all news with pagination and the latest news from various categories. It follows clean architecture principles and organizes code into a clear directory structure.
If you are new to Flutter with Rest API you can check
- Flutter 3.0 & Rest API crash course, build a store app - Course For Beginners
- Flutter 3 0 Rest Api Crash Course, Build a News App From Scratch - Course For Experienced Mobile Developers
If you find this project useful, please consider giving it a star ⭐ on GitHub to help spread the word. And if you are interested in following my contributions, give me a follow on GitHub!
This project is open-source and available under the MIT License. See the LICENSE file for more details.
Below is a visual representation of the project's directory structure:
The application is organized into the following directories:
lib/
: Main directory for Dart source files.constants/
: Contains all the constant values used throughout the app.models/
: Data models that represent the structure of the objects used in the app.services/
: Services for handling core functionality such as API calls, navigation, and data persistence.utils/
: Utility classes and functions that provide reusable and commonly used functionality.view/
: Directory containing UI-related widgets that represent the visual elements of the app.view_models/
: ViewModels that contain the state and business logic of the app, separated from the UI.main.dart
: The entry point of the application.
This app uses the Provider package for state management.
Each major feature has its own Provider
that encapsulates its state and business logic, ensuring a separation of concerns and easier maintainability.
To test the app, pre-built Android APKs are available for download. You can find them in the repository under the following link:
Simply download the appropriate APK file to your Android device and install it to begin testing.
To run the app, ensure you have Flutter installed and your environment is set up, then execute:
flutter run