아키텍처
계층, 의존성 규칙, 타협할 수 없는 원칙, 공유 앱 구조.
계층이 섹션으로 연결되는 링크: 계층
위에서 아래로 제품 도메인, 에코시스템과 AI, 제품 라인 계층 하나, 그리고 커널과 디자인 시스템 순입니다. 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 블롭 동기화, Storage 미디어 동기화를 제공합니다. 컴포지션 루트에서만 바인딩되며, 도메인 코드는 Firebase를 임포트하지 않습니다.
의존성 규칙이 섹션으로 연결되는 링크: 의존성 규칙
의존성은 아래 방향으로만 향합니다. 제품은 에코시스템 계층의 이벤트와 보안 API를 통해 서로 통신합니다. 도메인을 추가하면 최상단 계층에 모듈이 추가될 뿐, 이 다이어그램은 바뀌지 않습니다.
원칙이 섹션으로 연결되는 링크: 원칙
- SuperGarage는 컨슈머 참조 제품이고, SuperHospital은 엔터프라이즈 참조 제품입니다.
- 산업 및 버티컬 모듈은 제품 저장소에만 둡니다.
- 공유 OS 모듈은 after_core, after_consumer, after_enterprise에만 둡니다.
- 처음부터 만들지 말고 생성하세요.
- SDK보다 포트.
- 패밀리 일관성이 우선합니다: 크롬, 모션, 밀도, 스플래시, 셸은 동일합니다.
- 모든 포트에는 목 구현이 함께 제공됩니다.
공유 앱 구조이 섹션으로 연결되는 링크: 공유 앱 구조
컨슈머든 엔터프라이즈든 모든 제품은 동일한 순서로 부팅됩니다.
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