Add comprehensive theme management system with iOS system integration: - System theme detection: App follows iOS dark/light mode preferences via ThemeMode.system - Theme provider: Centralized theme state management with Riverpod (defaults to dark mode) - Settings toggle: Segmented button UI for Light/Dark/Auto theme selection - iOS system UI: Status bar and navigation bar adapt to current theme brightness Dark mode map styling (Android-ready): - DarkModeMapComponent: Reactive theme change detection with didChangeDependencies - Map style application: Custom dark JSON style for navigation maps - Theme-aware styling: Automatically applies/resets map style on theme changes - Note: Map styling currently Android-only due to iOS SDK limitations Updates: - main.dart: System UI overlay styling for iOS, theme provider integration - settings_page.dart: SegmentedButton theme toggle with icons - providers.dart: themeModeProvider for app-wide theme state - dark_mode_map.dart: Theme reactivity and style application logic - navigation_page.dart: Theme detection infrastructure (prepared for future use) Design philosophy: - Follow system preferences by default for native iOS experience - Manual override available for user preference - Clean separation between Flutter UI theming and native map styling 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| android | ||
| assets/fonts | ||
| ios | ||
| lib | ||
| macos | ||
| test | ||
| web | ||
| .gitignore | ||
| .metadata | ||
| analysis_options.yaml | ||
| CHECKLIST.md | ||
| CLAUDE.md | ||
| GOOGLE_MAPS_SETUP.md | ||
| GOOGLE_NAVIGATION_SETUP.md | ||
| IMPLEMENTATION_SUMMARY.md | ||
| l10n.yaml | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
| UI_UX_IMPROVEMENTS.md | ||
Plan B Logistics - Flutter Mobile App
A complete Flutter/Dart refactoring of the Plan B Logistics delivery management system. Built with Material Design 3, Svrnty brand colors, and CQRS architecture for type-safe API integration.
Overview
This is a mobile delivery management application for logistics personnel to:
- View assigned delivery routes with progress tracking
- Manage individual deliveries (complete, uncomplete, skip)
- Capture photos as delivery proof
- Call customers and navigate to delivery addresses
- Manage app settings and language preferences
- Secure authentication via OAuth2/OIDC with Keycloak
Built with:
- Flutter 3.9+ / Dart 3.9.2+
- Material Design 3 with Svrnty theming (Crimson & Slate Blue)
- Riverpod for state management
- CQRS pattern with Result error handling
- Strict typing (no
dynamic)
Quick Start
Prerequisites
- Flutter SDK 3.9.2+: Install Flutter
- Dart SDK 3.9.2+ (included with Flutter)
Setup
cd ionic-planb-logistic-app-flutter
flutter pub get
Run
flutter run # Android/iOS default device
flutter run -d chrome # Web
flutter run -d ios # iOS simulator
flutter run -d android # Android emulator
Project Structure
lib/
├── api/ # CQRS client & types
├── models/ # Data models
├── services/ # Auth service
├── providers/ # Riverpod state
├── pages/ # Login, Routes, Deliveries, Settings
├── l10n/ # Translations (EN/FR)
├── theme.dart # Svrnty Material Design 3
└── main.dart # Entry point
Key Features
- OAuth2/OIDC Authentication with Keycloak
- CQRS API Integration with Result error handling
- Riverpod State Management for reactive UI
- Internationalization (English & French)
- Material Design 3 with Svrnty brand colors
- Native Features: Camera, Phone calls, Maps
- Strict Typing: No
dynamictype allowed
Development
See CLAUDE.md for:
- Detailed architecture & patterns
- Code standards & conventions
- API integration examples
- Development workflow
Build Commands
flutter build web --release # Web
flutter build ios --release # iOS
flutter build appbundle --release # Android (Play Store)
Documentation
- CLAUDE.md - Complete development guidelines
- pubspec.yaml - Dependencies and configuration
- Flutter Docs - Official documentation
Version
1.0.0+1
Svrnty Edition