A movie catalogue app that implement clean architecture, MVVM, Hilt, ROOM, Coroutines, Flow. This project is also a submission for Dicoding Class Menjadi Android Developer Expert.
- Minimum SDK Level 21
- Kotlin based
- Coroutines + Flow for asynchronous
- Dagger Hilt for dependency Injection
- Implement Clean Architecture and MVVM Architecture
- ROOM for local database
- +Database Encryption using SQLCipher
- Retrofit2 to get data from Network
- +Certificate Pinning
- Modularization
- Dynamic Feature
- Obfuscation with Proguard
- Glide to load an image
- Shimmer as shiny loading
- Youtube Video Player to play movie trailer in app
- View Binding Delegate to make view binding simpler
- Search Movie
- Play Movie trailer directly in the app
- Add Movie to a playlist
- Share Movie to other application
You need to have an API Key, because the data is from TheMovieDatabase. To get the api key you can go to this link, sign up and you will get one. Then you can put it at Constants.kt class in Core module (package: com.mikirinkode.kotakmovie.core.utils)
class Constants {
companion object{
....
const val API_KEY = "Change this with your own api key"
....
}
}