GitHunt
Rick and Morty full logo

A modern Android application for exploring the Rick and Morty universe, built with Jetpack Compose and cutting-edge Android technologies. API https://rickandmortyapi.com/

(The emulators in the GIFs below have their internet connection intentionally throttled to make the loading visible.)


Features

๐Ÿš€ Core Features

  • Browse characters, locations, and episodes from the Rick and Morty universe
  • Fully interactive design: users can tap on any filter, item, or detail to navigate to a dedicated screen with the selected parameter applied.
  • Offline-first design with seamless caching
  • Deep linking support for sharing content
  • Predictive back gestures for smooth navigation
  • Min SDK 21

๐ŸŽจ UI/UX Highlights

  • Dark/Light theme support
  • Design System (custom, based on: https://www.figma.com/community/file/1225458908057208058)
  • Multi-preview for every composable (light/dark mode and portrait/landscape)
  • Full edge-to-edge support
  • Beautiful shared element transitions between screens
  • Collapsible app bars with custom scroll behaviors
  • Adaptive layouts for different phone orientation
  • Instagram-like tab navigation (clear backstack on first click, scroll to top on second, refresh on third)
  • Shimmer effects and loading placeholders
  • Hide keyboard when click or scroll screen
  • Splash screen
  • Pull to refresh

โš™๏ธ Technical Highlights

  • MVI architecture with loading initial data started on first subscribe (custom, based on: https://github.com/adidas/mvi)
  • Modular design with feature, api, base modules
  • Type-safe navigation system
  • Multiple NavHosts: Nested navigation graphs (for bottom navigation and deeplinks)
  • Pagination with custom Offline/Online PagingSources and RemoteMediators
  • Usage of PageKeys which are stored locally to paginate and cache data basing on Filter parameter
  • Comprehensive error handling and retry mechanisms

Tech Stack

๐Ÿ“ฑ Android Components

  • 100% Kotlin with Coroutines & Flow
  • Jetpack Compose with Material 3 for UI
  • ViewModel
  • Navigation Compose with custom feature entries (with usage of NEW type-safe non-reified methods)
  • Room for local database
  • Paging 3 for pagination
  • Dagger 2 for DI

๐ŸŒ Networking

  • Retrofit for REST API
  • Coil for image loading
  • Chucker for HTTP inspection

๐Ÿ—๏ธ Architecture

  • MVI (Model-View-Intent)
  • Clean Architecture
  • Modular design (api, base, feature layers)
  • Type-safe navigation system

๐Ÿ› ๏ธ Build System

  • Gradle Version Catalogs
  • KSP for compile-time processing
  • Included build-logic for common build configurations
  • Custom convention gradle precompiled script plugins

Architecture Overview

 
RnM
โ”œโ”€โ”€ app/
โ”œโ”€โ”€ build-logic/
โ””โ”€โ”€ sources/
    โ”œโ”€โ”€ api/
    โ”‚   โ”œโ”€โ”€ character_detail_api/
    โ”‚   โ”œโ”€โ”€ characters_list_api/
    โ”‚   โ”œโ”€โ”€ data_api/
    โ”‚   โ”œโ”€โ”€ database_api/
    โ”‚   โ”œโ”€โ”€ domain_api/
    โ”‚   โ”œโ”€โ”€ episode_detail_api/
    โ”‚   โ”œโ”€โ”€ episodes_list_api/
    โ”‚   โ”œโ”€โ”€ location_detail_api/
    โ”‚   โ”œโ”€โ”€ locations_list_api/
    โ”‚   โ”œโ”€โ”€ model/
    โ”‚   โ””โ”€โ”€ remote_api/
    โ”œโ”€โ”€ base/
    โ”‚   โ”œโ”€โ”€ core/
    โ”‚   โ”œโ”€โ”€ core_ui/
    โ”‚   โ”œโ”€โ”€ data/
    โ”‚   โ”œโ”€โ”€ database_room/
    โ”‚   โ”œโ”€โ”€ dependencies/
    โ”‚   โ”œโ”€โ”€ design_system/
    โ”‚   โ”œโ”€โ”€ domain/
    โ”‚   โ””โ”€โ”€ remote_retrofit/
    โ””โ”€โ”€ features/
        โ”œโ”€โ”€ character_detail/
        โ”œโ”€โ”€ characters_list/
        โ”œโ”€โ”€ episode_detail/
        โ”œโ”€โ”€ episodes_list/
        โ”œโ”€โ”€ location_detail/
        โ””โ”€โ”€ locations_list/  
 

Languages

Kotlin100.0%

Contributors

Latest Release

v1.0.0April 26, 2025
Created May 6, 2023
Updated February 5, 2026
qqvladik/RnM | GitHunt