Skip to content

refactor: modularize navigation and extract business logic to ViewModels#30

Merged
isaacsa51 merged 9 commits into
masterfrom
refactor/logic/nav_graph_decoupling
Jun 21, 2026
Merged

refactor: modularize navigation and extract business logic to ViewModels#30
isaacsa51 merged 9 commits into
masterfrom
refactor/logic/nav_graph_decoupling

Conversation

@isaacsa51

Copy link
Copy Markdown
Owner

Description

Integrates detekt static analysis into CI/CD pipelines and configures it with thresholds tuned for this Android/Compose codebase.

The formatting ruleset (MaxLineLength, Indentation, etc.) is excluded via disableDefaultRuleSets = true because the Gradle plugin does not support disabling formatting rules individually via YAML. Formatting is cosmetic and already handled by KtLint in the IDE.

Change strategy

Deocuple existing screens to follow proper MVI implementation and architecturing.

Implemented

  • Created config/detekt/detekt.yml with per-ruleset thresholds and rule-level settings
  • Created config/detekt/detekt-baseline.xml (empty — no pre-existing violations against tuned config)
  • Created contract, UIState and Viewmodel Into screens like Editor, MainScreen and Editor
  • Decoupled several files like the ones said previously,

Working demo

App is running.

Testing

  • Added/updated tests when applicable
  • Added screenshots or screen recordings for UI changes

Notes

  • Formatting rules excluded (disableDefaultRuleSets = true): The Gradle plugin does not support a formatting: YAML key, and there is no excludeRules API. The only way to drop formatting rules is to drop all default rulesets. Formatting (indentation, line length, trailing whitespace) is cosmetic — KtLint handles it in the IDE. If you want to enforce formatting in CI, use the detekt CLI tool directly instead of the Gradle plugin.

Signed-off-by: Isaac Serrano <serranoie99@gmail.com>
Signed-off-by: Isaac Serrano <serranoie99@gmail.com>
Signed-off-by: Isaac Serrano <serranoie99@gmail.com>
Signed-off-by: Isaac Serrano <serranoie99@gmail.com>
Signed-off-by: Isaac Serrano <serranoie99@gmail.com>
@isaacsa51 isaacsa51 self-assigned this Jun 20, 2026
@isaacsa51 isaacsa51 added the enhancement New feature or request label Jun 20, 2026
Signed-off-by: Isaac Serrano <serranoie99@gmail.com>
Signed-off-by: Isaac Serrano <serranoie99@gmail.com>
Signed-off-by: Isaac Serrano <serranoie99@gmail.com>
Signed-off-by: Isaac Serrano <serranoie99@gmail.com>
@isaacsa51 isaacsa51 force-pushed the refactor/logic/nav_graph_decoupling branch from 5669840 to 5154dea Compare June 21, 2026 19:14
@isaacsa51 isaacsa51 closed this Jun 21, 2026
@isaacsa51 isaacsa51 reopened this Jun 21, 2026
@isaacsa51 isaacsa51 merged commit 0095e9c into master Jun 21, 2026
2 checks passed
@isaacsa51 isaacsa51 deleted the refactor/logic/nav_graph_decoupling branch June 21, 2026 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant