Kotlin • Android Studio • MVVM • Clean Architecture • Retrofit • Coroutines
A modern Android application that allows users to browse and explore movies using a public movie API.
Built to practice Clean Architecture, MVVM, modular design, and modern Android development best practices.
- 🔍 Browse popular and trending movies
- 📝 Detailed movie information (rating, overview, release year, etc.)
- ⭐ Display genres, scores, and poster images
- ⚡ Asynchronous loading with Kotlin Coroutines
- 🧭 Jetpack Navigation for intuitive navigation
- 🧱 Clean Architecture with separation of concerns
- 📦 Repository pattern for data management
- 🌙 Modern UI using XML layouts
- Kotlin
- Android SDK
- Jetpack Components
- MVVM (Model–View–ViewModel)
- Clean Architecture
- Repository Pattern
- Retrofit — HTTP networking
- Gson / Moshi — JSON serialization
- Coroutines & Flow — async operations
- ViewModel & LiveData / StateFlow
- Glide / Coil — image loading
com.example.imdbapp │ ├── data
│ ├── api # Retrofit service
│ ├── model # API data models
│ └── repository # Repository implementation
│ ├── domain
│ ├── model # Domain entities
│ └── usecases # Use cases (optional)
│ └── ui
├── home # Movie list screen
├── details # Movie detail screen
└── viewmodel # ViewModels
Add your API key in local.properties:
API_KEY=your_api_key_here
kotlin Copy code
Or create a Constants.kt file:
kotlin const val API_KEY = "your_api_key"
Clone the repository:
Copy code git clone https://github.com/DavidRuizE/IMDb-Android.git Open the project in Android Studio
Add your API key
Build & run:
Run ➝ Run ‘app’
Implementing MVVM with clean state management
Using Retrofit + Coroutines for network operations
Structuring apps following Clean Architecture
Handling images efficiently with Coil/Glide
Navigating screens using Jetpack Navigation
Managing UI state with ViewModel + LiveData/Flow
David Ruiz 📧 Email: david02ruiz@hotmail.com
🔗 GitHub: https://github.com/DavidRuizE
🔗 LinkedIn: https://www.linkedin.com/in/david-ruiz-echeverri/