Awesome
NewsFeed-MVI-Dagger
Project Overview
NewsFeed, provides live top and breaking headlines for a country, specific category in a country, single source, or multiple sources, by interacting to News API
Screenshots
API Key Note
Define key in build.gradle
In your Android studio root directory, locate the gradle.properties
under .gradle
folder and add the following:
Add NEWS_APIKEY = "YOUR-API-KEY"
.
Language
Features
- MVI with Android Architecture Components(Room, LiveData, ViewModel)
- Leverage
NetworkBoundResource
Dagger2
for Dependency injection architectural pattern- Discover the top headlines news in a country
- Look for top headlines news based on Sources and categories
- Users can mark an article as favorite in the details view by tapping a heart icon
- Pagination and endless scrolling using custom pagination.
- Handle network status and network failures
- ConstraintLayout(guidelines, barriers... etc)
- ViewPager2
- Material design.
- Custom Navigation Controller for Multiple navigation graph
- Bottom Navigation Bar
Kotlin Coroutines
Libraries
- AndroidX - Previously known as 'Android support Library'
- Glide - for loading and caching images
- Retrofit 2 - Type-safe HTTP client for Android and Java by Square, Inc.
- Gson - for serialization/deserialization Java Objects into JSON and back
- Dagger 2 - for dependency injection
- Android Architecture Components
- Material Design
External Resources
NewsFeed uses the News API but is not endorsed or certified by NewsApi.