連載
» 2013年11月12日 15時00分 公開

iOSアプリ開発は、BaaSでここまではかどるぞ(後編):BaaSを使えばアカウント認証やプッシュ通知は、もう面倒くさくない (3/3)

[高橋俊光,ティルフィン合同会社]
前のページへ 1|2|3       

実機から起動してデバイストークンの登録処理を確認

 Xcodeのプロジェクト設定で、App IDを先に登録したものに、Provisioning Profileを先ほどインストールしたものに、それぞれ設定します。これで準備完了です。実機をつないでアプリを起動します。認証に成功すると、プッシュ通知の登録を確認するアラートダイアログが表示されます(図6)。

図6 プッシュ通知ダイアログ

 許可した後に、管理ポータルのモバイル サービスの[データ]を開きます。deviceテーブルを開き、[参照]をクリックすると、トークンが登録されていることが分かります(図7)。

図7 deviceテーブルの参照

スケジューラを使ってプッシュ配信を実行

 スケジューラは、バックグラウンドタスクを任意のタイミングで実行できる機能です。管理ポータルのモバイル サービスを開いて、[スケジューラ]を開きます(表示されていない場合は、「Step 3 − Windows Azure プレビュー機能のサインアップ / Windows Azure サブスクリプション申し込み Step by Step」からプレビュー機能を有効にしてください)。

 画面下部の[+作成]ボタンはクリックします。「新しいジョブの作成」ダイアログで[ジョブ名]に「notify」と入力し、[スケジュール]に「要求時」を選択して、右下のチェックアイコンをクリックするとジョブ(タスク)が作成されます(図8)。

図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)。

図9 プッシュ通知受信

補足 APNsフィードバック

アプリが削除されるなどして、通知不要になった端末のデバイストークンを削除する仕組みが、APNsのフィードバックサービスです。図4のフィードバック スクリプトは、このサービスを呼び出し、データを削除する定義ができます。


 APNsと接続するサーバは非HTTPの実装を求められるため、扱いにくく感じるところです。そういったものがラップされて提供されているため、最小限の実装でプッシュ通知機能を持つアプリが作れるのは魅力ですね。

BaaSの神髄

 今回の後編では、Windows Azureモバイル サービスの認証およびプッシュ通知の、iOSアプリからの利用方法を紹介しました。セットアップの手順が多かったですが、実際に個々のアプリがモバイル サービスを利用するためのスクリプトやiOSアプリのコーディング自体は非常に少なかったと思います。

 BaaSの神髄は、まさにそこで、サービス側ではなくアプリ側に注力できることにあります。本記事がアプリ開発者の皆さまにとって、少しでもBaaSを使うきっかけになれば幸いです。

著者プロフィール

高橋 俊光(たかはし としみつ)

ティルフィン合同会社 代表。Twitter(@tilfin

メーカー企業でパッケージソフト開発などに携わった後、ティルフィン合同会社を設立しフリーエンジニアとして、最近はスマートデバイスアプリやサーバサイドをメインに開発に従事。iOSアプリもリリースしている


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。