Architecture de l’Application Moteki Seller
Vue d’ensemble
Moteki Seller App est une application Flutter de gestion e-commerce pour vendeurs utilisant l’architecture MVC avec GetX pour la gestion d’état réactive.Technologies Utilisées
- Framework: Flutter 3.0.6+
- Gestion d’état: GetX (Get)
- Stockage local: GetStorage
- Réseau: HTTP (package http)
- Backend: API REST avec authentification Bearer Token
- Firebase: Remote Config, Analytics, Crashlytics
- UI: Material Design avec thème personnalisé
Structure de l’Architecture MVC-GetX
Flux de Données
1. Flux Principal (View → Controller → Repository → API)
2. Flux d’Authentification
3. Flux de Gestion des Produits
Architecture des Controllers
Pattern GetX Controller
Chaque controller suit le pattern suivant :Gestion d’État Réactive
- Obx() : Widgets qui se mettent à jour automatiquement
- GetBuilder() : Widgets avec contrôle manuel des updates
- RxList, RxBool, RxString : Variables réactives
- update() : Force la mise à jour des GetBuilder
Couche Réseau
NetworkHttps Class
Gestion des Erreurs
- 401 Unauthorized : Redirection automatique vers login
- Timeout : Gestion des erreurs réseau
- Validation : Vérification des réponses API
Stockage Local
GetStorage Integration
Configuration Firebase
Remote Config
Analytics & Crashlytics
Navigation
Structure de Navigation
- WelcomeScreen → Première installation
- LoginScreen → Authentification
- DashBoardManagerScreen → Navigation principale (5 onglets)
- Orders
- Products
- Dashboard (par défaut)
- Categories
- Settings
Navigation Manager
Sécurité
Authentification
- Bearer Token : Stockage sécurisé du token
- Auto-logout : Redirection automatique sur 401
- Token refresh : Gestion de l’expiration
Mode Démo
Performance
Optimisations Implémentées
- Lazy Loading : Pagination infinie pour les listes
- Cached Images :
cached_network_imagepour les images - Reactive Updates : GetX pour les mises à jour efficaces
- Memory Management : Dispose des controllers
Points d’Amélioration
- Timeout : Ajouter timeout aux requêtes HTTP
- Retry Logic : Implémenter retry pour les erreurs réseau
- Cache : Cache local pour les requêtes GET fréquentes
- Debounce : Pour les recherches en temps réel
Tests
Structure de Tests Recommandée
Déploiement
Configuration Environnement
- Development : Base URL locale
- Production : Base URL Firebase Remote Config
- Demo Mode : Mode démo avec données fictives
Build Configuration
- Android :
android/app/build.gradle - iOS :
ios/Runner/Info.plist - Firebase : Configuration via
google-services.jsonetGoogleService-Info.plist
Cette architecture suit les meilleures pratiques Flutter avec GetX, offrant une séparation claire des responsabilités et une gestion d’état réactive efficace.