nomadcode/agent-ops/rules/domain/mobile/android-native/rules.md

1.8 KiB

name description type
android-native Android 앱 진입점, 채널 등록, 앱 생명주기 관리 (Supporting Domain) supporting

Android Native

목적 / 책임

  • Android 앱 진입점 및 초기화
  • Flutter ↔ Android 채널(EventChannel, MethodChannel) 등록
  • 알림 채널(NotificationChannel) 생성 및 관리
  • 앱 생명주기(포그라운드/백그라운드) 상태 추적

포함 경로

  • android/app/src/main/java/com/tokilabs/mattermost/MainActivity.kt
  • android/app/src/main/java/com/tokilabs/mattermost/MainApplication.kt
  • android/app/src/main/java/com/tokilabs/mattermost/AppLifecycleTracker.kt
  • android/app/src/main/AndroidManifest.xml
  • android/app/build.gradle.kts

제외 경로

  • android/.../db/ (database 도메인)
  • android/.../helpers/ (각 담당 도메인)
  • android/.../MattermostFirebaseMessagingService.kt (push-notification 도메인)

주요 구성 요소

  • MainActivity: EventChannel & MethodChannel 등록
  • MainApplication: 앱 시작 시 알림 채널 생성, AppLifecycleTracker 등록
  • AppLifecycleTracker: 앱 포그라운드/백그라운드 상태 추적 (ActivityLifecycleCallbacks)

유지할 패턴

  • 알림 채널은 MainApplication.onCreate()에서 생성
  • EventChannel ID: com.tokilabs.mattermost/events
  • MethodChannel ID: com.tokilabs.mattermost/methods (또는 실제 ID 확인 후 갱신)

다른 도메인과의 경계

  • push-notification: 알림 채널 생성은 android-native, 실제 알림 표시는 push-notification
  • flutter-app: Flutter 레이어와의 통신은 채널을 통해서만, 직접 Flutter 코드 수정 지양

금지 사항

  • 비즈니스 로직을 MainActivity/MainApplication에 넣지 않는다.
  • 채널 ID를 하드코딩할 경우 반드시 상수로 추출한다.