- 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 collectors
- ViewModel Easily schedule asynchronous tasks for optimal execution.
- 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.
- Coroutines is used for asynchronous programming on Android
- koltin-parecelize is used between screens to data carry
The app uses MVVM architecture to have a unidirectional flow of data, separation of concern, testability, and a lot more.