18 lines
947 B
Markdown
18 lines
947 B
Markdown
# ADR 0003 — Tech stack follows CookIT
|
|
|
|
Status: Accepted (2026-10-28)
|
|
|
|
ZenXercise uses the same stack and conventions as the author's CookIT app (local-first Flutter, Android),
|
|
so both codebases read alike.
|
|
|
|
- State: `provider` with `ChangeNotifier` controllers, wired in `main.dart` via `MultiProvider`.
|
|
- Persistence: `drift` + `drift_flutter` (SQLite); `shared_preferences` for small settings (last Mode).
|
|
- Navigation: plain `Navigator` with named routes (no go_router).
|
|
- Strings: `flutter gen-l10n` with ARB files in `lib/src/localization` (`app_en.arb` template).
|
|
- Layout: `lib/src/<feature>/` with repositories, controllers and `views/`.
|
|
- Screen-on in the Player: `wakelock_plus`. IDs: `uuid`.
|
|
- Tests: `flutter_test`, `mocktail`, `sqlite3` (in-memory drift in tests).
|
|
- Lints: `flutter_lints`. Docs: `GLOSSARY.md` (term / definition / _Avoid_) and `docs/adr/`.
|
|
|
|
Supersedes the Riverpod / go_router proposal from the grilling session.
|