This project is a simple Android application built using the MVVM (Model-View-ViewModel) architecture pattern. It demonstrates the usage of modern Android development best practices such as Kotlin Coroutines, Flow, and StateFlow for handling asynchronous data streams and managing UI state in a reactive and scalable way.
- MVVM Architecture: Decouples the UI from business logic, ensuring separation of concerns.
- Kotlin Coroutines: Simplifies asynchronous programming with structured concurrency.
- Flow: A cold asynchronous stream that sequentially emits values.
- StateFlow: A hot, state-holder observable flow that emits the current and new state updates.
- Repository Pattern: Manages data operations and abstracts the underlying data sources.
-
Kotlin: Programming language for Android development.
-
Coroutines: To manage background threads efficiently and avoid callback hell.
-
Flow: For handling reactive streams of data.
-
StateFlow: For managing UI state reactively.
-
ViewModel: To store and manage UI-related data in a lifecycle-conscious way.
-
Retrofit: For networking and API calls.
-
Hilt Dependency Injection for better code modularity.