This is a sample Android app that:
- Displays users avatars and logins from https://api.github.com/users
- Clicking on a user, displays the user's repositories and some details from https://api.github.com/users/{login}/repos. Clicking on a repository, transfers the user to the repository at github.com.
- All data is saved on the device. So on next visits, the data is loaded in this order: loader → data from database → data from API
Note: Checkout the tdd branch for a test-driven development approach.
This sample is implemented using the following stack:
- Kotlin + Coroutines + StateFlow
- Jetpack Compose
- Repository pattern + MVVM + Single Activity
- Retrofit
- Hilt
- Coil
- Clean Architecture
Below is the diagram of the app architecture: