Awesome
News App
This is a News App built using Kotlin and Jetpack components following the Clean Code architecture. It utilizes the Paging Library for efficient data loading, Dagger Hilt for dependency injection, and Retrofit to fetch news from the News API.
https://github.com/mohitdamke/NewsApp/assets/112572179/0cda068f-8806-41b9-9570-3e900bdb7ec5
Features
- Clean Code Architecture: Ensures separation of concerns and makes the codebase more maintainable.
- Kotlin: Leverages the modern language features to write concise and expressive code.
- Jetpack Components: Uses components like LiveData, ViewModel, and Paging.
- Dependency Injection: Utilizes Dagger Hilt to manage dependencies.
- Paging Library: Efficiently loads large data sets by paging the data.
- Retrofit: Simplifies HTTP requests to the News API.
Architecture
The app is built using the Clean Code architecture, which divides the code into three main layers:
- Presentation Layer: Contains UI-related components such as Activities, Fragments, and ViewModels.
- Domain Layer: Contains business logic and use cases.
- Data Layer: Manages data sources such as APIs and databases.
Tech Stack
- Language: Kotlin
- Architecture: Clean Code Architecture(MVVM)
- Dependency Injection: Dagger Hilt
- Networking: Retrofit
- Paging: Paging Library
- Room Database: Room Database Library
- LiveData & ViewModel: Jetpack Components
Setup and Installation
-
Clone the repository:
git clone https://github.com/mohitdamke/NewsApp
-
Open the project in Android Studio.
-
**Get your News API key from NewsAPI
-
Build and run the project.
Usage
Once the app is installed and running, you can browse the latest news articles. The app will efficiently load news articles using the Paging Library, ensuring a smooth user experience even with large data sets.
Screenshots
Contributing
Contributions are welcome! Please open an issue or submit a pull request for any changes.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
- NewsAPI for providing the news data.
- Jetpack for the amazing components.
- Dagger Hilt for the dependency injection framework.
- Retrofit for the networking library.