Implement multi-screen app UI flow and navigation

This commit is contained in:
Rijad Zuzo
2026-02-15 13:57:24 +01:00
parent d5146d6b09
commit ac9577c759
21 changed files with 1648 additions and 60 deletions
+55 -5
View File
@@ -1,6 +1,56 @@
# Relationship Saver Progress Log
Updated: 2026-02-14
Updated: 2026-02-15
## Latest Milestone (2026-02-15): Product UI Flow Implemented
The app now has a real multi-screen user experience on macOS (and other platforms), not just a placeholder screen.
Delivered UI architecture:
- App shell with responsive navigation:
- desktop: left sidebar + content pane
- compact: bottom navigation
- Views implemented:
- Dashboard
- People
- Moments
- Signals
- Sync
- Settings
- Reference-aligned visual style:
- WorkSans typography (copied from the UI reference assets)
- soft gradients, rounded glass-like cards, accent palette similar to the reference repo
- Offline-safe UX:
- fake backend mode now defaults to `true` unless overridden via `--dart-define=USE_FAKE_BACKEND=false`
- signals view gracefully falls back to local recommendations when backend calls fail
Key new files:
- `lib/features/home/app_shell.dart`
- `lib/features/dashboard/dashboard_view.dart`
- `lib/features/people/people_view.dart`
- `lib/features/moments/moments_view.dart`
- `lib/features/signals/signals_controller.dart`
- `lib/features/signals/signals_view.dart`
- `lib/features/sync/sync_view.dart`
- `lib/features/settings/settings_view.dart`
- `lib/features/shared/frosted_card.dart`
- `lib/features/local/local_models.dart`
- `lib/features/local/local_repository.dart`
- `assets/fonts/WorkSans-*.ttf`
Other updates:
- `lib/main.dart` now launches the new app shell.
- `lib/core/config/app_theme.dart` updated to a stronger visual system.
- `pubspec.yaml` includes local WorkSans font family.
- `test/widget_test.dart` updated for the new flow.
Validation status after UI milestone:
- `flutter analyze` -> pass
- `flutter test` -> pass
## Current Status
@@ -165,10 +215,10 @@ Most recent local checks:
### Priority 3: App Wiring + UX
1. Wire `BackendGateway` into app services/use cases (not UI widgets directly).
2. Add session state provider (signed in / expired / signed out).
3. Add explicit offline indicators and non-blocking sync status UI.
4. Start consuming fake gateway in feature screens before live backend.
1. Replace local demo repository data with actual local DB repositories.
2. Add create/edit flows for people, captures, reminders, and ideas (forms + validation).
3. Add session state and auth entry screens (sign-in, expired-session recovery).
4. Add explicit offline badges and sync conflict resolution UI.
### Priority 4: Security + Hardening