Androidx, ICS(14) to Android10, latest best practices @ google
MVVM pattern with Paging, LiveData and Room, and Repository pattern with Coroutines are used to page in data
for the UI and also back-fill from the network as the user reaches the end of the list or LiveData detects a change.
Swipe to refresh is available on the toolbar to get the very latest.
A separate Flow branch will be added for integrating it.
Room uses a DataSource.Factory as a positional data source and the Paging Boundary Callback
API to get notified when the Paging library consumes the available local data. NetworkState implementation
keeps track of network status.
Cached content is always available on the device and the user will still have a good experience even if the network is slow / unavailable ---> OFFLINE_MODE! Glide caches images as long as they are initially loaded.
- [Androidx][]
- Android Architecture Components
- [Coroutines][]
- Retrofit for REST api communication
- Glide for image loading
- espresso for UI tests
- mockito for mocking in tests
- Retrofit Mock for creating a fake API implementation for tests



