A modern Android Movie App built using Kotlin, Jetpack Compose, and MVVM architecture. This app displays a list of movies fetched from a remote API, with a clean and intuitive UI.
- 🧱 MVVM Architecture
- 🎨 Jetpack Compose UI
- 🌐 Retrofit for API calls
- 📦 Hilt for Dependency Injection
- 🖼️ Coil for image loading
- 🔄 Pagination (optional)
- 💡 Clean and modular codebase
| Home Screen | Movie Details |
|---|---|
![]() |
![]() |
📁 Make sure to place screenshots in a folder named
screenshots/inside your repo.
This app uses Model-View-ViewModel (MVVM) architecture:
com.example.movieapp
│
├── data
│ ├── model # Data classes (e.g., Movie.kt)
│ ├── remote # Retrofit interfaces and network models
│ └── repository # Repository pattern for data access
│
├── di # Hilt modules for dependency injection
│
├── presentation
│ ├── components # Reusable Compose UI elements
│ ├── screens # UI screens (HomeScreen, DetailsScreen)
│ ├── state # UI state holders (e.g., MovieListState)
│ └── viewmodel # ViewModels for business logic
│
└── utils # Constants, helpers, extensions
git clone https://github.com/your-username/movie-app.git
cd movie-appMake sure you have the latest version of Android Studio with Kotlin + Jetpack Compose support.
This app requires an API key (e.g., from TMDb).
Add your API key to local.properties:
API_KEY=your_api_key_here
Or if your key is hardcoded (not recommended), add it in a constants file like:
const val API_KEY = "your_api_key_here"- ViewModels tested using
JUnitandTurbine - Repository tested using fake implementations or mocked APIs
(You can expand this section if you have actual test cases)
This project is licensed under the MIT License - see the LICENSE file for details.
- TMDb API
- Android Developers
- Jetpack Compose Team
Made with ❤️ by [Ismaein]

