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