- Build app using Google's best practices and recommended architecture for building robust, high-quality apps.
-
It's a News App, which
fetchesnews from aREST APIand renders in a RecyclerView, not every time we are fetching from Internet instead we arecachingit offline in theRoom Database. -
For refreshing the manually using SwipeRefresh functionality, it also refreshes news articles time to time in around 60 minutes.
-
Using WebView to open the detailed articles, rather than passing to other browser the intent.
-
Breaking News
pageSize=100. -
There also a
Search Newstab where we can search news using a keyword. For e.g.topics, locations & sourcesin aPaginatedViewof pageSize=20 after user reached the last, then the another page is loaded. -
We can
Bookmarksany news article which will appear in Bookmarks tab, these bookmarks are synchronized between all the screens, because of we are followingSingle Source of truth principle.
-
App written in 100% kotlin.
-
Using
Retrofitto load data fromREST API. -
Cachingthe data inSQLiteDatabase usingRoom persistance library. -
For Paging, using the
Paging 3library.
-
For rendering images,
Glidelibrary. -
For multi-threading and long running operation, using Kotlin
Coroutines& KotlinFlow. -
For dependency injection using
Dagger Hilt. -
In simple example dependency injection looks like.
- To access view in compile-time safe ways, using
ViewBinding.









