After Framework

Primeros pasos

Requisitos, checkout hermano, dependencias, raíz de composición y la checklist de Super App.

Versión de la documentación: supercore main · paquetes 1.0.0

RequisitosEnlace a esta sección: Requisitos

Todos los paquetes requieren Dart SDK ^3.12.2 y Flutter >=3.27.0. Los paquetes no están publicados en pub.dev; los productos dependen de ellos por ruta.

Checkout hermanoEnlace a esta sección: Checkout hermano

Clona supercore junto al repositorio de tu producto para que se resuelvan las dependencias de ruta.

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

Fuente supercore/README.md (se abre en una pestaña nueva)

Añadir dependenciasEnlace a esta sección: Añadir dependencias

Producto consumer

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

Fuente supercore/README.md (se abre en una pestaña nueva)

Producto enterprise

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

Fuente supercore/README.md (se abre en una pestaña nueva)

Raíz de composiciónEnlace a esta sección: Raíz de composición

Cada producto registra su manifiesto y devuelve los overrides estándar desde una única raíz de composición, y luego añade encima sus adaptadores.

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}',
    );
  }
}

Fuente supercore/templates/super_app_consumer/after_framework.dart (se abre en una pestaña nueva)

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(),
    ),
  ];
}

Fuente supercore/templates/super_app_enterprise/after_framework.dart (se abre en una pestaña nueva)

Checklist de Super AppEnlace a esta sección: Checklist de Super App

Obligatorio

  • Depender de after_core y after_design_system desde supercore
  • AppPlatformManifest único: appId, packageName, provider de widgets, app group de iOS
  • Raíz de composición en lib/app/platform/after_framework.dart
  • Definir PlatformConfig.current antes de runApp
  • Auth, analítica, push y derechos detrás de puertos de After
  • Política HTTPS de Dio con requireHttps: true
  • Tema a partir de AfterThemeData
  • Funcionalidades verticales solo en lib/features/
  • Smoke test: el manifiesto y los overrides no están vacíos
  • CI: formato, análisis, tests

Recomendado

  • Flavors de tienda: play, dev, huawei
  • assets/l10n y un catálogo de cadenas
  • Matriz de derechos asignada a AfterUserPlan y AfterPlanFeature
  • URL de privacidad y términos en el hub legal de Overstein