2.3 KiB
2.3 KiB
| domain | last_rule_review_commit | last_rule_updated_at |
|---|---|---|
| client-app | 60eb73c281 |
2026-05-26 |
client-app
목적 / 책임
Flutter 클라이언트와 mattermost_push_plugin의 독립 소비 앱, 통합 테스트 호스트를 담당한다. 실제 제품 앱으로 확장되기 전에도 plugin integration이 깨지지 않는지 확인하는 기준점이다.
포함 경로
apps/client/lib/— Flutter app sourceapps/client/test/— widget/unit testsapps/client/integration_test/— plugin integration testsapps/client/android/,apps/client/ios/,apps/client/macos/— host app platform configurationapps/client/pubspec.yaml— app dependency and Flutter metadata
제외 경로
packages/messaging_flutter/— push plugin 내부 구현 책임services/core/— messaging server runtime 책임docs/,bin/— workspace 공통 문서와 command 책임
주요 구성 요소
MyApp— plugin event stream과 navigation callback을 표시하는 host app shellMattermostPushPlugin.instance— app이 소비하는 plugin singletonplugin_integration_test.dart— plugin integration behavior 검증 진입점
유지할 패턴
- plugin dependency는 workspace path dependency
../../packages/messaging_flutter를 사용한다. - 앱에서는 token, notification, opened event, navigation callback 등 host integration만 검증한다.
- plugin 내부 native push 처리나 storage 로직을 앱으로 복제하지 않는다.
- Flutter check는
bin/test,bin/lint, 필요 시flutter test integration_test흐름을 따른다.
다른 도메인과의 경계
- messaging-flutter: app은 plugin API 소비자이고, push 처리의 source of truth는 plugin이다.
- core-service: server runtime이 필요한 테스트는 명시적으로 compose 또는 별도 환경을 켠 뒤 수행한다.
- workspace-ops: workspace command가 client 검증을 호출하지만 app 구조와 host behavior는 이 도메인이 소유한다.
금지 사항
- 플러그인 버그를 우회하기 위해 app에 duplicate push 처리 경로를 만들지 않는다.
- generated Flutter platform 파일을 불필요하게 재생성하거나 대량 변경하지 않는다.
- 앱 검증 목적을 넘는 제품 기능을 사용자 요청 없이 크게 확장하지 않는다.