Google I/O 2016 で「Firebase」の新バージョンが発表!プッシュ通知機能を iOS アプリで使ってみた
Firebase とは
本日(2016/05/19、日本時間)より開催されている Google I/O 2016 にて、モバイル向けのサービス群「Firebase」の新バージョンが発表されました。ログ解析ツール「Firebase Analytics」やプッシュ通知サービス「Notifications」が無料・無制限で利用できるところが注目を集めています。
- Google Developers Japan: Firebase を拡張、統合アプリ プラットフォームとして登場
- [速報]Google、モバイルアプリ用ログ解析ツール「Firebase Analytics」の無償提供を発表。ノーティフィケーションも無制限に無償で提供。Google I/O 2016 - Publickey
本記事では iOS アプリへの Firebase の導入とセグメント通知を試してみました。
Firebase の導入
Google アカウントにサインインして、下記の URL にアクセスします。
新規プロジェクトを作成します。従来のプロジェクトもインポートできるようです。
トップページにある「iOS アプリに Firebase を追加」をクリックします。
Bundle ID を入力します。
GoogleService-Info.plist
がダウンロードできるので、適当なサンプルプロジェクトを作成し追加します。
ライブラリを CocoaPods 経由でインポートします。Podfile
に Firebase/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 } }
FIRApp
の configure
メソッドを呼び出すだけです。あとは全て Plist を見てやってくれるようです。簡単ですね!
Notifications でセグメント通知してみる
iOS の場合は、GCM for iOS 経由でプッシュ通知を送信することができます。まずはプロジェクトの設定画面を開きます。
「クラウドメッセージング」タブが GCM の設定です。
APNs のリモート通知用の p12 ファイルを予め作成しておき、アップロードします。
有効期限が表示されます。ここまでで設定は完了で、プッシュ通知を送る環境が整いました。
アプリ側では、デフォルトでは Method swizzling を使って APNs の設定を行おうとします。これが気持ち悪い場合は Info.plist
に FirebaseAppDelegateProxyEnabled
を NO
の設定で追加しておきます。
FirebaseAppDelegateProxyEnabled
が NO
の場合は通常どおり APNs の設定を行った後 FIRInstanceID#setAPNSToken()
を呼び出します。
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { FIRInstanceID.instanceID().setAPNSToken(deviceToken, type: .Sandbox) }
右側のグローバルメニューから「Notifications」をクリックし「最初のメッセージを送信」をクリックします。
フォームが出てきます。メッセージ文、メッセージラベルなどを付け、App に 先ほど作ったアプリを選択します。
言語やバージョンなどでセグメントが可能です。
コンバージョンイベントを設定可能です。
ペイロードにカスタムデータを盛り込めます。また、通知音の有無、iOS のバッチ数などを指定可能です。インクリメントはできないっぽいです。
地味に下書きにできるのが気が利いてますね。送信ボタンをクリックすると、送信確認画面が表示されます。
送信してみると、無事に受信できることが確認できました!
送信ログは一覧で見ることができます。
まとめ
これらの機能が無料・無制限で使えるのは非常に魅力的ですね!他にも面白そうな機能があるので、試してきたいと思います!