An elegant Android movie browsing app built with Kotlin, Jetpack Compose, and MVVM architecture. Browse, search, and favorite top-rated movies using a public movie ratings API.
✅ Search and discover top-rated movies
✅ View detailed movie info (title, rating, description, poster)
✅ Add movies to favorites using Jetpack DataStore
✅ Save movies "For Later Watching" using Room Database
✅ Compose Navigation between screens
✅ Beautiful Material 3 UI
✅ Light/Dark theme support
| Category | Stack |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose, Material 3 |
| Architecture | MVVM (ViewModel, Repository pattern) |
| State | StateFlow, remember, collectAsState |
| Data Layer | Retrofit (API), Room (local), DataStore |
| Navigation | Compose Navigation |
| Dependency Injection | Koin |
| Gradle | Kotlin DSL (build.gradle.kts) |
ui/– All Composables (MovieList, MovieDetail, Favorites, For Later)viewmodel/– ViewModels using StateFlow and Repositorydata/– Models, Retrofit API service, Room DAOdi/– Koin module setupnavigation/– Compose navigation graph
Movie data is fetched from movies-ratings2.p.rapidapi.com
Note: Requires free API key from RapidAPI
- Clone the repo
- Add your RapidAPI key to the headers inside the
MovieApiService - Open with Android Studio Electric Eel or later
- Run on emulator or physical device (API 24+)
Pull requests are welcome. Feel free to open an issue or suggest an improvement.
MIT License © 2025 KostovRookie
