Skip to content

v1.2.0

Latest

Choose a tag to compare

@kido-luci kido-luci released this 17 Jun 14:17
· 1 commit to main since this release
76f3c4d

Completes the move to a fully package-based architecture. Every feature now lives in its own workspace package; the root app (lib/) holds no feature code.

Changed

  • Feature packageshome, profile, and splash extracted from lib/features/ into packages/features/, joining auth, notifications, bookmarks, and collections. lib/features/ is removed and the app is now a pure composition root (routing, DI, Firebase bootstrap).
  • Splash decoupling — the splash screen no longer reaches into app routing; it restores the session and hands control back via an onRestored callback the app wires, and resolves its logo against its own package asset bundle.
  • App shell — the three per-feature sync wrappers collapsed into one closure-based adapter; the bookmarks → collections capability imports are annotated as the documented single-consumer exception.

Added

  • Architecture guardrails for feature packagespackage_layering_test now ranks and direction-checks the nested packages/features/* packages, and feature_boundaries_test enforces the cross-feature capability allowlist (bookmarks → collections, profile → auth) at the package level.

Removed

  • Unused app-level freezed dev-dependency — the app declares no @freezed types (feature packages keep their own generator).

Migration note: this changes the public source layout — features moved from lib/features/<name> to packages/features/<name>, and lib/shared/ is gone (use the shared_contracts / shared_ui packages). Forks tracking the template structure should repoint imports accordingly.

Full changelog: https://github.com/kido-luci/flutter-starter-template/blob/main/CHANGELOG.md