A collaborative filmmaking game where players take real crew roles and produce a short movie together. The app is the on-set director's tool: it guides filming via shot lists, enforces usable footage constraints, and assembles everything into a finished movie on-device.
Status: Pre-alpha · Platform: iOS 26+ · Offline-first · Flutter 3.38.5
Flutter owns navigation, UX, and state transitions. Native owns pixels, audio, and time-critical work.
| Page | Description |
|---|---|
| Architecture | Layer stack, component dependencies, design patterns, DI approach |
| User Flow | Core user journey, filming flow graph traversal, background exports |
| Flutter UI | All screens, viewmodels, shared widgets, screen navigation graph |
| Services | FilmingCoordinator, FlowTraversalEngine, validation, audio session |
| Native iOS | Camera, Trim, Render, AudioRecorder modules — AVFoundation deep dive |
| Data Layer | Drift schema, Freezed models, Pigeon bridge contract |
| Routing | go_router setup, route guards, observers, filming route wrappers |
| Testing | Test structure, patterns, coverage map, iOS XCTests |
| Dev Guide | Commands, code generation, CI/CD, conventions, dependencies |
| File | Purpose |
|---|---|
lib/main.dart |
App entry point — init sequence, root widget, theme |
lib/services/filming/filming_coordinator.dart |
Singleton managing the active filming session |
lib/services/filming/flow_traversal_engine.dart |
Pure-function graph traversal (no side effects) |
lib/router/app_router.dart |
Route table, guards, page transitions, context extensions |
lib/database/database.dart |
Drift database with all query operations |
lib/models/movie_template.dart |
Complete movie template with union types |
pigeons/native_api.dart |
Single source of truth for the Dart↔Swift bridge |
ios/Runner/NativeModules/Camera/CameraCaptureService.swift |
AVFoundation camera pipeline (~1050 lines) |
ios/Runner/NativeModules/Trim/TrimModule.swift |
Frame-accurate trimming + speech analysis (~1490 lines) |
flutter pub get # Install dependencies
dart run build_runner build --delete-conflicting-outputs # Regenerate Freezed/Drift
dart run pigeon --input pigeons/native_api.dart # Regenerate Pigeon bridge
flutter analyze # Lint check
flutter test # Run all Dart tests
flutter build ios --no-codesign --debug # Build iOS debug
See Dev Guide for the full development workflow.