Highlights of this project----------------------------------------------------------------------------
- MVVM
- Retofit
- Gson
- RxJava
- Picasso
- 100% Offline support (HTTP response caching & Network calls optimization)
- AndroidX
- MockWebServer for Junit test
- Esspresso for UI test
- Expanding recyclerview item on click
- Constraint Layout
- Swipe down layout to refresh recyclerview
- Round imageview using external liberary.
Application Architecture and features-----------------------------------------------------------------------------------------------------------
-
This application architecture follows the MVVM architecture , which provides reactive , lifecycle aware and smooth implementation flow.
-
For achieveing this RxJava2 along with Retrofit are used.
-
For backward compatibility androidx has been used.
-
Application provides flexibility to provide dynamic urls for web requsts as retrofit API has URL has parameters.
-
Application basically fetches trending repositories and displays them in a recyclerview.
-
Application supports Caching Http responses including images using OkHttp interceptors for Retrofit Requests for configurable timeout.
-
once applucation has got the succussfull response from server , every consequent requests are intercepted by request interceptor of retrofit OkHttp client which returns repose from cache unless cache is not expired which helps app optimize bunch repeated network requests.