This App will build upon on
Android Views (XML)
.Room
database for offline news cache.Paging 3
library for loading large sets of data.Retrofit
Http client for making network calls.Dagger Hilt
for Dependency Injection.Navigation Component
for fragment navigation.- Reactive UI using Kotlin
flows
and Coroutines. - Implemented Settings using PreferenceSettingCompat library.
Main features of this news app.
-
Offline Article using Paging 3 Remote mediator.
-
Bookmark the Article for later offline read using Room persistence library.
-
Multiple News categories using Tab layout.
-
Edge to Edge (Drawing the UI behind the System bar).
-
Dark and Light theme support using PreferenceSettingLibrary.
-
Search a specific article.
-
Swipe to delete bookmarked news and more, ...
The app offers a wide range of features that surpass those of other news apps available on GitHub.
This App uses public api for fetching news article's named NewsApi
This Api need a API_KEY for fetching news create a account on NewsApi and include it on AppConstants.API_KEY
There is a some http request limit's if we cross it doesn't return any news
This Project tends to showcases the integration of Retrofit and some other libraries and also we don't have any control over the data all feature's will be based on that api
So adding many features / improvement will not worth for the time for projects like this for this reason's new features might not be implemented in this project
For more modern compose based news app Checkout WikiNewsFeed
If you like to contribute this project you can do it As i already mention this project aims to showcases the different libraries for single Retrofit project to scale this app further more.
All features and improvement should be committed on respective branches features
branch for new features and improvement
branch was improvement the existing feature.