43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
---
|
|
name: flutter-app
|
|
description: Flutter UI 레이어 - 앱 진입점, 화면 라우팅, 로그인, 상태관리 담당 (Core Domain)
|
|
type: core
|
|
---
|
|
|
|
# Flutter App
|
|
|
|
## 목적 / 책임
|
|
- Flutter 앱 진입점 및 위젯 트리 관리
|
|
- 화면 라우팅 (알림 탭 시 채널/DM 이동)
|
|
- 로그인 화면 및 인증 토큰 설정
|
|
- Firebase 초기화
|
|
|
|
## 포함 경로
|
|
- `lib/main.dart`
|
|
- `lib/` (서비스 파일 제외한 화면/위젯 코드)
|
|
|
|
## 제외 경로
|
|
- `lib/services/` (push-notification 도메인)
|
|
- `android/` (android-native 도메인)
|
|
|
|
## 주요 구성 요소
|
|
- `main.dart`: Firebase 초기화, PushNotificationService 세팅, 앱 위젯
|
|
- `MyApp`: MaterialApp 루트 위젯
|
|
- `MyHomePage`: 현재 기본 홈 화면 (TODO: 실제 라우터로 교체 필요)
|
|
|
|
## 유지할 패턴
|
|
- Firebase.initializeApp() 은 앱 시작 시 가장 먼저 호출
|
|
- PushNotificationService 초기화는 Firebase 초기화 후
|
|
|
|
## TODO (push-notification-todo.md 기준)
|
|
- **[TODO-2] 🔴**: 앱 라우터 및 화면 네비게이션 구현
|
|
- **[TODO-3] 🔴**: 로그인 화면 및 setAuthToken 연동
|
|
- **[TODO-4] 🟡**: 포그라운드 알림 UI 표시
|
|
|
|
## 다른 도메인과의 경계
|
|
- **push-notification**: 알림 탭 이벤트 수신은 push-notification, 이후 화면 이동은 flutter-app
|
|
- **android-native**: Flutter ↔ Android 통신은 EventChannel/MethodChannel 사용, 직접 수정 최소화
|
|
|
|
## 금지 사항
|
|
- Android 네이티브 파일을 이 도메인에서 직접 수정하지 않는다.
|
|
- 서비스 로직을 위젯 코드에 섞지 않는다.
|