LoginSignup
0
0

More than 1 year has passed since last update.

[Flutter] FCM vs Local Notification

Last updated at Posted at 2021-11-25

はじめに

FlutterでAndroidとiOSのアプリを両方開発しているところで、Push Notificationを実装することになりました。
最初はFCMとLocal Notificationの機能に関して紛らわしいことがありましたので、今回はこれに関して整理しようと思います。

FCM (Firebase Cloud Messaging)

Firebase Cloud Messaging(FCM)は、メッセージを無料で確実に送信するためのクロスプラットフォーム メッセージング ソリューションです。

Firebaseサイトで定義されてる概念で、Firebaseサーバーを使って簡単にユーザーにメッセージを送信することができるとで理解すれば、大丈夫だと思います。

FlutterにFCMを適用する方法

Flutterでは、firebase_messagingのパッケージを追加して使用することができます。

注意することはiOSはAPNsキーもしくはAPNs認証書を登録を事前にしなければ、送信できないので、面倒だけどXcodeの方でAPNsの登録を含めてbundle ID設定やProvisioning Profile設定をしましょう。

あと、他のFirebaseパッケージ、例えば、firebase_authやfirebase_coreなどを使うことになったら、バージョンの互換性も考えないとビルドエラーが起こる可能性もあるので気をつけた方がいいです。

FlutterのLocal Notification

A cross platform plugin for displaying and scheduling local notifications for Flutter applications with the ability to customise for each platform.

これもFCMみたいにメッセージを送信するためのクロスプラットフォームです。

FlutterにLocal Notificationを適用する方法

Local Notificationもfirebase_messagingようにflutter_local_notificationsのパッケージを追加すれば使用することができます。

FCMとLocal Notificationの共通点

  • 両方Android,iOSにメッセージを無料で送信することができる
  • メッセージの予約可能
  • Notification許可ダイアログを出すことができる (これ以上何かあったら、Feedbackしてください😭)

FCMとLocal Notificationの相違点

  • FCMはiOSの方の追加的な対応が必要(bundle ID, Provisioning Profile, APNsキー, tokenなど)
  • FCMはメッセージの中に画像を表示したいなら、Flutter上にObjective-Cで対応しなければならない。

  • FCMはfirebaseをデータベースとして使用している場合は、クラウド機能を使用してデータベースに加えられた変更をlistenすることができる。
  • :pushpin:用語の違い:機能がほぼ同じでFCMとLocal Notificationを話すとき、プッシュ通知もしくはPush Notificationと言われるですが、これは正しくないです。

Local Notificationはデバイス上にローカルにアプリ自体から送信、予約されたNotificationです。
Push NotificationはiOSやAndroidのクラウドシステム(APNs,FCMなど)を通じてアプリに送信されたNotificationです。

まとめ

つまり、用語的にFCMはPush Notification, ローカルで送信する通知はLocal Notificationです。FCMはユーザーのデータベースをもとにAPNsとトークンを通してメッセージを送信、Local Notificationはこれに関係なくてメッセージを送信することができます。もちろん、Push Notificationの方がLocal Notificationより細かい設定や実装が必要です。実装したいことによって、ちゃんと検討して実装した方がいいと思いますね。

参考

いつもFeedback歓迎

Feedbackはコメントでお願いします。
では、Happy coding!👋🏻

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0