QQ
qqvladik/RnM
A modern Android application for exploring the Rick and Morty universe, built with Jetpack Compose and cutting-edge Android technologies
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/
On this page
Languages
Kotlin100.0%
Contributors
Latest Release
v1.0.0April 26, 2025Created May 6, 2023
Updated February 5, 2026


