- Lifecycles Create a UI that automatically responds to lifecycle events.
- Navigation Handle everything needed for in-app navigation.
- LiveData Build data objects that notify views when the underlying database changes.
- ViewModel Easily schedule asynchronous tasks for optimal execution.
- Room Access your app's SQLite database with in-app objects and compile-time checks.
- Retrofit for turns your HTTP API into a Java interface
- Gson for convert Java Objects into their JSON representation
- Hilt for dependency injection
- Lottie for Animations.
- Glide for Image.
- exoplayer for video.
The app uses MVVM architecture to have a unidirectional flow of data, separation of concern, testability, and a lot more.