Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/HadySalhab/NewsFeed-MVI-Dagger
Android News Application built in kotlin: MVI+Dagger+NetworkBoundResource+ViewModel+Livedata.
https://github.com/HadySalhab/NewsFeed-MVI-Dagger
Last synced: about 1 month ago
JSON representation
Android News Application built in kotlin: MVI+Dagger+NetworkBoundResource+ViewModel+Livedata.
- Host: GitHub
- URL: https://github.com/HadySalhab/NewsFeed-MVI-Dagger
- Owner: HadySalhab
- Created: 2020-02-25T05:39:02.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-03-26T08:10:39.000Z (over 4 years ago)
- Last Synced: 2024-08-02T20:46:23.429Z (4 months ago)
- Language: Kotlin
- Homepage:
- Size: 519 KB
- Stars: 13
- Watchers: 2
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- Awesome-Android-Open-Source-Projects - NewsFeed-MVI-Dagger
- awesome-android-kotlin-apps - NewsFeed-MVI-Dagger
README
# 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](https://newsapi.org/)
## Screenshots
![Headlines](https://user-images.githubusercontent.com/51857962/77375276-1e23cd80-6dc1-11ea-9e38-69da7f95a66e.png) ![headline_dialog](https://user-images.githubusercontent.com/51857962/77375281-211ebe00-6dc1-11ea-9e73-d1a97f362fda.png) ![Sources](https://user-images.githubusercontent.com/51857962/77375284-25e37200-6dc1-11ea-965c-1915ad1d78b4.png) ![source-articles](https://user-images.githubusercontent.com/51857962/77375290-2976f900-6dc1-11ea-8a05-4423bdb36a3b.png) ![favorites](https://user-images.githubusercontent.com/51857962/77375294-2bd95300-6dc1-11ea-8d97-0c081ed41224.png)
## 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
[Kotlin](https://kotlinlang.org/)
## 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](https://developer.android.com/jetpack/androidx/) - Previously known as 'Android support Library'
- [Glide](https://github.com/bumptech/glide) - for loading and caching images
- [Retrofit 2](https://github.com/square/retrofit) - Type-safe HTTP client for Android and Java by Square, Inc.
- [Gson](https://github.com/google/gson) - for serialization/deserialization Java Objects into JSON and back
- [Dagger 2](https://dagger.dev/) - for dependency injection
- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture/)
- [Room](https://developer.android.com/topic/libraries/architecture/room)
- [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel)
- [LiveData](https://developer.android.com/topic/libraries/architecture/livedata)
- [Navigation](https://developer.android.com/guide/navigation?gclid=CjwKCAiA-vLyBRBWEiwAzOkGVLT4zk8NhxWujb6P4i-NUdcw4U3hWy5gKcnTkHE3IgE18_dayy7bBRoCxtYQAvD_BwE)
- [Material Design](https://material.io/develop/)## External Resources
- [CodingWithMitch/courses](https://codingwithmitch.com/courses/)
**NewsFeed uses the News API but is not endorsed or certified by NewsApi.**