2.6 KiB
2.6 KiB
| domain | last_rule_review_commit | last_rule_updated_at |
|---|---|---|
| messaging-flutter | 60eb73c281 |
2026-05-26 |
messaging-flutter
목적 / 책임
nexo 메시징/알림 Flutter 플러그인을 담당한다. FCM 수신, 알림 표시, tap/open 이벤트, inline reply, dismiss 처리, ACK 전달, token/key 저장을 앱별 구현으로 흩어지지 않게 모은다.
포함 경로
packages/messaging_flutter/lib/— public Dart API와 Flutter-facing behaviorpackages/messaging_flutter/android/— Android native plugin implementationpackages/messaging_flutter/ios/,packages/messaging_flutter/macos/— platform scaffold와 stubpackages/messaging_flutter/test/— Dart API contract testspackages/messaging_flutter/docs/— plugin 개발 및 검증 문서packages/messaging_flutter/pubspec.yaml— plugin package metadata
제외 경로
apps/client/— plugin을 소비하는 host app 책임services/core/— server, webapp, API, compose runtime 책임- root
bin/— workspace-level command entrypoint 책임
주요 구성 요소
- plugin public API — singleton access, event stream, token/key action channel
NotificationOpenedEvent— notification open payload parsing- Android FCM service — Android FCM 수신 진입점
NotificationReplyBroadcastReceiver,NotificationDismissService— Android action handlingReceiptDelivery— ACK delivery 책임
유지할 패턴
- public package/import/native identifier는 nexo 계열 이름으로 전환하되, host app과 native 등록 지점을 같은 계획 안에서 함께 갱신한다.
- Android가 production target이며 iOS/macOS는 stub 상태임을 명확히 보고한다.
- host app이 해야 할 Firebase 초기화, token 등록, navigation 연결은 README의 Host App Responsibilities와 맞춘다.
- native event type은 Dart API의
PushNotificationType과 호환되게 유지한다.
다른 도메인과의 경계
- client-app: client app은 integration host이며 plugin 내부 push 처리 로직을 복제하지 않는다.
- core-service: server와의 계약은 payload, signing key, auth token, ACK/reply endpoint 수준으로 다룬다.
- workspace-ops: 공통
bin/test,bin/lint가 plugin 검증을 호출하지만 plugin 세부 검증 기준은 이 도메인이 소유한다.
금지 사항
- package rename이나 public API breaking change는 현재 마일스톤의 nexo 전환 결정과 계획에 맞춰 수행한다.
- host app 전용 navigation, 화면 구성, 제품 UI 상태를 plugin 내부에 넣지 않는다.
- iOS/macOS stub을 production-ready로 단정하지 않는다.