It shows news under following catagories:
- Top Headlines wise news from 5 different country
- Category wise news from 5 different category
- Source wise news from 5 different sources
The project follows the MVVM structure with Modular Architecture without any specifics.
There are two modules in the project
app
- The UI of the app. The main project that forms the APKdatastore
- The REST API consumption and local database android library
- Kotlin Coroutines - For asynchronous and more..
- Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- Room Database - SQLite object mapping library.
- Dagger-Hilt - Standard library to incorporate Dagger dependency injection into an Android application.
- Retrofit - A type-safe HTTP client for Android and Java.
- Jetpack Navigation - Android Jetpack's Navigation component helps you implement navigation, from simple button clicks to more complex patterns.
- Jetpack Paging 3 - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network.
- Moshi - A modern JSON library for Kotlin and Java.
- Moshi Converter - A Converter which uses Moshi for serialization to and from JSON.
- Coil-kt - An image loading library for Android backed by Kotlin Coroutines.
- Jetpack DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs. Basically it's a replacement for SharedPreferences.
- Chrome Custom Tabs - Custom Tabs is a browser feature, introduced by Chrome. We can use it like WebView.
- Lottie Animation - Lottie is a library for that parses animations exported as json and renders them natively.