Add comprehensive iOS permission handling and enhance navigation UX: iOS Permissions Setup: - Configure Podfile with permission macros (PERMISSION_LOCATION, PERMISSION_CAMERA, PERMISSION_PHOTOS) - Add camera and photo library usage descriptions to Info.plist - Enable location, camera, and photos permissions for permission_handler plugin - Clean rebuild of iOS dependencies with updated configuration Navigation Enhancements: - Implement Google Navigation dark mode with custom map styling - Add loading overlay during navigation initialization with progress messages - Fix navigation flow with proper session initialization and error handling - Enable followMyLocation API for continuous driver location tracking - Auto-recenter camera on driver location when navigation starts - Add mounted checks to prevent unmounted widget errors UI/UX Improvements: - Fix layout overlapping issues between map, header, and footer - Add dynamic padding (110px top/bottom) to accommodate navigation UI elements - Reposition navigation buttons to prevent overlap with turn-by-turn instructions - Wrap DeliveriesPage body with SafeArea for proper system UI handling - Add loading states and disabled button behavior during navigation start Technical Details: - Enhanced error logging with debug messages for troubleshooting - Implement retry logic for navigation session initialization (30 retries @ 100ms) - Apply dark mode style with 500ms delay for proper map rendering - Use CameraPerspective.tilted for optimal driving view - Remove manual camera positioning in favor of native follow mode 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