This project is a movie application built using Jetpack Compose, Kotlin, and various Android libraries. It showcases the use of modern Android development practices, including MVVM architecture, dependency injection with Koin, and asynchronous data handling with Kotlin Coroutines and Flow.
- Display a list of now showing and popular movies.
- View detailed information about a selected movie.
- Save movies to a bookmark list.
- View cast information for each movie.
- Play movie trailers.
The project follows the MVVM (Model-View-ViewModel) architecture pattern, which helps in separating the concerns of the application and makes the codebase more maintainable and testable.
- Jetpack Compose: Android’s modern toolkit for building native UI.
- Kotlin: Programming language used for the entire codebase.
- Koin: Dependency injection framework.
- Kotlin Coroutines: For asynchronous programming.
- Kotlin Flow: For handling streams of data asynchronously.
- Coil: Image loading library for Android.
- Navigation Component: For handling navigation within the app.
- Retrofit: For network requests.
- Kotlinx Serialization: For JSON parsing.
data: Contains data models, network data sources, and repository implementations.domain: Contains use cases and entity models.presentation: Contains ViewModels, Composables, and UI-related classes.ui: Contains theme and other UI-related resources.
- Android Studio Arctic Fox or later.
- Kotlin 1.5 or later.
- Clone the repository:
git clone https://github.com/eng-marwa/movie-compose-project.git
- Open the project in Android Studio.
- Sync the project with Gradle files.
- Run the project on an emulator or a physical device.
- Browse the list of now showing and popular movies.
- Click on a movie to view its details.
- Save movies to your bookmark list by clicking the bookmark icon.
- View the cast of the movie and play trailers.

