一覧上で「準備完了」になったら、サービス名をクリックすると詳細画面に移り、クイックスタート画面が出ているはずです。[プラットフォームの選択]で「iOS」をクリックします。[作業を開始する]リストの「新しい iOS アプリを作成する」をクリックすると、セットアップ手順が展開されます。
この一連のステップを踏むことで簡単にモバイル サービスを利用したToDoアプリを試すことができます。
以降、Xcodeなどの開発環境は、すでにインストール済みとして解説します。まだの方は、記事「iOSアプリ開発初心者に捧ぐ開発環境Xcodeの概要とインストール」などを参考にしてください。
手順2の[テーブルを作成する]で、[TodoItemテーブルを作成する]をクリックします。ここでSQLデータベースにテーブルが作成され、それをモバイル サービス上からスキーマを定義せず(フィールドが自動的に割り当てられます)に利用できるようになります。
手順3の[アプリケーションをダウンロードして実行する]でダウンロードボタンをクリックするとXcodeプロジェクトをアーカイブしたzipファイルがダウンロードされます。こちらを解凍してXcodeで開いてみましょう。
ここからは(Mac)OS X上での作業になります。ダウンロードしたプロジェクトを開いて中身を確認してみましょう。
シングルビューのシンプルなToDoアプリです。TodoItemテーブルに対して、追加,取得,更新といったCRUD処理を要求します。
構成するソースファイルが少ないのは、Frameworksにある「WindowsAzureMobileServices.framework」というSDKにほとんどの処理を委譲できるからです。こちらのSDKはオープンソースで、GitHub上で他のクライアントプラットフォームも含めて公開されています。
このままアプリを実行できるので、試しに起動してみましょう。
図5のように、いくつかToDoをアプリから登録してみます。続いてWindows Azure管理ポータルのモバイル サービス画面で[データ]をクリックして、TodoItemを選択します。
図6のようにテーブルにデータが追加されたことを確認できます。さらに上部の[列]をクリックします。
図7の通りテーブルの列(カラム)が定義されていることが分かります。これらは自動的に定義されたもので、アプリ側からKey-Valueデータを追加した際に、各フィールドの値に応じてデータ型が決定されます。
モバイル サービスへの接続部分を担うQSTodoServiceクラスを見ていきましょう。
QSTodoService.mのinitメソッドの実装を見てみると、「MSClient」というサービスクライアントのインスタンスをclientWithApplicationURLString:applicationKey:メソッドで生成しています。
urlString引数には、モバイル サービス作成時に指定したサブドメインを含めたモバイルサービスのURL(サービスのエンドポイント)を指定しています。さらに、applicationKey引数に「アクセス キー」がセットされています。これが文字通り該当モバイル サービスに接続するための鍵になります。
アクセス キーは、管理ポータルのモバイル サービス画面において株の[キーの管理]から取得できます。漏れないように努める必要がありますが、クライアントからのアクセスに使用するため厳密には難しく、認証と併せてアクセス制限すると良いでしょう(認証については次回後編で)。
さらに生成したクライアントのインスタンスに対してtableWithName:メソッドで、先に作成したTodoItemテーブルを操作するためのモデルMSTableクラスのインスタンスを生成しています。
TodoItemテーブルのエンティティは、NSDictionaryのKey-Valueデータのまま処理しており、先に管理ポータルで確認したように、textフィールドにToDoの内容を保存し、completeが完了したかどうかを示すフラグとなる構成です。読み取り、追加、更新の各処理は次の通りです。
他にもSDKの各クラスの仕様については、フレームワークのドキュメントで確認できます。
今回の前編では、Windows Azureモバイル サービスのセットアップからiOSアプリからのデータストアの利用までを紹介してきました。特にコーディングせずに管理ポータルの操作のみでアプリの動作確認に至り、さらにコード量も非常に少ないものであることがお分かりいただけたと思います。
次回の後編では、ソーシャルサービスを使った認証の仕組みとプッシュ通知を紹介していきます。
高橋 俊光(たかはし としみつ)
ティルフィン合同会社 代表。Twitter(@tilfin)
メーカー企業でパッケージソフト開発などに携わった後、ティルフィン合同会社を設立しフリーエンジニアとして、最近はスマートデバイスアプリやサーバサイドをメインに開発に従事。iOSアプリもリリースしている
Copyright © ITmedia, Inc. All Rights Reserved.