focus-flow/apps/focus_flow_flutter/README.md

61 lines
1.8 KiB
Markdown

# FocusFlow Flutter
Flutter desktop app target for the FocusFlow UI work.
## Current Scope
UI Plan 1 implements a compact Today timeline mockup and selected-task modal.
The app target already existed before UI Plan 1 Block 1, so this package keeps
the existing Flutter desktop scaffolding and local scheduler dependency.
The app launches into the compact Today screen. All visible controls are
intentionally no-op except selecting a task card and closing the modal.
## Seed Data
Static demo data lives in `lib/app/demo_scheduler_composition.dart`. It creates
domain `ProjectProfile`, `OwnerSettings`, and `Task` records in an in-memory
application store, then reads `TodayState` through `GetTodayStateQuery`.
Widgets consume `TodayScreenData` from `lib/models/today_screen_models.dart`.
Scheduler core remains the source of truth for task state and Today ordering.
## Package Boundary
Allowed app imports include public scheduler APIs such as:
```dart
import 'package:scheduler_core/scheduler_core.dart';
```
The app must not import scheduler `src/` files, SQLite/Drift adapters,
desktop notification implementations, backup/export packages, or direct OS APIs
for this UI slice. `test/forbidden_imports_test.dart` enforces that boundary.
## Intentionally No-op
- Sidebar navigation.
- Date navigation and calendar buttons.
- Compact/Normal toggle.
- Settings button.
- Show upcoming.
- Timeline card action icons.
- Modal Done, Push, Move to Backlog, and Break up buttons.
## Commands
```sh
flutter pub get
flutter analyze
flutter test
```
Run these from `apps/focus_flow_flutter/`.
## Next Plans
- Wire functional Done, Push, Move to Backlog, and Break up actions.
- Add Backlog and quick-capture UI.
- Add persistent SQLite-backed runtime composition.
- Add real navigation/settings.
- Add Shield/Recovery only in a later scope.