DeliverEat — livraison de repas à Dakar
Application Flutter (Android, iOS, Linux) de commande et de suivi de livraison de repas à Dakar, connectée à une API REST et à un suivi de commande en direct.



Commander un repas suppose de trouver un restaurant, composer un panier et suivre sa commande, y compris avec une connexion instable.
Construire un client mobile robuste : aucune donnée métier en dur, sessions sécurisées, suivi en direct, FR/EN et mode sombre.
Conception et développement de l'application
Technologies- Flutter
- Dart
- Provider
- Dio
- WebSocket
Réalisation technique
Architecture
Flutter / Dart en couches (UI, providers, services, réseau) ; état typé ViewState générique ; Provider.
Réseau
Dio avec intercepteurs : authentification, refresh de jeton single-flight, relances sur 429 et erreurs réseau.
Temps réel
WebSocket avec reconnexion à backoff et jeton régénéré ; bascule automatique sur du polling REST.
Stockage et cache
flutter_secure_storage pour les jetons, cached_network_image, connectivity_plus pour le mode hors ligne.
Internationalisation
Localisation FR / EN, thèmes clair et sombre.
- J'ai structuré l'application en couches strictes : interface, providers à état typé, services réseau, modèles.
- J'ai géré l'authentification : jetons en stockage sécurisé et rafraîchissement transparent, avec un verrou contre les doubles refresh.
- J'ai implémenté le suivi de commande par WebSocket, avec reconnexion à délai croissant et repli sur de l'interrogation REST.
- J'ai ajouté la résilience : relances sur erreurs transitoires, bannière hors ligne, cache d'images, messages d'erreur FR/EN.
- Catalogue de restaurants et recherche
- Panier et commande
- Favoris
- Suivi de commande en direct
- Profil, mode sombre, FR / EN
- plateformes : Android, iOS, Linux
- FR / ENlocalisation
- Application Flutter → API REST DeliverEat
- Application Flutter → WebSocket (suivi)