Skip to content

Modern Android app built with Clean Architecture + MVVM, Jetpack Compose, Hilt, Room, and Retrofit. Features unit test, ui tests, 95/100 code quality score, offline-first architecture. Showcases Rick and Morty characters with search, filters, and favorites.

Notifications You must be signed in to change notification settings

unomonteiro/RicknMorty

Repository files navigation

Rick and Morty Android App

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 iconClean Architecture + MVVM81+ Tests95/100 Code Quality


🚀 Quick Start

# Clone and build
git clone <repository-url>
cd RicknMorty
./gradlew assembleDebug

# Run tests
./gradlew test

# Install app
./gradlew installDebug

Detailed setup: Getting Started Guide


📚 Documentation

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)

📖 Documentation Index


✨ Features

✅ Character list with pagination, search & filters
✅ Character details with favorites
✅ Favorites screen with offline support
✅ Dark/Light theme
✅ Room database caching

Details: Features Documentation


🛠️ Tech Stack

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


📋 Requirements

  • Android Studio Hedgehog+
  • JDK 17
  • Min SDK: 24 (Android 7.0)
  • Target SDK: 35 (Android 14)

📞 Interview Prep

(Delete these after interview preparation)


Built with modern Android best practices for senior developer interview.

  • Components: Reusable UI components
  • Navigation: Navigation graph setup

🎨 UI Design

The app follows Material Design 3 guidelines with:

  • Dynamic color theming
  • Consistent spacing and typography
  • Responsive layouts
  • Smooth animations and transitions

🔄 Data Flow

UI (Compose) 
   ↓
ViewModel (StateFlow)
   ↓
Use Case
   ↓
Repository
   ↓
API ← → Local DB (Room)

🌐 API

This app uses the Rick and Morty API:

  • Base URL: https://rickandmortyapi.com/api/
  • Endpoints:
    • GET /character - List characters
    • GET /character/{id} - Get character details

📝 Code Quality

  • 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

🔮 Future Enhancements

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

📄 License

This project is created for educational purposes as part of an Android development code challenge.

👥 Author

Created with ❤️ by Carlos

🙏 Acknowledgments

  • Rick and Morty API for providing the data
  • Android community for excellent libraries and resources

About

Modern Android app built with Clean Architecture + MVVM, Jetpack Compose, Hilt, Room, and Retrofit. Features unit test, ui tests, 95/100 code quality score, offline-first architecture. Showcases Rick and Morty characters with search, filters, and favorites.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages