After Framework

Premiers pas

Prérequis, clones côte à côte, dépendances, racine de composition et liste de contrôle Super App.

Version de la doc: supercore main · packages 1.0.0

PrérequisLien vers cette section: Prérequis

Chaque package cible le SDK Dart ^3.12.2 et Flutter >=3.27.0. Les packages ne sont pas publiés sur pub.dev ; les produits en dépendent par chemin.

Clones côte à côteLien vers cette section: Clones côte à côte

Clonez supercore à côté de votre dépôt produit pour que les dépendances par chemin se résolvent.

text
HANTURAI/
  supercore/
  supergarage/         # consumer reference
  superhospital/       # enterprise reference
  superhealth/  superfinance/  superhome/  supertravel/  supersports/ …

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

Ajouter les dépendancesLien vers cette section: Ajouter les dépendances

Produit grand public

pubspec.yaml
dependencies:
  after_core:
    path: ../supercore/packages/after_core
  after_consumer:
    path: ../supercore/packages/after_consumer
  after_design_system:
    path: ../supercore/packages/after_design_system

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

Produit entreprise

pubspec.yaml
dependencies:
  after_core:
    path: ../supercore/packages/after_core
  after_enterprise:
    path: ../supercore/packages/after_enterprise
  after_design_system:
    path: ../supercore/packages/after_design_system

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

Racine de compositionLien vers cette section: Racine de composition

Chaque produit enregistre son manifeste et renvoie les surcharges standard depuis une racine de composition unique, puis ajoute ses propres adaptateurs par-dessus.

lib/app/platform/after_framework.dart
class SuperAppConsumerFramework {
  SuperAppConsumerFramework._();

  static Future<List<Override>> ensureConfigured() async {
    PlatformConfig.current = superAppConsumerManifest;
    final prefs = await SharedPreferences.getInstance();
    return AfterStandardOverrides.create(
      preferences: prefs,
      userAgent:
          '${superAppConsumerManifest.appName}/${superAppConsumerManifest.appId}',
    );
  }
}

Source supercore/templates/super_app_consumer/after_framework.dart (s’ouvre dans un nouvel onglet)

lib/app/platform/after_framework.dart
static Future<List<Override>> ensureConfigured({
  EnterpriseRepository? enterpriseRepository,
}) async {
  PlatformConfig.current = superAppEnterpriseManifest;
  final prefs = await SharedPreferences.getInstance();
  return [
    ...AfterStandardOverrides.create(
      preferences: prefs,
      userAgent: '${superAppEnterpriseManifest.appName}/'
          '${superAppEnterpriseManifest.appId}',
    ),
    enterpriseRepositoryProvider.overrideWithValue(
      enterpriseRepository ?? MockEnterpriseRepository(),
    ),
  ];
}

Source supercore/templates/super_app_enterprise/after_framework.dart (s’ouvre dans un nouvel onglet)

Liste de contrôle Super AppLien vers cette section: Liste de contrôle Super App

Obligatoire

  • Dépendre d’after_core et d’after_design_system depuis supercore
  • AppPlatformManifest unique : appId, packageName, provider de widget, groupe d’app iOS
  • Racine de composition dans lib/app/platform/after_framework.dart
  • Définir PlatformConfig.current avant runApp
  • Auth, analytique, push et droits derrière les ports After
  • Politique Dio HTTPS avec requireHttps: true
  • Thème issu d’AfterThemeData
  • Fonctionnalités verticales uniquement sous lib/features/
  • Test de fumée : manifeste et surcharges non vides
  • CI : formatage, analyse, tests

Recommandé

  • Variantes de store : play, dev, huawei
  • assets/l10n et un catalogue de chaînes
  • Matrice des droits associée à AfterUserPlan et AfterPlanFeature
  • URL de confidentialité et de conditions sur le hub juridique Overstein