How skydoves/themovies works
TheMovies is an Android app for browsing TMDB movie, TV, and people listings and opening corresponding detail views. Its principal flow is browse in the main UI, request data through a ViewModel and repository, then display results; repositories also use Room-backed data. Movie and TV details include keywords, videos, and reviews. The README documents MVVM, LiveData, Room, and TMDB; sampled source confirms Movie/TV detail-data fetching and caching, but not every ViewModel or repository connection, so those links are omitted where uncertain.
Main entry points: MainActivity.kt Browse catalog · MovieRepository.kt Movie data · AppDatabase.kt Room database · TvRepository.kt TV data
Components 26
Presentation
- Browse catalog
app/src/main/java/com/skydoves/themovies/view/ui/main/MainActivity.kt - Movie listings
app/src/main/java/com/skydoves/themovies/view/ui/main/MovieListFragment.kt - TV listings
app/src/main/java/com/skydoves/themovies/view/ui/main/TvListFragment.kt - People listings
app/src/main/java/com/skydoves/themovies/view/ui/main/PersonListFragment.kt - Catalog state
app/src/main/java/com/skydoves/themovies/view/ui/main/MainActivityViewModel.kt - Movie details
app/src/main/java/com/skydoves/themovies/view/ui/details/movie/MovieDetailActivity.kt - Movie detail state
app/src/main/java/com/skydoves/themovies/view/ui/details/movie/MovieDetailViewModel.kt - TV details
app/src/main/java/com/skydoves/themovies/view/ui/details/tv/TvDetailActivity.kt - TV detail state
app/src/main/java/com/skydoves/themovies/view/ui/details/tv/TvDetailViewModel.kt - Person details
app/src/main/java/com/skydoves/themovies/view/ui/details/person/PersonDetailActivity.kt - Person detail state
app/src/main/java/com/skydoves/themovies/view/ui/details/person/PersonDetailViewModel.kt
Repositories
- Movie data
app/src/main/java/com/skydoves/themovies/repository/MovieRepository.kt - TV data
app/src/main/java/com/skydoves/themovies/repository/TvRepository.kt - Discovery data
app/src/main/java/com/skydoves/themovies/repository/DiscoverRepository.kt - People data
app/src/main/java/com/skydoves/themovies/repository/PeopleRepository.kt - Response mapping
app/src/main/java/com/skydoves/themovies/mappers/MovieResponseMapper.kt
TMDB access
- Movie endpoints
app/src/main/java/com/skydoves/themovies/api/MovieService.kt - TV endpoints
app/src/main/java/com/skydoves/themovies/api/TvService.kt - Discovery endpoints
app/src/main/java/com/skydoves/themovies/api/TheDiscoverService.kt - People endpoints
app/src/main/java/com/skydoves/themovies/api/PeopleService.kt
Local persistence
- Movie records
app/src/main/java/com/skydoves/themovies/room/MovieDao.kt - TV records
app/src/main/java/com/skydoves/themovies/room/TvDao.kt - People records
app/src/main/java/com/skydoves/themovies/room/PeopleDao.kt - Room database
app/src/main/java/com/skydoves/themovies/room/AppDatabase.kt
Other components
- App user
- TMDB API
Connections 22
- App user → Browse catalog: opens
- Browse catalog → Movie listings: shows
- Browse catalog → TV listings: shows
- Browse catalog → People listings: shows
- Movie listings → Movie details: opens selection
- TV listings → TV details: opens selection
- People listings → Person details: opens selection
- Movie details → Movie detail state: observes
- TV details → TV detail state: observes
- Person details → Person detail state: observes
- Movie data → Movie endpoints: fetches extras
- TV data → TV endpoints: fetches extras
- Movie endpoints → TMDB API: requests
- TV endpoints → TMDB API: requests
- Discovery endpoints → TMDB API: requests
- People endpoints → TMDB API: requests
- Movie data → Movie records: reads and writes
- TV data → TV records: reads and writes
- Room database → Movie records: provides
- Room database → TV records: provides
- Room database → People records: provides
- Movie data → Response mapping: maps responses