2026-07-05 00:43:02 +02:00
2026-07-04 22:46:14 +02:00
2026-07-04 22:48:14 +02:00
2026-07-05 00:01:55 +02:00
2026-06-28 12:29:06 +02:00
2026-07-05 00:01:55 +02:00
2026-06-28 12:29:06 +02:00
2026-06-28 12:29:06 +02:00
2026-06-28 12:29:06 +02:00
2026-07-04 22:55:52 +02:00
2026-07-04 22:46:14 +02:00
2026-07-05 00:42:40 +02:00
2026-06-28 12:29:06 +02:00

Laverie Mobile

Application native Android et iOS pour Laverie Connectée — consultation des laveries, portefeuille, réservations et lavages.

Pas de cible web Flutter. Le back-office web est géré séparément (Laravel + Inertia). Cette app est mobile-first : Android en priorité, iOS prévu dès le départ (même codebase).

Prérequis

Outil Android iOS (plus tard)
Flutter SDK 3.2+ Oui Oui (sur macOS)
Android Studio + SDK Oui
Xcode Oui (macOS uniquement)
Backend API ../README.md idem

Installation (première fois)

Le dépôt contient le code Dart (lib/) mais pas les dossiers natifs. Générez Android + iOS uniquement :

Windows (PowerShell)

cd mobile
.\scripts\bootstrap_platforms.ps1

macOS / Linux

cd mobile
chmod +x scripts/bootstrap_platforms.sh
./scripts/bootstrap_platforms.sh

Équivalent manuel :

flutter create . --org fr.laverie --project-name laverie_mobile --platforms=android,ios
flutter pub get

Ne pas ajouter --platforms web : le web Flutter est hors périmètre.

Lancement Android (priorité)

# Émulateur Android (API par défaut : 10.0.2.2 = localhost hôte)
flutter run -d android

# Appareil physique — remplacer par l'IP de votre PC
flutter run -d android --dart-define=API_BASE_URL=http://192.168.1.10:8000/api/v1

HTTP en développement

L'émulateur Android autorise le trafic HTTP clair vers 10.0.2.2 via la config réseau de debug. En production, l'API doit être en HTTPS.

iOS (préparation)

Le même projet inclut le dossier ios/ pour une future build App Store. Nécessite macOS + Xcode.

# Simulateur iOS (localhost)
flutter run -d ios

# Appareil physique
flutter run -d ios --dart-define=API_BASE_URL=http://192.168.1.10:8000/api/v1

Points déjà prévus côté Dart :

  • flutter_secure_storage avec options Keychain iOS
  • URL API par défaut 127.0.0.1 sur iOS simulateur
  • Détection plateforme dans lib/core/platform/app_platform.dart

Configuration API

Contexte URL API
Android émulateur http://10.0.2.2:8000/api/v1 (défaut)
iOS simulateur http://127.0.0.1:8000/api/v1 (défaut)
Appareil physique --dart-define=API_BASE_URL=http://IP:8000/api/v1

Compte de démonstration

Email Mot de passe
marie.dupont@demo.local password

Architecture

lib/
├── main.dart                 # Garde anti-web / anti-desktop
├── core/
│   ├── platform/             # Android / iOS uniquement
│   ├── config/               # API URL, secure storage
│   ├── api/
│   ├── auth/
│   ├── router/
│   └── theme/
└── features/
    ├── auth/
    ├── home/
    ├── establishments/
    ├── wallet/
    ├── booking/
    ├── wash/
    └── profile/

Prochaines étapes (Android)

  1. Scan QR machine (mobile_scanner) → POST /washes/start
  2. Rechargement wallet simulé
  3. Notifications push (FCM Android, APNs iOS plus tard)
  4. Tests integration_test sur émulateur Android
S
Description
No description provided
Readme
287 KiB
Languages
Dart 59.7%
HTML 39.2%
PowerShell 0.4%
Shell 0.3%
Swift 0.3%