Skip to content

Latest commit

 

History

History
16 lines (14 loc) · 3.66 KB

ModuleStructure.md

File metadata and controls

16 lines (14 loc) · 3.66 KB

Module structure

The app follows similar modularization strategy as in NowInAndroid. Routine Tracker has the following modules:

Name Responsibility
app Serves as an entry point of the app and brings everything together
build-logic Contains convention plugins that reduce the gradle boilerplate for declaring dependencies in the modules
core:data Contains repository classes that serve as a single source of truth for accessing data from the offline database and data that comes from the network. Although Routine Tracker doesn't fetch data from the network yet, this layer is implemented to follow the best practices.
core:database On-device local database
core:domain The heart of the app, which contains logic for determining whether the habit is due or not, computing streaks, etc. It operates on data that comes from the data layer.
core:logic Utilities and helper classes written in raw Kotlin and not dependent on Android SDK.
core:model Kotlin data classes and enums used throughout the app for abstraction
core:testcommon Common testing logic and fake classes that are used in tests throughout the app.
core:ui Jetpack Compose components, theming logic, and helpers for Android.
feature User interface with View Models, functionality associated with a specific feature or user journey.