Skip to main content

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

Structure de Navigation

  1. WelcomeScreen → Première installation
  2. LoginScreen → Authentification
  3. DashBoardManagerScreen → Navigation principale (5 onglets)
    • Orders
    • Products
    • Dashboard (par défaut)
    • Categories
    • Settings

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

  1. Lazy Loading : Pagination infinie pour les listes
  2. Cached Images : cached_network_image pour les images
  3. Reactive Updates : GetX pour les mises à jour efficaces
  4. Memory Management : Dispose des controllers

Points d’Amélioration

  1. Timeout : Ajouter timeout aux requêtes HTTP
  2. Retry Logic : Implémenter retry pour les erreurs réseau
  3. Cache : Cache local pour les requêtes GET fréquentes
  4. 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.json et GoogleService-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.