A modern Android application built with Jetpack Compose that displays information about Rick and Morty characters using the Rick and Morty API.
Portal-themed app icon • Clean Architecture + MVVM • 81+ Tests • 95/100 Code Quality
# Clone and build
git clone <repository-url>
cd RicknMorty
./gradlew assembleDebug
# Run tests
./gradlew test
# Install app
./gradlew installDebugDetailed setup: Getting Started Guide
| Document | Description |
|---|---|
| Getting Started | Setup & installation |
| Architecture | Clean Architecture + MVVM details |
| Features | All features & bug fixes |
| Testing | 81+ tests guide |
| Code Quality | Detekt & ktlint (95/100) |
✅ Character list with pagination, search & filters
✅ Character details with favorites
✅ Favorites screen with offline support
✅ Dark/Light theme
✅ Room database caching
Details: Features Documentation
UI: Jetpack Compose • Material3 • Coil
Architecture: Clean Architecture • MVVM • Hilt
Storage: Room • Retrofit • OkHttp
Testing: JUnit • MockK • Compose Testing (81+ tests)
Complete details: Architecture Documentation
- Android Studio Hedgehog+
- JDK 17
- Min SDK: 24 (Android 7.0)
- Target SDK: 35 (Android 14)
- TMP_QUESTIONS.md - 20 technical Q&A
- TMP_CHECKLIST.md - Final review checklist
(Delete these after interview preparation)
Built with modern Android best practices for senior developer interview.
- Components: Reusable UI components
- Navigation: Navigation graph setup
The app follows Material Design 3 guidelines with:
- Dynamic color theming
- Consistent spacing and typography
- Responsive layouts
- Smooth animations and transitions
UI (Compose)
↓
ViewModel (StateFlow)
↓
Use Case
↓
Repository
↓
API ← → Local DB (Room)
This app uses the Rick and Morty API:
- Base URL:
https://rickandmortyapi.com/api/ - Endpoints:
GET /character- List charactersGET /character/{id}- Get character details
- Clean Architecture - Separation of concerns
- SOLID Principles - Maintainable and scalable code
- Dependency Injection - Loose coupling with Hilt
- Reactive Programming - Flow for data streams
- Error Handling - Proper Result/Exception handling
- Offline-First - Local cache with Room
Potential improvements:
- Episode details screen
- Location details screen
- Character comparison feature
- Advanced filtering options
- Share character information
- Widget support
- Accessibility improvements
- Performance optimizations with Paging 3
This project is created for educational purposes as part of an Android development code challenge.
Created with ❤️ by Carlos
- Rick and Morty API for providing the data
- Android community for excellent libraries and resources