After Framework

시작하기

요구 사항, 형제 체크아웃, 의존성, 컴포지션 루트, Super App 체크리스트.

문서 버전: supercore main · 패키지 1.0.0

요구 사항이 섹션으로 연결되는 링크: 요구 사항

모든 패키지는 Dart SDK ^3.12.2와 Flutter >=3.27.0를 대상으로 합니다. 패키지는 pub.dev에 게시되지 않으며, 제품은 경로로 의존합니다.

형제 체크아웃이 섹션으로 연결되는 링크: 형제 체크아웃

경로 의존성이 해석되도록 supercore를 제품 저장소 옆에 클론하세요.

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

소스 supercore/README.md (새 탭에서 열림)

의존성 추가이 섹션으로 연결되는 링크: 의존성 추가

컨슈머 제품

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

소스 supercore/README.md (새 탭에서 열림)

엔터프라이즈 제품

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

소스 supercore/README.md (새 탭에서 열림)

컴포지션 루트이 섹션으로 연결되는 링크: 컴포지션 루트

각 제품은 하나의 컴포지션 루트에서 매니페스트를 등록하고 표준 오버라이드를 반환한 뒤, 그 위에 제품 어댑터를 얹습니다.

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

소스 supercore/templates/super_app_consumer/after_framework.dart (새 탭에서 열림)

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

소스 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