A feature-rich Android movie discovery app built with modern Android development practices.
- 🔥 Trending Movies - Browse this week's trending movies
- 🎬 Now Playing - See movies currently in theaters
- 🔍 Search - Search for any movie with debounced input
- 🔖 Bookmarks - Save your favorite movies locally
- 📱 Offline Support - Works without internet using cached data with offline banners
- 🛡️ Robust Error Handling - Distinct states for network/server errors with retry mechanism
- 🔗 Deep Links - Share movies with friends via app links
- 🎨 Polish - Custom app icon, splash screen, and smooth animations
- 🌙 Dark Theme - Netflix-inspired premium dark UI
This app follows Clean Architecture with MVVM pattern:
app/
├── data/
│ ├── local/ # Room database, DAOs, entities
│ ├── remote/ # Retrofit API service, DTOs
│ ├── repository/ # Repository implementations
│ └── mapper/ # Data mappers
├── domain/
│ ├── model/ # Domain models
│ └── repository/ # Repository interfaces
├── presentation/
│ ├── home/ # Home screen
│ ├── details/ # Movie details
│ ├── search/ # Search screen
│ ├── saved/ # Bookmarked movies
│ ├── components/ # Reusable UI components
│ └── navigation/ # Navigation setup
├── di/ # Hilt dependency injection
├── ui/theme/ # Material 3 theming
└── util/ # Utility classes
| Category | Library |
|---|---|
| UI | Jetpack Compose, Material 3 |
| Architecture | MVVM, Clean Architecture |
| DI | Hilt |
| Networking | Retrofit, OkHttp, Gson |
| Database | Room |
| Image Loading | Coil |
| Async | Kotlin Coroutines, Flow |
| Navigation | Compose Navigation |
- Android Studio Hedgehog or later
- JDK 17
- Android SDK 35
-
Clone the repository:
git clone https://github.com/jaypatelbond/Popcorn.git
-
Open in Android Studio
-
Sync Gradle and run on device/emulator
Note: TMDB API key is already configured in the project.
- Home page with trending and now playing movies
- Movie details page with full information
- Bookmark movies and saved movies page
- Offline support with Room database
- Search with debounced input
- Share movie with deep linking
Built with ❤️ by Jay Patel



