話題の記事

Google I/O 2016 で「Firebase」の新バージョンが発表!プッシュ通知機能を iOS アプリで使ってみた

2016.05.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Firebase とは

本日(2016/05/19、日本時間)より開催されている Google I/O 2016 にて、モバイル向けのサービス群「Firebase」の新バージョンが発表されました。ログ解析ツール「Firebase Analytics」やプッシュ通知サービス「Notifications」が無料・無制限で利用できるところが注目を集めています。

firebase

本記事では iOS アプリへの Firebase の導入とセグメント通知を試してみました。

Firebase の導入

Google アカウントにサインインして、下記の URL にアクセスします。

新規プロジェクトを作成します。従来のプロジェクトもインポートできるようです。

firebase-ios-01

トップページにある「iOS アプリに Firebase を追加」をクリックします。

firebase-ios-02

Bundle ID を入力します。

firebase-ios-03

GoogleService-Info.plist がダウンロードできるので、適当なサンプルプロジェクトを作成し追加します。

firebase-ios-04

ライブラリを CocoaPods 経由でインポートします。PodfileFirebase/Core を追加します。通知を使う場合は Firebase/Messaging も必要です。

pod 'Firebase/Core'
pod 'Firebase/Messaging'

pod install を実行です。

$ pod install

AppDelegate に下記コードを追加します。

Objective-C の場合はこんな感じで、

@import UIKit;
@import Firebase;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [FIRApp configure];
  return YES;
}

Swift の場合はこんな感じです。

import UIKit
import Firebase

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?

  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    FIRApp.configure()
    return true
  }
}

FIRAppconfigure メソッドを呼び出すだけです。あとは全て Plist を見てやってくれるようです。簡単ですね!

Notifications でセグメント通知してみる

iOS の場合は、GCM for iOS 経由でプッシュ通知を送信することができます。まずはプロジェクトの設定画面を開きます。

firebase-ios-notify-01

「クラウドメッセージング」タブが GCM の設定です。

firebase-ios-notify-02

APNs のリモート通知用の p12 ファイルを予め作成しておき、アップロードします。

有効期限が表示されます。ここまでで設定は完了で、プッシュ通知を送る環境が整いました。

firebase-ios-notify-03

アプリ側では、デフォルトでは Method swizzling を使って APNs の設定を行おうとします。これが気持ち悪い場合は Info.plistFirebaseAppDelegateProxyEnabledNO の設定で追加しておきます。

firebase-ios-notify-info-plist

FirebaseAppDelegateProxyEnabledNO の場合は通常どおり APNs の設定を行った後 FIRInstanceID#setAPNSToken() を呼び出します。

func application(application: UIApplication,
                 didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
    FIRInstanceID.instanceID().setAPNSToken(deviceToken, type: .Sandbox)
}

右側のグローバルメニューから「Notifications」をクリックし「最初のメッセージを送信」をクリックします。

firebase-ios-notify-04

フォームが出てきます。メッセージ文、メッセージラベルなどを付け、App に 先ほど作ったアプリを選択します。

firebase-ios-notify-05

言語やバージョンなどでセグメントが可能です。

firebase-ios-notify-06

コンバージョンイベントを設定可能です。

firebase-ios-notify-07

ペイロードにカスタムデータを盛り込めます。また、通知音の有無、iOS のバッチ数などを指定可能です。インクリメントはできないっぽいです。

firebase-ios-notify-08

地味に下書きにできるのが気が利いてますね。送信ボタンをクリックすると、送信確認画面が表示されます。

firebase-ios-notify-09

送信してみると、無事に受信できることが確認できました!

firebase-ios-notify-10

送信ログは一覧で見ることができます。

firebase-ios-notify-11

まとめ

これらの機能が無料・無制限で使えるのは非常に魅力的ですね!他にも面白そうな機能があるので、試してきたいと思います!

参考