After Framework

Primeiros passos

Requisitos, checkout lado a lado, dependências, raiz de composição e o checklist de Super App.

Versão da documentação: supercore main · pacotes 1.0.0

RequisitosLink para esta seção: Requisitos

Todo pacote tem como alvo o Dart SDK ^3.12.2 e o Flutter >=3.27.0. Os pacotes não são publicados no pub.dev; os produtos dependem deles por caminho.

Checkout lado a ladoLink para esta seção: Checkout lado a lado

Clone o supercore ao lado do repositório do seu produto para que as dependências de caminho sejam resolvidas.

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

Fonte supercore/README.md (abre em uma nova aba)

Adicionar dependênciasLink para esta seção: Adicionar dependências

Produto 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

Fonte supercore/README.md (abre em uma nova aba)

Produto 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

Fonte supercore/README.md (abre em uma nova aba)

Raiz de composiçãoLink para esta seção: Raiz de composição

Cada produto registra seu manifesto e retorna os overrides padrão a partir de uma única raiz de composição, depois adiciona seus adaptadores por cima.

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

Fonte supercore/templates/super_app_consumer/after_framework.dart (abre em uma nova aba)

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

Fonte supercore/templates/super_app_enterprise/after_framework.dart (abre em uma nova aba)

Checklist de Super AppLink para esta seção: Checklist de Super App

Obrigatório

  • Depender de after_core e after_design_system do supercore
  • AppPlatformManifest único: appId, packageName, provider de widget, app group do iOS
  • Raiz de composição em lib/app/platform/after_framework.dart
  • Definir PlatformConfig.current antes de runApp
  • Auth, analytics, push e direitos atrás de ports After
  • Política HTTPS do Dio com requireHttps: true
  • Tema a partir de AfterThemeData
  • Features verticais apenas em lib/features/
  • Smoke test: manifesto e overrides não vazios
  • CI: formatação, análise, testes

Recomendado

  • Flavors de loja: play, dev, huawei
  • assets/l10n e um catálogo de strings
  • Matriz de direitos mapeada para AfterUserPlan e AfterPlanFeature
  • URLs de privacidade e termos no hub jurídico da Overstein