[일단기록] 네이티브 언어로 기능 구현 vs React Native로 기능 구현 (Feat. FCM)

kjoo0·2024년 6월 29일
0

일단기록

목록 보기
2/10
post-thumbnail

React Native로 FCM(Firebase Cloud Messaging)을 처리할 때, 일부 네이티브 기능을 완전히 구현하지 못할 수 있습니다. 주요 차이점과 특정 기능들을 구체적으로 설명하면 다음과 같습니다

네이티브 언어로 가능하지만 React Native로 어려운 기능

  1. 고급 알림 설정 및 커스터마이징

    • 커스텀 알림 소리
      네이티브 코드에서는 알림 소리를 커스터마이징할 수 있지만, React Native에서는 기본 소리만 사용할 수 있습니다.
    • 알림 채널 설정:
      Android 8.0(Oreo) 이상에서 알림 채널을 설정하는 것은 네이티브 코드에서는 가능하지만, React Native에서는 제한적입니다.
  2. 알림 작업 수행

    • 백그라운드에서의 작업 수행
      네이티브 코드에서는 백그라운드 서비스에서 알림에 대한 작업을 수행할 수 있습니다. 예를 들어, 다운로드 작업을 시작하거나 특정 데이터를 업데이트할 수 있습니다. React Native에서는 이 작업이 제한적이며, 일반적으로 포그라운드 상태에서만 가능합니다.
    • 포그라운드 서비스
      네이티브 코드에서는 포그라운드 서비스를 사용할 수 있어, 앱이 종료되지 않고 특정 작업을 지속할 수 있습니다. React Native에서는 이를 직접 구현하기 어렵습니다.
  3. 고급 알림 상호작용

    • 인라인 답장
      네이티브 코드에서는 알림에서 직접 답장을 입력하는 기능을 구현할 수 있습니다. React Native에서는 이러한 상호작용을 구현하기가 어렵습니다.
    • 알림 액션 버튼
      네이티브 코드에서는 여러 액션 버튼을 알림에 추가하고 각각의 버튼에 다른 동작을 설정할 수 있습니다. React Native에서는 이러한 기능을 구현하는 데 한계가 있습니다.
  4. 지오펜싱 및 위치 기반 알림

    • 네이티브 코드에서는 지오펜싱을 설정하여 사용자가 특정 지역에 들어가거나 나갈 때 알림을 트리거할 수 있습니다. React Native에서는 이러한 기능을 직접적으로 구현하기 어렵습니다.
  5. 다른 앱과의 깊은 통합

    • 디바이스 관리자 권한
      네이티브 코드에서는 앱이 디바이스 관리자 권한을 요청하고 설정할 수 있습니다. React Native에서는 이러한 작업이 불가능합니다.
    • 다른 앱과의 통합
      네이티브 코드에서는 다른 앱과 깊이 통합하여 데이터를 주고받는 것이 가능합니다. 예를 들어, 특정 알림이 다른 앱을 열거나 특정 동작을 수행하도록 설정할 수 있습니다. React Native에서는 이러한 작업이 제한적입니다.

요약

React Native는 크로스 플랫폼 개발의 이점을 제공하지만, 네이티브 API에 대한 접근이 제한적일 수 있습니다. 복잡한 알림 처리나 고급 기능이 필요한 경우 네이티브 코드로 구현하는 것이 더 나을 수 있습니다. 일반적인 알림 처리나 단순한 기능 구현에는 React Native로 충분하지만, 위에 나열한 고급 기능이 필요하다면 Kotlin이나 Swift로 네이티브 코드를 작성해야 합니다.

profile
티스토리 이사 준비 중..

0개의 댓글