A single-screen Android app built with Jetpack Compose that showcases characters from Rick and Morty. The app utilizes a Clean Architecture approach with the MVI pattern, providing a robust and maintainable codebase.
- Character List: Displays a list of characters with images and names.
- Favorites Toggle: Users can toggle between all characters and their favorited ones.
- Endless Scrolling: Implements endless scroll for all character list.
- Favorite Icon: Each character item features a favorite icon indicating its state.
- Click Interaction: Clicking on a character toggles its favorite state.
- Database Integration: Favorited characters are saved to a Room database.
- Error Handling: Catches errors from the database, network, server, and unknown issues, with a retry button on the error screen for network issues.
- Dark Mode Toggle: Users can switch between light and dark modes.
- Architecture: MVI with Clean Architecture
- Database: Room
- Dependency Injection: Hilt
- Networking: Retrofit and OkHttp
- UI: Jetpack Compose
- Image Loading: Coil
- Unit Tests: Junit and Mockk
- Rick and Morty API for character data.