- Lifecycles Create a UI that automatically responds to lifecycle events.
- Navigation Handle everything needed for in-app navigation.
- Flow used for kotlin flow on android
- StateFlow StateFlow A Flow that represents a read-only state with a single updatable data value that emits updates to the value to it
- Paging3 The Paging library used is to you load and display pages of data from a larger dataset from local storage or over network
- ViewModel Easily schedule asynchronous tasks for optimal execution.
- LiveData Build data objects that notify views when the underlying database changes.
- Retrofit for turns your HTTP API into a Java interface
- Gson for convert Java Objects into their JSON representation
- Hilt for dependency injection
- Glide for Image.
- Room Access your app's SQLite database with in-app objects and compile-time checks.
- Coroutines is used for asynchronous programming on Android
- koltin-parecelize is used between screens to data carry
- Youtube
The app uses MVVM architecture to have a unidirectional flow of data, separation of concern, testability, and a lot more.