Dépendances - ApplETS/Notre-Dame GitHub Wiki
📦 Dépendances Externes
Vue d'Ensemble
ÉTS Mobile utilise des dépendances Flutter/Dart bien établies pour supporter les fonctionnalités principales.
🏗️ Dépendances d'Architecture & État
Provider (Gestion d'État)
- Usage : Gestion d'état réactive avec
ChangeNotifier - Raison : Léger, facile à tester, bien intégré à Flutter
Stacked (Architecture)
- Usage : Architecture MVVM avec ViewModels
- Raison : Simplifie la gestion du state et du routing
- Inclut : ViewModelBuilder, routing helpers
GetIt (Injection de Dépendances)
- Usage : Service Locator pour l'injection centralisée
- Raison : Simple, découple les dépendances, facilite les tests
- Pattern : Singleton, Lazy Singleton, Factory
🔥 Firebase
firebase_core
- Usage : Initialisation et configuration Firebase
- Nécessaire : Pour tous les autres services Firebase
firebase_analytics
- Usage : Suivi des événements et propriétés utilisateur
- Données : Qui utilise quoi, quand, comment
firebase_crashlytics
- Usage : Rapport automatique des crashes en production
- Importance : Détecte et alerte sur les bugs en production
firebase_remote_config
- Usage : Configuration dynamique sans redéployer l'app
- Cas d'usage : Mode maintenance, URLs API, feature flags
🌐 HTTP & Networking
Dio
- Usage : Client HTTP moderne avec intercepteurs
- Avantages : Retry, timeout, intercepteurs, streaming
Retrofit
- Usage : Générateur de code pour REST APIs
- Avantages : Type-safe, moins de boilerplate
🔐 Authentification & Sécurité
msal_auth
- Usage : Authentification Microsoft/Azure AD
- Raison : SSO avec le compte ÉTS (Microsoft)
- Tokens : Accès et refresh automatiques
flutter_secure_storage
- Usage : Stockage sécurisé et encrypté
- Données : Tokens, mots de passe, données sensibles
- Natif : Keychain (iOS), Keystore (Android)
shared_preferences
- Usage : Stockage local simple (clé-valeur)
- Données : Langue, thème, préférences utilisateur
- Note : Non-sécurisé, utiliser secure_storage pour les secrets
🛠️ Développement & Build
build_runner
- Usage : Génération de code (Retrofit, Freezed, etc.)
- Commande :
flutter pub run build_runner build
Freezed & freezed_annotation
- Usage : Génération de classes immuables avec copyWith
- Avantages : Immuabilité, equality, pattern matching
json_serializable & json_annotation
- Usage : Génération fromJson/toJson
- Avantages : Sérialisation type-safe, moins d'erreurs
import_sorter
- Usage : Organisation automatique des imports
- Avantage : Code cohérent et lisible
flutter_lints
- Usage : Lint rules pour Flutter (static analysis)
- Fichier : analysis_options.yaml
- Commande :
flutter analyze
mockito
- Usage : Framework de mocking pour les tests
- Pattern : Créer des mocks des dépendances
http_mock_adapter
- Usage : Mock les réponses HTTP pour les tests
- Cas : Tester sans faire de vraies requêtes
Logger
- Usage : Logging coloré et structuré
- Niveaux : verbose, debug, info, warning, error, wtf
🌍 Utilités
retry
- Usage : Retry automatique avec backoff exponentiel
- Cas : Requêtes réseau instables
synchronized
- Usage : Synchronisation de l'accès concurrentiel
- Cas : Race conditions dans cache
collection
- Usage : Utilitaires pour collections (List, Map, Set)
- Avantages : Extensions utiles sur les collections
xml
- Usage : Parsing XML
- Cas : Parsing de fichiers XML d'API
github
- Usage : Client GitHub API
- Cas : Récupération des contributeurs depuis GitHub
timeago
- Usage : Formatage "time ago" (il y a 2 heures)
- Cas : Dates relatives dans news, comments
⚠️ Bonnes Pratiques
- Minimiser les dépendances : Seulement les nécessaires
- Rester à jour : mettre à jour les versions regullièrement
- Tester après update : Nouvelles dépendances peuvent casser l'app
Cette page a été en partie générée avec l'aide de Claude Haiku 4.5