連載
» 2013年10月29日 18時00分 公開

無料評価版BaaSでクラウドのデータストアを操作してみたiOSアプリ開発は、BaaSでここまではかどるぞ(前編)(2/2 ページ)

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

モバイル サービスとクライアントiOSアプリのセットアップ

 一覧上で「準備完了」になったら、サービス名をクリックすると詳細画面に移り、クイックスタート画面が出ているはずです。[プラットフォームの選択]で「iOS」をクリックします。[作業を開始する]リストの「新しい iOS アプリを作成する」をクリックすると、セットアップ手順が展開されます。

 この一連のステップを踏むことで簡単にモバイル サービスを利用したToDoアプリを試すことができます。

 以降、Xcodeなどの開発環境は、すでにインストール済みとして解説します。まだの方は、記事「iOSアプリ開発初心者に捧ぐ開発環境Xcodeの概要とインストール」などを参考にしてください。

 手順2の[テーブルを作成する]で、[TodoItemテーブルを作成する]をクリックします。ここでSQLデータベースにテーブルが作成され、それをモバイル サービス上からスキーマを定義せず(フィールドが自動的に割り当てられます)に利用できるようになります。

 手順3の[アプリケーションをダウンロードして実行する]でダウンロードボタンをクリックするとXcodeプロジェクトをアーカイブしたzipファイルがダウンロードされます。こちらを解凍してXcodeで開いてみましょう。

Xcodeからクイックスタートアプリを試す

 ここからは(Mac)OS X上での作業になります。ダウンロードしたプロジェクトを開いて中身を確認してみましょう。

プロジェクト構成とフレームワーク

図4 Xcodeプロジェクト構成

 シングルビューのシンプルなToDoアプリです。TodoItemテーブルに対して、追加,取得,更新といったCRUD処理を要求します。

 構成するソースファイルが少ないのは、Frameworksにある「WindowsAzureMobileServices.framework」というSDKにほとんどの処理を委譲できるからです。こちらのSDKはオープンソースで、GitHub上で他のクライアントプラットフォームも含めて公開されています

アプリからモバイル サービスのデータストアにアクセスする

 このままアプリを実行できるので、試しに起動してみましょう。

図5 アプリの実行

 図5のように、いくつかToDoをアプリから登録してみます。続いてWindows Azure管理ポータルのモバイル サービス画面で[データ]をクリックして、TodoItemを選択します。

図6 todoitemテーブルの参照

 図6のようにテーブルにデータが追加されたことを確認できます。さらに上部の[列]をクリックします。

図7 todoitemテーブルの列

 図7の通りテーブルの列(カラム)が定義されていることが分かります。これらは自動的に定義されたもので、アプリ側からKey-Valueデータを追加した際に、各フィールドの値に応じてデータ型が決定されます。

クライアントの実装について

 モバイル サービスへの接続部分を担うQSTodoServiceクラスを見ていきましょう。

 QSTodoService.mのinitメソッドの実装を見てみると、「MSClient」というサービスクライアントのインスタンスをclientWithApplicationURLString:applicationKey:メソッドで生成しています。

 urlString引数には、モバイル サービス作成時に指定したサブドメインを含めたモバイルサービスのURL(サービスのエンドポイント)を指定しています。さらに、applicationKey引数に「アクセス キー」がセットされています。これが文字通り該当モバイル サービスに接続するための鍵になります。

補足 キーの管理

アクセス キーは、管理ポータルのモバイル サービス画面において株の[キーの管理]から取得できます。漏れないように努める必要がありますが、クライアントからのアクセスに使用するため厳密には難しく、認証と併せてアクセス制限すると良いでしょう(認証については次回後編で)。


 さらに生成したクライアントのインスタンスに対してtableWithName:メソッドで、先に作成したTodoItemテーブルを操作するためのモデルMSTableクラスのインスタンスを生成しています。

 TodoItemテーブルのエンティティは、NSDictionaryのKey-Valueデータのまま処理しており、先に管理ポータルで確認したように、textフィールドにToDoの内容を保存し、completeが完了したかどうかを示すフラグとなる構成です。読み取り、追加、更新の各処理は次の通りです。

  • readWithPredicate:completion:メソッドはNSPredicateで検索条件を指定してテーブルからデータを取得するメソッド
  • insert:completion:メソッドはデータを追加メソッド。Blocksハンドラで返ってきたresultデータにはidフィールドにレコードIDが付加されているので、こちらを使う
  • update:completion:メソッドはデータの更新メソッド。このitemにはidフィールドが付加されたものを指定

 他にもSDKの各クラスの仕様については、フレームワークのドキュメントで確認できます。

次回は、ソーシャルサービスを使った認証の仕組みとプッシュ通知

 今回の前編では、Windows Azureモバイル サービスのセットアップからiOSアプリからのデータストアの利用までを紹介してきました。特にコーディングせずに管理ポータルの操作のみでアプリの動作確認に至り、さらにコード量も非常に少ないものであることがお分かりいただけたと思います。

 次回の後編では、ソーシャルサービスを使った認証の仕組みとプッシュ通知を紹介していきます。

著者プロフィール

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

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

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


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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