After Framework

アーキテクチャ

レイヤー、依存関係ルール、譲れない原則、共通のアプリ構造について説明します。

ドキュメントのバージョン: supercore main · パッケージ 1.0.0

レイヤーこのセクションへのリンク: レイヤー

上から順に、プロダクトドメイン、エコシステムと AI、プロダクトラインのレイヤー 1 つ、そしてカーネルとデザインシステムです。Firebase アダプターはコンポジションルートでバインドされます。

  • プロダクトドメイン層

    各プロダクトリポジトリの lib/features/<vertical>/ 配下に置く、garage、patients、flights などのバーティカル機能のみです。共有パッケージには決して置きません。

  • エコシステム層

    After ID、After+、イベントバス、プロダクト横断 API、共有サービスです。プロダクト同士はこのファブリックを通じて連携し、兄弟プロダクトを直接インポートすることはありません。

  • AI 機能

    会話、OCR、ビジョン、要約、ツール呼び出しなどのモジュール式機能を備えた単一の AI プラットフォームです。プロダクトは機能を有効化・無効化するだけで、独自の AI スタックを持ちません。

  • コンシューマーモジュール

    メンバーシップブリッジ、コンシューマー機能カタログ、パーソナルボールト、起動時の同意、地域ロケーションからなる薄い B2C レイヤーです。リファレンス:SuperGarage。

  • エンタープライズモジュール

    組織、RBAC、ワークフロー、タスク、カレンダー、ドキュメント、メッセージング、レポート、監査、オフライン同期など 14 の B2B ポートで、それぞれにインメモリのモックが付属します。リファレンス:SuperHospital。

  • 共有カーネル

    認証、堅牢化されたネットワーク、ストレージ、Riverpod による DI、フラグ、リモート設定、BYOK AI SDK、プレミアム権限、通知、ディープリンク、そしてダッシュボード・プラグイン・検索・設定の各エンジンです。

  • デザインシステム

    コンシューマーとエンタープライズに共通のビジュアルファミリーです。カラー、スペーシング、角丸、モーション、タイポグラフィのトークンと共有コンポーネントを提供します。

  • Firebase アダプター

    after_core のポートの背後にある Firebase Auth、Firestore の blob 同期、Storage のメディア同期です。コンポジションルートでのみバインドされ、ドメインコードが Firebase をインポートすることはありません。

依存関係ルールこのセクションへのリンク: 依存関係ルール

依存関係は下向きのみです。プロダクト同士は、エコシステム層のイベントとセキュアな API を通じて通信します。ドメインを追加すると最上位レイヤーにモジュールが加わり、この図は変わりません。

after_ecosystemafter_aiafter_consumerafter_enterpriseafter_firebaseafter_coreafter_design_system

原則このセクションへのリンク: 原則

  • SuperGarage はコンシューマー向けのリファレンス、SuperHospital はエンタープライズ向けのリファレンスです。
  • 業界別・バーティカルモジュールは、プロダクトリポジトリにのみ置きます。
  • 共有 OS モジュールは、after_core、after_consumer、after_enterprise にのみ置きます。
  • ゼロから作らず生成する。
  • SDK よりポート。
  • ファミリーとしての統一感を優先:UI フレーム、モーション、密度、スプラッシュ、シェルは同一です。
  • すべてのポートにモック実装が付属します。

共通のアプリ構造このセクションへのリンク: 共通のアプリ構造

コンシューマー向けでもエンタープライズ向けでも、すべてのプロダクトは同じ手順で起動します。

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

ソース supercore/docs/PLATFORM_DOCTRINE.md (新しいタブで開きます)