React Native - push notification
Post

React Native - push notification

Push Notification

  • 서버에서 설치된 앱에 메시지를 전달하고, 앱에서 전달된 메시지를 보여주는 것

  • 종류

    • Data Message
      • 데이터만 전달 해주는 푸시
      • Notification은 별도로 띄우지 않음
      • 앱의 설치 여부 또는 데이터의 갱신이 필요할 때 사용
    • Notification Message
      • 실제로 유저에게 메시지와 함께 알려주는 것
      • 단순 광고성 메시지, 채팅 메시지 수신 등

FCM

  • 최초 생성
    • 앱이 설치된 뒤에 FCM에서 기기 식별이 가능한 Token 발급
    • 앱에서 필요할 때 조회할 수 있음
    • 발급된 Token을 별도의 DB에 저장
  • 메시지 전달
    • 별도로 저장된 DB의 값을 읽어와 FCM으로 전송 요청
    • FCM 내부 서버에서는 식별 가능한 기기로 FCM을 전송
    • 전송한 뒤 응답으로 Token에 잘 전달 했는지 확인 가능
  • 푸시 성공률은 99%,
  • 방해 금지 모드나 sleep 모드 시에는 푸시를 받지 못하기도 함
  • 발급받은 token의 재발급 조건
    • 앱을 제거하고 재설치 하는 경우
    • 앱의 데이터를 지우는 경우
    • 새기기에서 앱이 복원된 경우
    • onTokenRefresh이벤트로 바뀐 Token값을 알 수 있음

FCM 적용

FCM에 APNs설정하는 방법

  • apple developer에서 발급 받은 인증서, 인증 키 등을 FCM Console에서 설정만 해주면 APNs 이용가능

  • Local Notification

    • 클라이언트에서 Notification을 띄우기 위해 사용
    • 특정 시간 뒤에 유저에게 알림을 주거나, 앱이 foreground 상태에서 fcm을 받는 경우 사용됨
    • react-native-push-notification 사용

APNS

  • Apple Push Notification Services
  • FCM과 Token발급, 업데이트, 발송 등의 기능은 비슷
  • Token 발급 과정 중 발급받는 APNs Token이 없을수도 있음(푸시허용x)
  • FCM을 통해 APNs로 접근이 가능
  • 사실상 FCM을 통해 ios에도 푸시를 보낼 수 있는 구조

Firebase Analytics

  • 유저의 행동을 추적하고 보고서 형태로 받아오기 위한 것
  • 연령대, 기기, 위치 등 유저군을 특정하여 분석 가능
  • 기능이 잘 동작하는지 등에 대해서 검증가능
  • 표준 이벤트
    • 가장많이 사용되는 이벤트들을 먼저 지정
    • 표준이벤트 발송시에 분석을 자동으로 해주는 이점이 있음
  • rnfirebase