오늘 한 일
- Rust 공식문서
- Kotlin 약알림 앱
- Flutter 웹뷰 플젝
Rust 공식문서 공부
6.2 match 제어흐름
Android Kotlin 개발
화면이동 및 이전 기록(Task Stack) 삭제
고민: Intent Flag
:Task Stack과 관련된 문제인 것 같다
→ Intent로 Task Stack 알아보기
Webview issue: FCM & local_notification
Flow 정리
FCM 연동
- 어떻게 하는지 알아보기
- Android 세팅
- iOS 세팅
FCM 핸들링 메소드
- 어떻게 하는지 알아보기
- onMessage
- ---> 자체적으로 내부 알림을 띄우게 핸들링
- onBackgroundMessage
- getInitialMessage
- onMessageOpenedApp
- ---> 해당 url로 이동해야함
Local Notification 띄우기
- 실제 기기에선 되는지 먼저 확인
- 안드로이드 세팅
- iOS 세팅
- 완료
FCM 라이브러리 스펙확인
iOS 세팅
Xcode 프로젝트 → 푸시알림 & 백그라운드 모드 사용 설정
AOS 세팅
딱히 크게 정의할 필요없음
앱 상태에 따른 메시징 처리
: 앱은 foreground, background, terminated로 구분할 수 있다
포그라운드
앱에 도착하는 알림은 기본적으로 보이는 알림을 표시하지 않는다 → 동작의 재정의로 알림 구현가능 FCM에 의한 알림이 아닌 내부에서의 알림을 띄우는 방식으로
onMessage로 핸들링
FirebaseMessaging.onMessage.listen((RemoteMessage message) {}
백그라운드(네이티브 플랫폼)
onBackgroundMessage
핸들러를 동작해서 처리
메시지 수신시 안드로이드 → 메시지 처리가능 iOS → isolation 처리 X
주의사항
- 익명 함수가 아니어야 합니다.
- 최상위 수준 함수(메서드가 아닌)
- 핸들러는 함수 선언 위에
@pragma('vm:entry-point')
로 주석(release mode의 경우 트리 쉐이킹 중에 삭제가능)
상호작용처리
: 알림 클릭 → 앱 실행 → 원하는 페이지로 이동
getInitialMessage()
: 앱이 열리면RemoteMessage
가 포함된Future
가 반환
→ 소비되면RemoteMessage
가 삭제onMessageOpenedApp
: 앱이 열릴 때RemoteMessage
를 게시하는Stream
입니다
구현
: logger로 디버깅하면서 코드를 짜본 결과 FCM 메시지 수신에는 이상이 없었다.
다만 에뮬레이터에서 메시지 알림이 안 올 뿐.
⇒ 1. 에뮬레이터가 가진 고유의 문제?
⇒ 2. FCM 자체의 알림이 안뜨더라도 foreground에서 수신한 메시지를 핸들링해서 화면에 띄우기 위해선,
local_notification을 통해 띄우는 게 필요하므로, local_notification을 활용해보는 방향으로 생각중이다
마무리
1__ 22일은 개발활동을 할 수 있을까? 너무 피곤..