Summary
Currently all code lives in a single :app module. As the codebase grows (especially with the ongoing UI redesign), splitting into multiple Gradle modules would improve build performance, enforce architectural boundaries, and make it easier for contributors to work in parallel. It would also serve as a good learning exercise in modularization and refactoring.
Motivation
- Faster builds, Gradle can skip building unchanged modules, reducing CI and local build times significantly
- Parallel contributions, contributors can work in isolated modules without conflicts
- Testability, each module can be tested independently
Proposed Module Structure
This can be done incrementally, no need to migrate everything at once:
Summary
Currently all code lives in a single
:appmodule. As the codebase grows (especially with the ongoing UI redesign), splitting into multiple Gradle modules would improve build performance, enforce architectural boundaries, and make it easier for contributors to work in parallel. It would also serve as a good learning exercise in modularization and refactoring.Motivation
Proposed Module Structure
This can be done incrementally, no need to migrate everything at once:
:ui:designsystem:challengeswith the difficulty/challenge logic:datawith repositories and DataStore:appusagewith with the logic to compute the app usage.:app