After Framework

Arquitetura

Camadas, a regra de dependência, princípios inegociáveis e o formato de app compartilhado.

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

CamadasLink para esta seção: Camadas

De cima para baixo: domínio do produto, ecossistema e IA, uma camada de linha de produto, depois o kernel e o design system. Os adaptadores Firebase se vinculam na raiz de composição.

  • Camada de domínio do produto

    Apenas features verticais, em lib/features/<vertical>/ no repositório de cada produto: garage, patients, flights. Nunca em pacotes compartilhados.

  • Camada de ecossistema

    After ID, After+, o barramento de eventos, APIs entre produtos e serviços compartilhados. Os produtos se comunicam por essa malha — nunca por imports entre irmãos.

  • Recursos de IA

    Uma única plataforma de IA com recursos modulares — conversa, OCR, visão, sumarização, tool calling e mais. Os produtos ativam ou desativam; não embarcam stacks de IA próprias.

  • Módulos consumer

    Camada B2C enxuta: ponte de assinatura, catálogo de features consumer, cofre pessoal, consentimento de lançamento e localização regional. Referência: SuperGarage.

  • Módulos enterprise

    Catorze ports B2B — organização, RBAC, workflow, tarefas, calendário, documentos, mensagens, relatórios, auditoria, sincronização offline — cada um com um mock em memória. Referência: SuperHospital.

  • Kernel compartilhado

    Auth, rede reforçada, armazenamento, DI com Riverpod, flags, remote config, SDK de IA BYOK, direitos premium, notificações, deep links e os motores de dashboard, plugins, busca e configurações.

  • Sistema de design

    Uma única família visual para consumer e enterprise: tokens de cor, espaçamento, raio, movimento e tipografia, além de componentes compartilhados.

  • Adaptadores Firebase

    Firebase Auth, sincronização de blobs no Firestore e de mídia no Storage por trás dos ports de after_core. Vinculados apenas na raiz de composição; o código de domínio nunca importa Firebase.

Regra de dependênciaLink para esta seção: Regra de dependência

As dependências apontam apenas para baixo. Os produtos se comunicam entre si por eventos e APIs seguras na camada de ecossistema. Adicionar um domínio adiciona um módulo na camada superior e mantém este diagrama inalterado.

after_ecosystemafter_aiafter_consumerafter_enterpriseafter_firebaseafter_coreafter_design_system

PrincípiosLink para esta seção: Princípios

  • SuperGarage é a referência consumer; SuperHospital é a referência enterprise.
  • Módulos de indústria e verticais vivem apenas nos repositórios de produto.
  • Módulos de SO compartilhados vivem apenas em after_core, after_consumer e after_enterprise.
  • Gere, não comece do zero.
  • Ports em vez de SDKs.
  • A identidade da família vence: chrome, movimento, densidade, splash e shell são idênticos.
  • Todo port vem com uma implementação mock.

Formato de app compartilhadoLink para esta seção: Formato de app compartilhado

Todo produto, consumer ou enterprise, inicializa pela mesma sequência.

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

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