Welcome to the Nova News repository! This application is a cross-platform mobile app built with Flutter, targeting both iOS and Android. The app follows a clean architecture approach to ensure maintainability, scalability, and testability.
The primary features of this app include:
- Fetching the latest news articles from NewsAPI.org 🌐
- Managing state with BLoC (Business Logic Component) 🔄
- Using Retrofit for network operations 🌍
- Storing saved articles locally with Floor database 🗃️
- Dependency injection using the get_it package 🔧
- Managing widget lifecycle with flutter_hooks 🌀
The app is designed with clean architecture principles to separate concerns, making it easier to manage, test, and scale. This involves splitting the codebase into different layers, such as presentation, domain, and data.
The news content is retrieved from the open-source NewsAPI.org, providing the latest and trending news articles from various sources.
State management is achieved using the BLoC (Business Logic Component) pattern, which helps in managing the state of the application efficiently.
Retrofit is implemented to handle HTTP requests to the NewsAPI, ensuring a seamless and efficient retrieval of articles.
The Floor database is used for local storage, allowing users to save their favorite articles. This ensures that saved articles can be accessed even when offline.
The get_it package is used for dependency injection, which helps in managing and injecting dependencies throughout the application.
Flutter_hooks is utilized to manage the lifecycle of widgets, making it easier to handle state and lifecycle events.
- Flutter: A UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase.
- NewsAPI.org: An API providing the latest and trending news articles from various sources. 🌐
- BLoC: A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern. 🔄
- Retrofit: A type-safe HTTP client for Dart and Flutter, which simplifies the process of making network requests. 🌍
- Floor: A persistence library for Flutter, providing a type-safe and easy-to-use abstraction over SQLite. 💾
- get_it: A simple service locator for dependency injection in Flutter and Dart. 🛠️
- flutter_hooks: A Flutter implementation of React hooks, providing a way to manage widget lifecycle events and state more effectively.
Contributions are welcome! Please fork the repository and create a pull request with your changes. 🙌
This project is licensed under the MIT License. See the LICENSE file for more information. 📜
- Thanks to NewsAPI.org for providing the news data. 🌟
- Flutter community for their valuable packages and resources. 👐