Jean-Philippe Brule 96c9e59cf0 Implement system theme support and dark mode infrastructure
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>
2025-11-16 00:52:14 -05:00

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 dynamic type 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

S
Description
No description provided
Readme 3 MiB
Languages
Dart 99.8%
Ruby 0.1%