- Add Navigation Component for backdrop implementation
- Placeholder for News Fragment (TBD)
- Upgrade Glide and Material, use Material theme
- API call change from page relocation
- upgrade retrofit and add Kotlin coroutines support
- change UI and palette
- add coroutine support for Room
- scope coroutines to ViewModel lifecycle with a Job
- add Material backdrop w menu
- basic handle landscape xml
- fixed data scrape for change in page
- flatten UI
- inject BoundayCallback into repository
- check network to prevent unnecessary wake up for radio
- add network status icon
Androidx, ICS(15) to Android10, latest best practices @ google
MVVM
pattern with Paging
, LiveData
and Room
, and Repository
pattern are used to page in scraped
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. Covid data is as up to date as possible, but may change suddenly.
Swipe to refresh is available on the toolbar to get the very latest.
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
- 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