After Framework

Architecture

Couches, règle de dépendance, principes non négociables et structure commune des apps.

Version de la doc: supercore main · packages 1.0.0

CouchesLien vers cette section: Couches

De haut en bas : domaine produit, écosystème et IA, une couche de ligne de produits, puis le noyau et le système de design. Les adaptateurs Firebase se lient à la racine de composition.

  • Couche domaine produit

    Uniquement des fonctionnalités verticales, sous lib/features/<vertical>/ dans chaque dépôt produit : garage, patients, vols. Jamais dans les packages partagés.

  • Couche écosystème

    After ID, After+, le bus d’événements, les API interproduits et les services partagés. Les produits communiquent via cette trame — jamais par des imports entre dépôts frères.

  • Capacités d’IA

    Une seule plateforme d’IA aux capacités modulaires — conversation, OCR, vision, résumé, appel d’outils, etc. Les produits les activent ou les désactivent ; ils n’embarquent pas de pile d’IA privée.

  • Modules grand public

    Couche B2C légère : passerelle d’adhésion, catalogue de fonctionnalités grand public, coffre personnel, consentement au lancement et localisation régionale. Référence : SuperGarage.

  • Modules entreprise

    Quatorze ports B2B — organisation, RBAC, workflow, tâches, calendrier, documents, messagerie, rapports, audit, synchro hors ligne — chacun avec un mock en mémoire. Référence : SuperHospital.

  • Noyau partagé

    Auth, réseau renforcé, stockage, DI Riverpod, feature flags, configuration à distance, SDK d’IA BYOK, droits premium, notifications, liens profonds, ainsi que les moteurs de tableau de bord, de plugins, de recherche et de paramètres.

  • Système de design

    Une seule famille visuelle pour le grand public et l’entreprise : tokens de couleur, d’espacement, de rayon, de mouvement et de typographie, plus des composants partagés.

  • Adaptateurs Firebase

    Firebase Auth, synchro de blobs Firestore et synchro de médias Storage derrière les ports d’after_core. Liés uniquement à la racine de composition ; le code métier n’importe jamais Firebase.

Règle de dépendanceLien vers cette section: Règle de dépendance

Les dépendances pointent uniquement vers le bas. Les produits communiquent entre eux via des événements et des API sécurisées de la couche écosystème. Ajouter un domaine ajoute un module de couche supérieure et laisse ce diagramme inchangé.

after_ecosystemafter_aiafter_consumerafter_enterpriseafter_firebaseafter_coreafter_design_system

PrincipesLien vers cette section: Principes

  • SuperGarage est la référence grand public ; SuperHospital est la référence entreprise.
  • Les modules sectoriels et verticaux vivent uniquement dans les dépôts produit.
  • Les modules OS partagés vivent uniquement dans after_core, after_consumer et after_enterprise.
  • Générer plutôt que repartir de zéro.
  • Des ports plutôt que des SDK.
  • L’esprit de famille prime : chrome, mouvement, densité, écran de démarrage et shell sont identiques.
  • Chaque port est livré avec une implémentation mock.

Structure commune des appsLien vers cette section: Structure commune des apps

Chaque produit, grand public ou entreprise, démarre selon la même séquence.

text
main.dart
  → PlatformConfig.current = manifest
  → ProviderScope(overrides: After*Overrides…)
  → ColdStart (OVERSTEIN splash)
       → AuthGate
            → ProductShell (tabs from platform + spec)
                 → Home = Dashboard Engine (+ plugins)
                 → OS modules = platform screens
                 → Vertical = product feature modules only

Source supercore/docs/PLATFORM_DOCTRINE.md (s’ouvre dans un nouvel onglet)