Skip to content

POC: clean architecture v2 (multichoice_v2 + application/data/domain)#227

Draft
ZanderCowboy wants to merge 8 commits intodevelopfrom
221-refactor-implement-different-clean-architecture
Draft

POC: clean architecture v2 (multichoice_v2 + application/data/domain)#227
ZanderCowboy wants to merge 8 commits intodevelopfrom
221-refactor-implement-different-clean-architecture

Conversation

@ZanderCowboy
Copy link
Copy Markdown
Owner

@ZanderCowboy ZanderCowboy commented Aug 12, 2025

Summary

  • Draft POC exploring a clean-architecture split using packages/domain, packages/application, and packages/data.
  • Introduces a separate app target at apps/multichoice_v2/ to avoid breaking the existing apps/multichoice app.
  • Adds a reference guide at CLEAN_ARCHITECTURE_GUIDE.md describing the intended layering and dependency rules.

Details

  • UI layer: apps/multichoice_v2/ (intentionally isolated, minimal wiring)
  • Application layer: packages/application/ (use case implementations)
  • Domain layer: packages/domain/ (entities + repository/use case interfaces)
  • Data layer: packages/data/ (repository implementations + Isar/local datasources + mappers)

What changed in this refresh

  • Synced the branch content to the remote PR branch and made the POC compile/analyze cleanly.
  • Made domain and application Flutter-free (uses lints), matching the guide’s dependency direction.
  • Aligned the POC data layer to the repo’s Isar convention (isar_community).
  • Ran codegen for the new POC packages so generated files exist.

Test plan

  • melos run get
  • melos analyze

Notes / Risks

  • This PR remains a conceptual WIP; it does not migrate the existing app.
  • IDs/entities in the POC are still evolving (this is not a finalized architecture).

@sonarqubecloud
Copy link
Copy Markdown

Tighten the POC packages to better match the clean-architecture guide.

- keep domain/application Flutter-free with lints defaults

- align Isar usage with isar_community

- ensure codegen runs cleanly on current SDK constraints

Made-with: Cursor
@ZanderCowboy ZanderCowboy changed the title 221 refactor implement different clean architecture POC: clean architecture v2 (multichoice_v2 + application/data/domain) Apr 26, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.23%. Comparing base (93bd56d) to head (6cc2f60).
⚠️ Report is 15 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #227      +/-   ##
===========================================
+ Coverage    82.19%   83.23%   +1.03%     
===========================================
  Files           49       49              
  Lines         1556     1533      -23     
===========================================
- Hits          1279     1276       -3     
+ Misses         277      257      -20     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant