Kotlin Android application that connects to https://randomuser.me/
and displays the result grouped by letters and sorted in alphabetical order.
The app composits of two screens:
- Main Screen that displays list of all users.
- Details Screen that displays simple user details + (for now) some long stub text.
- The app is written with MVVM architecutre.
- UI State is persisted across confuguration changes with Android
ViewModel
. - UI State is propagated from
ViewModel
to Ui withLiveData
. - Api data is propagated to the
ViewModel
woithRxJava
. - The data is cached with Room so it also works in airplane mode.
- Koin is used as
Dependeny InjectionService Locator. - View Models and Repository are 100% covered with unit tests.
Notes:
- The Details screen does not need to be separate Activity, but I wanted to play a bit with generic navigation approach.
- There is bunch of small effort but also small value TODOs in the Details Screen.
- The app is not finished, there is lots of potential next steps all depending on the direction of the product.
Main screen | Details screen |
---|---|