Unsplash Grid
📜 Description
This application displays a grid of Unsplash images retrieved from a REST API. It's built following Android best practices.
Used architecture:
Model-view-viewmodel (MVVM)
App layers:
- Presentation: using Jetpack Compose.
- DI: using Dagger Hilt.
- Domain: using Retrofit to handle the API calls and Retrofit-Gson for serialization and deserialization.
- Data: mapping data from the API and implementing ImageRepository.
Used tech/tools:
- UI: Jetpack Compose.
- Compose Coil for managing the asynchronous image request and handling UI changes in the following UI states:
- loading with placeholder retrieved from drawable.
- error message in case of server connection failure.
- success showing images.
- Dependency injection: Dagger Hilt.
- Android architecture components (Lifecycle, ViewModel).
- Kotlin Flows and Coroutines.
- Network: Retrofit and Gson.