목록으로

Programming Notes

안드로이드 앱에 푸시 알림을 더하다: FCM 완벽 가이드 - 3단계, 코드 구현

지난 글([Android] FCM 사용하기 (2))에서는 FCM을 사용하기 위한 기본적인 개념과 설정 방법에 대해 알아보았습니다. 이번 글에서는 실제로 안드로이드 프로젝트에 FCM을 적용하기 위한 핵심적인 소스 코드들을 살펴보겠습니다. AndroidManifest.xml,...

지난 글([Android] FCM 사용하기 (2))에서는 FCM을 사용하기 위한 기본적인 개념과 설정 방법에 대해 알아보았습니다. 이번 글에서는 실제로 안드로이드 프로젝트에 FCM을 적용하기 위한 핵심적인 소스 코드들을 살펴보겠습니다. AndroidManifest.xml, MainActivity, FcmActivity, 그리고 FcmService를 중심으로, 각 파일의 역할과 구현 방법을 자세히 설명하여 여러분의 앱에 푸시 알림 기능을 성공적으로 통합할 수 있도록 돕겠습니다.

시작을 위한 준비: 프로젝트 구조 이해

FCM을 적용하기 위해 필요한 파일들을 하나씩 살펴보겠습니다. 먼저 AndroidManifest.xml은 앱의 기본적인 정보를 정의하는 파일입니다. 여기에는 FCM 관련 서비스와 리시버를 등록하여 앱이 푸시 알림을 받을 수 있도록 설정해야 합니다. MainActivity는 앱의 메인 화면을 담당하는 액티비티로, 여기서는 FCM 토큰을 확인하고 서버에 등록하는 로직을 구현할 수 있습니다. FcmActivity는 푸시 알림을 탭했을 때 실행되는 액티비티로, 알림에 포함된 데이터를 처리하고 화면에 표시하는 역할을 합니다. 마지막으로 FcmService는 앱이 실행 중이거나 백그라운드에 있을 때 푸시 알림을 수신하고 처리하는 데 사용되는 서비스입니다.

핵심 코드 들여다보기

AndroidManifest.xml 설정:

AndroidManifest.xml 파일에는 다음과 같은 요소들을 추가해야 합니다. <service> 태그를 사용하여 FcmService를 등록하고, <intent-filter>를 통해 FCM 메시지를 수신할 수 있도록 설정합니다. <meta-data> 태그를 사용하여 Firebase에서 제공하는 기본 메시지 아이콘이나 색상을 설정할 수도 있습니다. 또한, 푸시 알림을 탭했을 때 실행될 FcmActivity<activity> 태그를 사용하여 등록해야 합니다. 권한 설정도 잊지 마세요. android.permission.INTERNET 권한과 android.permission.POST_NOTIFICATIONS (Android 13 이상) 권한을 추가하여 인터넷 연결과 알림 권한을 확보해야 합니다.

MainActivity 구현:

MainActivity에서는 FirebaseMessaging.getInstance().getToken() 메서드를 사용하여 FCM 토큰을 가져올 수 있습니다. 이 토큰은 앱을 식별하는 데 사용되며, 서버에 등록하여 특정 앱에 푸시 알림을 보낼 수 있도록 합니다. 토큰을 가져온 후에는 서버에 전송하는 로직을 구현해야 합니다. 또한, onNewToken() 메서드를 오버라이드하여 토큰이 갱신될 때마다 서버에 업데이트하도록 구현하는 것이 좋습니다. 사용자에게 토큰을 보여주거나, 특정 액션에 활용하는 로직도 추가할 수 있습니다.

FcmActivity 구현:

FcmActivity는 푸시 알림을 탭했을 때 실행되는 액티비티입니다. getIntent().getExtras() 메서드를 사용하여 알림에 포함된 데이터를 추출하고, 해당 데이터를 기반으로 화면을 업데이트하거나 특정 작업을 수행할 수 있습니다. 예를 들어, 알림에 게시글 ID가 포함되어 있다면 해당 게시글을 화면에 표시할 수 있습니다.

FcmService 구현:

FcmServiceFirebaseMessagingService를 상속받아 구현해야 합니다. onMessageReceived() 메서드를 오버라이드하여 푸시 알림을 수신하고 처리하는 로직을 구현합니다. 이 메서드에서는 알림의 제목, 내용, 데이터 등을 추출하여 필요에 따라 로컬 알림을 생성하거나 앱의 상태를 업데이트할 수 있습니다. 로컬 알림을 생성할 때는 NotificationCompat.Builder를 사용하여 알림의 아이콘, 제목, 내용, 우선순위 등을 설정할 수 있습니다. createNotificationChannel() 메서드를 사용하여 Android 8.0 (API 레벨 26) 이상에서 필요한 알림 채널을 생성해야 합니다.

마무리: 완벽한 푸시 알림 구현을 향하여

이번 글에서는 안드로이드 앱에 FCM을 적용하기 위한 핵심적인 소스 코드들을 살펴보았습니다. AndroidManifest.xml 설정부터 MainActivity, FcmActivity, FcmService 구현까지, 각 파일의 역할과 구현 방법을 자세히 설명했습니다. 이 가이드를 통해 여러분의 앱에 푸시 알림 기능을 성공적으로 통합하고, 사용자 경험을 향상시킬 수 있기를 바랍니다. FCM을 활용하여 더욱 강력하고 유용한 앱을 만들어 보세요!