Clean Architecture Pattern
Principles
- Separation of concerns
- Drive UI from data models
- Single source of truth
- Unidirectional data flow (States & events flow in opposite directions)
Modules
app
domain (optional)
data
Data flow
Example folder structure
// Android project
├── MyWeatherApplication.kt
├── data
│ ├── repositories
│ └── source
│ ├── device
│ └── weather
├── domain
│ ├── models
│ └── use_cases
│ ├── device
│ └── weather
├── infrastructure
│ └── di
└── presentation
├── framework
│ └── theme
└── screen
├── home
│ └── model
├── settings
└── weather_detail