2012年3月27日火曜日

BaaSサービスのParseを使ってみた


本日、ParseというBaaSサービスプロバイダーがベータを終え、正式サービスに移行したというニュースがTLを賑わしていました。

モバイルアプリのサーバサイド/バックエンドを肩代わりする人気のParseがベータを卒業


個人的にBaaSの事が少し前から気になっており、早速どんなものか試しに使ってみました。
BaaSってなに?
BaaSとは”Backend as a Service”の略称で、モバイルアプリと連携するクラウドのバックエンドに求められる機能、例えばプッシュ通信、ソーシャル連携、ロケーション、写真のクラウドへのストア、など本来サーバー側の実装が必要だった機能群を、アプリ側からAPIを呼び出すだけで完結出来てしまう、というサービスです。

少し前にTitanium Mobileを提供するAppceleratorがBaaSプロバイダのCocoafishを買収した事も話題になっていました。
Appcelerator buys mobile backend provider Cocoafish

BaaSプロバイダには、他にも「Kinvey」「StackMob」「CloudMine」などのプレーヤーが名を連ねており、今年はBaaSプロバイダの戦国時代になるだろうと予想してます。

Kinveyが作成したBaaSエコシステムの相関図
Parseの料金プラン
気になるお値段ですが、本日(2012年3月27日)発表された時点では、Parseの正式サービスの料金体系は以下の3プランになっています。

Basic: $0
月間  100万APIリクエスト/100万リモートプッシュ/1GBストレージまで

Pro: $199
月間  1500万APIリクエスト/500万リモートプッシュ/10GBストレージまで

Enterprise: 
個別見積もり要相談

無課金のBasicはストレージが1GBなので、画像系のサービスにはちょっと無理ですがAPIコールが100万回はかなり良心的ではないでしょうか。
Parseを使ってみた
さて、Parseの使用レポートですが、導入はめちゃくちゃ簡単で、ものの5分くらいでMacのiPhoneシミュレーターからクラウドにデータを保存する所まで出来てしまいました。

以下に手順をご紹介します。
ユーザー登録
まずhttp://www.parse.comにアクセスし、ユーザー登録を行います。
ユーザー登録に必要なのは
・メールアドレス
・パスワード
・アプリ名
の3つだけです。
クレジットカード登録が必要ないのは、心理的に敷居をかなり低くしてくれます。

サンプルプロジェクトのダウンロード
次にParseに接続するアプリのプロジェクトの雛形をダウンロードします。
iOSかAndroidかを選択し、生成されたリンクからZipをダウンロードします。私の場合はiOSを選択し、XCodeプロジェクトをダウンロードします。


ダウンロードしたZipを解凍すると、ParseStarterProjectというXCodeプロジェクトが入っています。

クライアントキーを記述する
雛形をダウンロードしたページにはその後の手順も記載されています。
手順に従うと、次にXCodeでParseStarterProjectAppDelegate.mのapplication:didFinishLaunchingWithOptions:の最初の行に以下のコードを貼れと書いてあります。


貼りました。

クラウドにデータを保存するコードを書く
手順に従えば、次にクラウドにデータを保存する為の、以下のサンプルコードをParseStarterProjectViewController.mのviewDidLoadに貼り付けろと書いてあります。


貼りました。
#import <Parse/Parse.h>を忘れずにインポートします。

実行する
以上で、プロジェクトを実行します。
実行すると、シミュレーターにこんな画面が表示されます。


ほとんど空っぽのプロジェクトなので、成功したよ的な画面だけです。
結果の確認
Web側の手順では、クラウドへのデータ保存の確認に、Testボタンを押せと指示が書いてあります。

Testボタンを押してみると、サンプルコードの通りfooでbarのTestObjectが保存された事が判りました。



ちなみにアプリ側の実装を間違えて、クラウドに保存できてないと、以下の様な表示になります。

クラウドのダッシュボード
ParseのWebサイトにはダッシュボードがあり、アプリ毎のAPI使用状況が確認出来ます。最大24時間の遅延があるようで、現在は使用状況がアップデートされていません。



もう一つData Browserという機能があり、アプリから保存したデータをブラウズする事が出来ます。さきほど保存したTestObjectとテキトーに追加したAndoObjectが保存されています。もちろん編集も可能です。




まだこれだけの事しか試していませんが、たったこれだけのステップでクラウドにデータが保存出来るだけでも、自分のようにモバイルばかりやっているエンジニアには、かなり嬉しいサービスです。

今後他のAPIも随時試していくので、また弊ブログでご紹介していきたいと思います。