Architecture Overview¶
ComposeTemplate separates app composition, shared infrastructure, product features, build logic, and performance tooling.
ComposeTemplate/
├── app/
├── core/
├── feature/
├── build-logic/
├── benchmark/
└── baselineprofile/
App module¶
The app module is the composition root. It connects feature modules, configures app-level setup, owns application id/namespace, and should not contain business logic.
Core modules¶
core/* modules provide reusable infrastructure: common result types, data, database, network, secrets, security, UI, navigation, analytics, config, permissions, and Google Play integrations.
Feature modules¶
Each feature is split into four Gradle modules:
feature/{name}/
├── data
├── domain
├── navigation
└── presentation
Dependency direction¶
data → domain ← presentation
navigation → core:navigation
presentation → navigation
The domain layer should not know data or presentation implementation details.