Help us understand the problem. What is going on with this article?

Firebase Notificationを使用してiOS端末にPush通知を送信する

More than 1 year has passed since last update.

はじめに

この記事はHamee Advent Calendar 2016の18日目の記事です。

普段の業務でiOSアプリ開発に携わっているのですが、今回はiOS端末のPush通知をFirebase Notificationを使用して実装する流れを簡潔に書きます。

Firebaseとは?

超絶ざっくりと説明するとFirebaseは2011年にアメリカで開始したMBaasですが,2014年にGoogleに買収されたサービスです。
今回は、Firebase Cloud MessagingしFirebase NotificationからPush通知をすることしか書かないので、Firebaseが提供する諸々の機能などについてはFirebaseの公式サイトの機能説明をご覧ください。

Firebase console上で新規プロジェクトの作成

まず、Firebase consoleで新規プロジェクトを作成します。
スクリーンショット 2016-12-18 21.48.02.png

プロジェクト名/国・地域を入力し作成ボタンを押します。
スクリーンショット 2016-12-18 20.36.37.png

作成したプロジェクト上でiOSアプリにFirebaseを追加を選択します。
スクリーンショット 2016-12-18 21.58.18.png
iOSバンドルIDはPush通知を実装するアプリのBundle Identiferと同じにしてください。

Xcode上で新規プロジェクトの作成

push通知を実装するプロジェクトを作成してください。
プロジェクトのBundle Identiferは先程、作成したFirebase上のプロジェクトのiOSバンドルIDと同じにしてください。
cocoaPodsでfirebaseをインストールします。
次に、XcodeプロジェクトのPush NotificationsをONに設定します。
スクリーンショット 2016-12-18 22.09.04.png
そして、先程Firebase console上でiOSアプリにFirebaseを追加の②で作成したファイルをXcode上のプロジェクトにコピーします。
スクリーンショット 2016-12-18 22.09.04.png
これでXcode上のプロジェクトの設定は完了です。

AppDelegate.swiftに通知処理の実装をする

まずimport文を記述します。

import Firebase

そして、application:didFinishLaunchingWithOptionsメソッドに

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        //プッシュ通知設定登録
        let notificationSettings = UIUserNotificationSettings(
            forTypes: [.Badge, .Sound, .Alert], categories: nil)
         application.registerUserNotificationSettings(notificationSettings)

        application.registerForRemoteNotifications()
        FIRApp.configure()
        return true
    }

上記を記述します。

プッシュ通知を送信する

先程、作成したfirebaseプロジェクトの設定画面に証明書をアップロードします。
スクリーンショット 2016-12-18 20.47.53.png
証明書の発行方法はこちらから

アップロードが完了したらxcodeプロジェクトのアプリを端末で起動します。
プッシュ通知許可ダイアログが表示されるのでOKを選択してください。
IMG_0120.PNG
起動したアプリをバックグラウンドに待機させて
firebase consoleのNotificationsからメッセージを送信します。
スクリーンショット 2016-12-18 21.12.48.png
するとPush通知がピコーンと飛んできます!
IMG_0121.PNG

おわりに

いかがでしょうか?無事Push通知は飛んできましたでしょうか?
FirebaseにはDynamic linksという機能もありPush通知を使用して、アプリ内の狙った箇所にPush通知を起点として画面遷移をすることももちろん可能です!

いろいろなPush通知サービスはたくさんありますが、GoogleがFirebaseを買収しより本格的にサービスを成長させていくと思うので、まだ他社のPush通知サービスと比較すると使いにくい所もありますが是非、Firebaseを使ってみてください!Firebaseは機能が豊富!

Firebaseは奥が深いぞ!

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away