This is a basic "News App" project that uses Clean Architecture and Riverpod for state management. 🚀
news.mp4
✅ News List: Displays the related news that given query from the user with pagination.
✅ News Detail: Displays the basic information and images of the selected news.
The project is organized into the following layers:
📌 Data Layer: Handles data sources such as APIs and local databases.
📌 Domain Layer: Contains the business logic.
📌 Presentation Layer: The UI components, using the Flutter framework.
- 🏗 flutter_riverpod: A flexible and powerful state management solution for Flutter.
- 🧩 get_it: A simple service locator for dependency injection.
- 🌐 dio: A powerful HTTP client for making API requests.
- 📜 pretty_dio_logger: Adds logging capabilities to Dio requests for better debugging.
- 📦 hive: A lightweight and fast key-value database for Flutter.
- 🐝 hive_flutter: Hive integration with Flutter.
- 🖼 cached_network_image: A widget that downloads and caches network images.
- ⚖️ equatable: Simplifies value comparison for objects by overriding equality methods.
- 🏆 very_good_analysis: Enforces lint rules for Flutter projects to ensure high-quality code.
- 🎨 lottie: Displays Lottie animations in Flutter for rich, interactive UI elements.
- 🎭 dartz: A library for functional programming concepts like Option and Either.
- 🛠 envied: A package for managing environment variables in a strongly typed manner.
- ⚡ build_runner: A tool for generating code, including serializers and more.
- 🏗 hive_generator: Code generator for Hive type adapters.
- 🔑 envied_generator: Code generator for environment variable classes.
GET /everything
Base URL: newsapi.org/v2| 🏷 Parameter | 🔠 Type | 📖 Explanation |
|---|---|---|
api_key |
string |
🔑 API KEY |
q |
string |
🔎 The query that will be searched |
page |
string |
📄 The page number will be provided by the app. |
pageSize |
string |
📏 The page size will be provided by the app. |