- View - Fragment
- Model - Repository fetches from API and saves data to DB then returns data from DB
- ViewModel - exposes stream of data for UI updates. Applies transformations of LiveData e.g. Sorting
- Navigation Component
- Hilt Dependency Injection
- Room Database
- Kotlin Extensions for LiveData
- Arch Core Testing, Coroutine Test
- Retrofit - HTTP Web Service Client
- GSON - Json Serialiser/Deserialiser
- Picasso - Image Loader
- Testing - MockWebServer, Kluent, Mockk
- API
- Repository
- ViewModel
- Database
- Circle CI - Continuous Integration
- Dependabot - Automated dependency updates