Skip to content

Move toward multi module architecture #124

@msbelaid

Description

@msbelaid

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:

  • Start by extracting :ui:designsystem
  • Extract :challenges with the difficulty/challenge logic
  • Extract :data with repositories and DataStore
  • Extract :appusage with with the logic to compute the app usage.
  • Leave :app

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions