Watch trailers and browse info of millions of movies and series.
- Create an account in app or sign-in, for a personalized experience
- Add movies and series to your watchlist
- Favorite your best movies and series
- Rate released movies and series as you like it
-
The app uses The Movie Database (TMDB) API to fetch movie data.
-
This project was built with Clean Architecture and MVVM pattern.
There are five modules in this project:
app
- The main module serving as the user interface/communication layerdata-local
- Stores and fetches stored data from local source using persistence frameworksdata-remote
- Fetches data from the internet and manipulates itdata-repository
- Responsible for creating and managing datadomain
- Houses the entities and use-cases
- Jetpack Compose - Jetpack Compose is Android’s recommended modern toolkit for building native UI.
- Coil-kt - Image loading for Android and Compose Multiplatform.
- Dagger-Hilt - Reduces boilerplate of doing manual dependency injection in your project.
- Material3 - Google's latest design system with adaptable components and tools that support the best practices of user interface design for building beautiful apps.
- Kotlin Coroutine - For executing tasks asynchronously.
- Flow - An asynchronous data stream that sequentially emits values and completes normally or with an exception.
- Stateflow - An observable state-holder that emits data stream to its collectors - updating the UI incessantly.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- Datastore - Jetpack DataStore is a data storage solution that allows you store key-value pairs asynchronously.
- Retrofit - A type-safe HTTP client for Android and Java.
- Moshi - A modern JSON library for Kotlin and Java.
- OkHttp - An efficient HTTP & HTTP/2 client for Android and Java.
- Paging - Helps load and display pages of data from a larger dataset from local storage or over a network.
- YouTube Player - YouTube player library for Android and Chromecast.