This is a sample project about MVVM with Clean Architecture i have focused on learning how to implement mvvm with clean architecture and layer responsibilities and which layers should know about the others , creating app and core module and what each one should have of layers.
Layer responsibilities:
- Domain: Contains the business rules of our app. It should provide use cases which reflect the features of our app.
- Presentation: Presents data to the user and also collects necessary data like the username. This is a kind of input/output.
- Model: Provides data for our app. It is responsible for obtaining data from external sources and save them to the database, cloud server, etc.
What | How |
---|---|
🎭 User Interface (Android) | Jetpack Compose |
🏗 Architecture | Clean Architecture |
💉 DI (Android) | Hilt |
🌊 Async | Coroutines + Flow |
🌐 Networking | Retrofit |
🧑🏿🔬 Testing | Junit4 |
🚀 Turbine | Turbine Flow Testing |