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