BaaSを使えばアカウント認証やプッシュ通知は、もう面倒くさくない:iOSアプリ開発は、BaaSでここまではかどるぞ(後編)(3/3 ページ)
ここ2年ほどの間で広まってきたクラウドサービス「BaaS(Backend as a Service)」。バックエンドにリソースを割かずに済むBaaSの機能としてデータストア、ソーシャルサービスとの連携、認証機構、プッシュ通知などをiOSアプリから使う方法を解説。
実機から起動してデバイストークンの登録処理を確認
Xcodeのプロジェクト設定で、App IDを先に登録したものに、Provisioning Profileを先ほどインストールしたものに、それぞれ設定します。これで準備完了です。実機をつないでアプリを起動します。認証に成功すると、プッシュ通知の登録を確認するアラートダイアログが表示されます(図6)。
許可した後に、管理ポータルのモバイル サービスの[データ]を開きます。deviceテーブルを開き、[参照]をクリックすると、トークンが登録されていることが分かります(図7)。
スケジューラを使ってプッシュ配信を実行
スケジューラは、バックグラウンドタスクを任意のタイミングで実行できる機能です。管理ポータルのモバイル サービスを開いて、[スケジューラ]を開きます(表示されていない場合は、「Step 3 − Windows Azure プレビュー機能のサインアップ / Windows Azure サブスクリプション申し込み Step by Step」からプレビュー機能を有効にしてください)。
画面下部の[+作成]ボタンはクリックします。「新しいジョブの作成」ダイアログで[ジョブ名]に「notify」と入力し、[スケジュール]に「要求時」を選択して、右下のチェックアイコンをクリックするとジョブ(タスク)が作成されます(図8)。
作成完了したらジョブを開きます。[スクリプト]をクリックするとスクリプトエディタが表示されるため、下記のコードを入力して、下部の[保存]ボタンをクリックして保存します。
function notify() { var table = tables.getTable('device'); table.read({ success: function(devices){ devices.forEach(function(item){ push.apns.send(item.token, { alert: "Test News" }); }); }}); }
JavaScriptなのでコールバックが多いですが、deviceテーブルの操作オブジェクトを取得して、readメソッドで全レコードを配列devicesとして読み込みます。
さらに、各レコードのtokenフィールドの値をpush.apnsオブジェクトのsendメソッドに通知内容とともに渡して、通知をAPNsサーバに要求します。各オブジェクトの詳細については、Windows Azureのモバイル サービスの「サーバー スクリプト リファレンス」を参照ください。
これで準備完了です。実機で実行中であればアプリを閉じておきます。下部の[一度だけ実行する]ボタンをクリックすると、通知が端末に届くはずです(図9)。
補足 APNsフィードバック
アプリが削除されるなどして、通知不要になった端末のデバイストークンを削除する仕組みが、APNsのフィードバックサービスです。図4のフィードバック スクリプトは、このサービスを呼び出し、データを削除する定義ができます。
APNsと接続するサーバは非HTTPの実装を求められるため、扱いにくく感じるところです。そういったものがラップされて提供されているため、最小限の実装でプッシュ通知機能を持つアプリが作れるのは魅力ですね。
BaaSの神髄
今回の後編では、Windows Azureモバイル サービスの認証およびプッシュ通知の、iOSアプリからの利用方法を紹介しました。セットアップの手順が多かったですが、実際に個々のアプリがモバイル サービスを利用するためのスクリプトやiOSアプリのコーディング自体は非常に少なかったと思います。
BaaSの神髄は、まさにそこで、サービス側ではなくアプリ側に注力できることにあります。本記事がアプリ開発者の皆さまにとって、少しでもBaaSを使うきっかけになれば幸いです。
著者プロフィール
高橋 俊光(たかはし としみつ)
ティルフィン合同会社 代表。Twitter(@tilfin)
メーカー企業でパッケージソフト開発などに携わった後、ティルフィン合同会社を設立しフリーエンジニアとして、最近はスマートデバイスアプリやサーバサイドをメインに開発に従事。iOSアプリもリリースしている
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 安藤幸央のランダウン(62):スマホアプリ開発に超絶便利なBaaSとは、MEAPとは
バックエンドの設定用のモバイル向けクラウドサービス「BaaS」と、企業向け業務アプリの複数プラットフォーム対応ソリューション「MEAP」についてまとめて紹介します - BaaSも強化しHTML5 CORSなどサポート:Windows Azureが機能強化、Hadoopサービスのプレビュー版も公開
米MicrosoftはWindows Azureの機能を強化し、Hadoopクラスタを導入・管理できる新サービス「HDInsight」のほか、PhoneGapやDropboxなどのサポートなどを追加した。 - Unity 4.2でBaaSを使って簡単にストアアプリを作るには〜CEDEC 2013「Unity on Windows 8」レポート
開発の概要や、プッシュ通知ができるライブタイルなどWindows特有の機能を追加する方法、事前審査テスト時の注意点なども。 - 連載:業開中心会議議事録:第3回 業務アプリ開発者が活用すべきマルチプラットフォーム向けの開発技術&サービス
“BaaS”の登場などにより、既存のサービスと組み合わせて本格的なアプリを“楽”に構築できるようになってきている。そういった技術やサービスを業務アプリ開発にも適用できるのか? - Androidで動く携帯Javaアプリ作成入門(46):もはや無料BaaS。ゲーム以外でも使いたくなるGoogle Play Game Servicesのデータ管理機能 (1/3)
グーグルの提供するライブラリ「Google Play Game Services」はバイト配列でクラウドにデータを保存・参照・削除できるので、無料でBaaSのデータ同期機能が簡単に使えるようなものです。Androidアプリに組み込む方法を解説します。