followed Clean MVVM Architecture patten,
Kotlin language is used to make app,
used Room for local database,
used Retrofit for API call,
used RxJava for background threding,
used Kodein for dependency injection,
used LiveData for observing data,
used MediatorLiveData for combining two LiveData
used Glide for image loading,
used shimmer library for showing loading shimmer effect
Junit, Expresso -> will do in next push
- how to make MVVM Architecture,
- how to make API calls
- how to cache the API data to local database
- how to refresh the local database
- how to use MediatorLiveData
- how to use RxJava
- how to handle device rotation
- how to decide, to fetch the data locally or form remote server
- how to use ConstraintLayout layout
- how to decoupled the code using Kodein(Dependency Injection)
- how to expand and collapse RecyclerView item
- and Much more..