- Android SDK 33
- Java 11
- Standard XML view based system
- Kotlin, Coroutines
- MVVM,
LiveData
,Flow
, Data Binding - Material Design 3 for UI
- Dagger for Dependency Injection
- Retrofit as a REST client
- Coil for image loading
- Paging 3 for optimized loading of lists from paginated data sources
App contains two screens:
- User Login / Registration (
UserLoginFragment
)- can switch between login or registration
- by taping on logo, form is prefilled with working credentials
- User List (
UserListFragment
)- displays paginated list of users with placehlders
- handling network error withy retry functionality and auto retry when network is available again
- grid will have two columns in larger screen (e.g. landscape on phone or portrait on tablet)
- storing User following status persistently
- Tweak login screen
- displaying errors near inputs
- use Coordinator Layout for screen
- better UX for loading indication
- Tweak list screen
- extract some of the code into helpers
- don't mutatate
User.isFollowed
but update it in data source with potential error handling - option to refresh list
- New User Details screen - master-detail on tablet or new screen with transition on phone
- Use "Single live events" but must handle loading error / dialogs on orientation change.