Hotwire Native 앱에서 푸시 알림을 구현하는 과정은 디바이스가 고유한 알림 토큰을 생성하고 이를 서버에 전달한 후, 서버가 해당 토큰을 사용하여 APNs 또는 FCM에 알림 페이로드를 전송하는 4단계 흐름으로 구성됩니다.
Hotwire Native 푸시 알림 구현 단계
-
디바이스 푸시 알림 등록: Hotwire BridgeComponent인
NotificationTokenComponent를 통해 디바이스를 푸시 알림에 등록합니다.UNUserNotificationCenter로 사용자에게 알림 권한을 요청하고,UIApplication.shared.registerForRemoteNotifications()를 호출합니다. -
API 클라이언트를 통한 토큰 전송: 디바이스에서 생성된 알림 토큰을 API 클라이언트를 통해 백엔드 서버의
notification_tokens.json엔드포인트로 POST 요청으로 전송합니다.application/json타입의 HTTP 바디에NotificationToken객체를 인코딩하여 포함시킵니다. -
서버에서 토큰 영구 저장: Rails 애플리케이션의
NotificationTokensController에서 전송된 토큰을 받아ApplicationPushDevice모델에 저장합니다.find_or_create_by!메서드로 토큰과 현재 사용자(Current.user)를 연결하고 중복 저장을 방지합니다. 성공 시head :ok응답을 반환합니다. -
APNs/FCM으로 알림 발송: 저장된
ApplicationPushDevice정보를 기반으로ApplicationPushNotification객체를 생성하고,deliver_later_to메서드를 사용하여 특정 사용자 디바이스로 알림을 비동기적으로 발송합니다.
이러한 체계적인 과정을 통해 Hotwire Native 앱은 APNs와 FCM을 활용하여 안정적이고 시의적절한 푸시 알림을 사용자에게 효과적으로 전달할 수 있습니다.