[flutter] 플러터에서의 푸시 알림 서비스와의 연결 방법

푸시 알림은 모바일 앱 개발에서 중요한 요소 중 하나입니다. 사용자에게 중요한 정보를 실시간으로 전달하고 앱의 사용성을 향상시킬 수 있습니다. 이번 블로그 포스트에서는 플러터에서 푸시 알림 서비스와의 연결 방법에 대해 알아보겠습니다.

1. FCM(Firebase Cloud Messaging) 설정

플러터에서 푸시 알림 서비스를 사용하기 위해서는 먼저 Firebase Cloud Messaging(FCM)을 설정해야 합니다. FCM은 구글의 푸시 알림 서비스로, 안드로이드와 iOS 모두에서 사용할 수 있습니다. FCM을 사용하려면 Firebase 콘솔에 프로젝트를 생성하고 설정해야 합니다.

1.1 Firebase 프로젝트 생성

  1. Firebase 콘솔(https://console.firebase.google.com/)에 접속하여 프로젝트를 생성합니다.
  2. 프로젝트 이름과 프로젝트 ID를 입력하고, 필요한 인증 정보를 추가합니다.

1.2 안드로이드 프로젝트 설정

  1. Firebase 콘솔에서 안드로이드 앱을 추가합니다.
  2. 패키지 이름을 입력하고, 패키지 이름과 SHA-1 인증서 지문을 매핑합니다.
  3. google-services.json 파일을 다운로드하여 프로젝트의 android/app 폴더에 추가합니다.

1.3 iOS 프로젝트 설정

  1. Firebase 콘솔에서 iOS 앱을 추가합니다.
  2. Bundle ID를 입력합니다.
  3. GoogleService-Info.plist 파일을 다운로드하여 프로젝트의 ios 폴더에 추가합니다.

2. Flutter에서 FCM 플러그인 추가하기

FCM을 플러터 앱에서 사용하기 위해서는 FCM 플러그인을 추가해야 합니다. FCM 플러그인은 플러터 패키지 저장소(Flutter Packages)에서 다운로드할 수 있습니다.

dependencies:
  firebase_messaging: ^10.0.0

위의 코드를 pubspec.yaml 파일의 dependencies 섹션에 추가합니다. 그리고 터미널에서 flutter pub get 명령어로 패키지를 다운로드합니다.

3. 플러터 앱에 FCM 설정하기

Firebase Messaging을 사용하기 위해서는 일부 초기 설정이 필요합니다.

import 'package:firebase_messaging/firebase_messaging.dart';

class PushNotificationService {
  static FirebaseMessaging messaging = FirebaseMessaging.instance;

  static Future<void> init() async {
    NotificationSettings settings = await messaging.requestPermission(
      alert: true,
      badge: true,
      sound: true,
    );

    messaging.onMessage.listen((RemoteMessage message) {
      // 앱이 foreground에서 실행 중일 때 실행됩니다.
      print("푸시 알림 메시지를 받았습니다: ${message.notification!.title}");
    });

    messaging.getToken().then((token) {
      // 푸시 알림을 보낼 때 사용되는 기기 토큰을 가져옵니다.
      print("디바이스 토큰: $token");
    });
  }
}

위의 코드는 FCM 플러그인을 초기화하고 알림을 받을 때 실행되는 메소드를 정의한 Service 클래스입니다. init() 메소드는 앱이 실행될 때 한번 호출되어 설정을 초기화합니다.

4. 디바이스 토큰과 푸시 알림 받기

위의 코드에서 messaging.getToken() 메소드를 통해 디바이스 토큰을 가져올 수 있습니다. 이 토큰은 앱을 구별하는 고유한 값으로, 서버에서 알림을 보낼 때 사용됩니다.

푸시 알림을 수신할 때는 messaging.onMessage.listen() 메소드를 사용하여 처리할 수 있습니다. 이 메소드는 앱이 foreground에서 실행 중일 때만 호출됩니다. 필요한 작업(알림 띄우기, 데이터 처리 등)을 수행할 수 있습니다.

5. 마무리

위의 단계를 따라하면 플러터 앱에서 푸시 알림 서비스를 사용할 수 있습니다. FCM을 통해 사용자에게 중요한 정보를 실시간으로 전달하여 앱의 사용성을 향상시킬 수 있습니다. 관련 문서 및 예제 코드는 Firebase Cloud Messaging 문서에서 확인할 수 있습니다.

이상으로 플러터에서의 푸시 알림 서비스와의 연결 방법에 대해 알아보았습니다. 질문이나 의견이 있으시면 댓글로 남겨주세요!