How nauhalf/rick-n-morty works
Rick-n-Morty is an Android character browser: users view the first page of characters, select one, and see biographical details and episode information. The graph follows the documented list/detail workflow and the sampled repository and detail-screen implementation. Main-screen and ViewModel wiring is inferred from the named modules and documented behavior; unsampled internal calls are not expanded beyond that evidence.
Main entry points: DetailActivity.kt Character detail · MainActivity.kt Character list · CharacterRepositoryImpl.kt Character repository · DetailViewModel.kt Detail ViewModel
Components 21
Screens and presentation
- Character list
app/src/main/java/com/nauhalf/ricknmorty/view/main/MainActivity.kt - List ViewModel
app/src/main/java/com/nauhalf/ricknmorty/view/main/MainViewModel.kt - Character detail
app/src/main/java/com/nauhalf/ricknmorty/view/detail/DetailActivity.kt - Detail ViewModel
app/src/main/java/com/nauhalf/ricknmorty/view/detail/DetailViewModel.kt - Detail presentation
app/src/main/java/com/nauhalf/ricknmorty/view/detail/CharacterDetailUiModel.kt - Character list adapter
app/src/main/java/com/nauhalf/ricknmorty/view/main/CharacterAdapter.kt - Detail list adapter
app/src/main/java/com/nauhalf/ricknmorty/view/detail/CharacterDetailAdapter.kt
Domain actions
- Fetch all characters
app/src/main/java/com/nauhalf/ricknmorty/domain/character/usecase/FetchAllCharacterUseCase.kt - Fetch character
app/src/main/java/com/nauhalf/ricknmorty/domain/character/usecase/FetchCharacterUseCase.kt - Fetch episode
app/src/main/java/com/nauhalf/ricknmorty/domain/episode/usecase/FetchEpisodeUseCase.kt
Character and episode data
- Character repository
app/src/main/java/com/nauhalf/ricknmorty/data/character/implementation/repository/CharacterRepositoryImpl.kt - Episode repository
app/src/main/java/com/nauhalf/ricknmorty/data/episode/implementation/repository/EpisodeRepositoryImpl.kt - Character model
app/src/main/java/com/nauhalf/ricknmorty/data/character/api/model/Character.kt - Episode model
app/src/main/java/com/nauhalf/ricknmorty/data/episode/api/model/Episode.kt
Network integration
- Character API client
app/src/main/java/com/nauhalf/ricknmorty/data/character/implementation/remote/api/CharacterApiService.kt - Episode API client
app/src/main/java/com/nauhalf/ricknmorty/data/episode/implementation/remote/api/EpisodeApiService.kt - Network setup
app/src/main/java/com/nauhalf/ricknmorty/core/network/module/NetworkModule.kt - Image loading
app/src/main/java/com/nauhalf/ricknmorty/di/MyGlideModule.kt
Other components
- User
- Rick and Morty API
- Character image host
Connections 24
- User → Character list: opens list
- Character list → List ViewModel: requests list
- List ViewModel → Fetch all characters: fetches characters
- Fetch all characters → Character repository: requests all
- Character repository → Character API client: calls client
- Character API client → Rick and Morty API: fetches list
- Character repository → Character model: maps response
- Character list → Character list adapter: shows characters
- User → Character list: selects character
- Character list → Character detail: opens selection
- Character detail → Detail ViewModel: requests details
- Detail ViewModel → Fetch character: fetches character
- Fetch character → Character repository: requests character
- Detail ViewModel → Fetch episode: loads episode
- Fetch episode → Episode repository: requests episode
- Episode repository → Episode API client: calls client
- Episode API client → Rick and Morty API: fetches episode
- Episode repository → Episode model: maps response
- Character detail → Detail list adapter: submits detail list
- Character detail → Detail presentation: builds detail rows
- Character detail → Image loading: loads image
- Image loading → Character image host: retrieves image
- Network setup → Character API client: provides client
- Network setup → Episode API client: provides client