- Model-View-ViewModel architecture
- Dagger for Dependency Injection
- Retrofit for Service with Gson
- Kotlin for development
- Kotlin DSL for converting gradle scripts from Groovy to Kotlin
- Coroutines for viewModel handling of async and non-blocking programming.
- Jetpack Compose for Card Item and LazyColum which is recyclerView in Compose World.
- Coil Image API for image loading/caching
- Mockito/Espresso/extJunit/Robolectric for unit testing and android tests for viewmodel, views
- OKHttp Interceptor/Mockserver for logging service responses on Logcat and creating mock server for testing Repository
Here's the video of how the app works and looks like.
I used the Android TopBar Search for finding the repository with help of its state flows and after retrieving the data, show to UI using Composable View Components one for Item List card view which is used in Lazy Column Search List and another for Detailed View.