はじめに
要件、兄弟チェックアウト、依存関係、コンポジションルート、Super App チェックリストについて説明します。
ドキュメントのバージョン: supercore main · パッケージ 1.0.0
要件このセクションへのリンク: 要件
すべてのパッケージは Dart SDK ^3.12.2 と Flutter >=3.27.0 を対象としています。パッケージは pub.dev には公開されておらず、プロダクトはパスで依存します。
兄弟チェックアウトこのセクションへのリンク: 兄弟チェックアウト
パス依存関係を解決できるよう、supercore をプロダクトリポジトリと同じ階層にクローンします。
HANTURAI/
supercore/
supergarage/ # consumer reference
superhospital/ # enterprise reference
superhealth/ superfinance/ superhome/ supertravel/ supersports/ …依存関係の追加このセクションへのリンク: 依存関係の追加
コンシューマー向けプロダクト
dependencies:
after_core:
path: ../supercore/packages/after_core
after_consumer:
path: ../supercore/packages/after_consumer
after_design_system:
path: ../supercore/packages/after_design_systemエンタープライズ向けプロダクト
dependencies:
after_core:
path: ../supercore/packages/after_core
after_enterprise:
path: ../supercore/packages/after_enterprise
after_design_system:
path: ../supercore/packages/after_design_systemコンポジションルートこのセクションへのリンク: コンポジションルート
各プロダクトは 1 つのコンポジションルートでマニフェストを登録して標準のオーバーライドを返し、その上にプロダクトのアダプターを重ねます。
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}',
);
}
}ソース supercore/templates/super_app_consumer/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(),
),
];
}ソース supercore/templates/super_app_enterprise/after_framework.dart (新しいタブで開きます)
Super App チェックリストこのセクションへのリンク: Super App チェックリスト
必須
- supercore の after_core と after_design_system に依存する
- 一意の AppPlatformManifest:appId、packageName、ウィジェットプロバイダー、iOS アプリグループ
- コンポジションルートを lib/app/platform/after_framework.dart に置く
- runApp の前に PlatformConfig.current を設定する
- 認証、分析、プッシュ通知、権限を After のポートの背後に置く
- requireHttps: true を指定した HTTPS の Dio ポリシー
- AfterThemeData によるテーマ
- バーティカル機能は lib/features/ 配下にのみ置く
- スモークテスト:マニフェストとオーバーライドが空でないこと
- CI:フォーマット、静的解析、テスト
推奨
- ストアフレーバー:play、dev、huawei
- assets/l10n と文字列カタログ
- AfterUserPlan と AfterPlanFeature に対応付けた権限マトリクス
- Overstein の法務ハブにあるプライバシーポリシーと利用規約の URL