読者です 読者をやめる 読者になる 読者になる

It’s now or never

IT系の技術ブログです。気になったこと、勉強したことを備忘録的にまとめて行きます。

parseをObjective-Cで使用する ①

モバイルアプリ開発者にとってサーバサイドの実装がネックに感じている人は少なくないと思います。(私もその一人です。)

そのような需要をもとにBaaS ( Backend as a Service)といったサービスが普及しているようです。

今回は、その中の一つ「Parse」の使い方をまとめていきたいと思います。


1.parseにユーザーを登録する

まずは、parseで上でアカウントを作成します。

https://parse.com

2.プロジェクトにparseを組み込む

parseを使用するには、アプリへparse Frameworkを組み込む必要があります。

下記にて詳細手順が掲載されていますのでここでは割愛します。 https://parse.com/apps/quickstart

3.parseサーバー側で取得対象のデータを作成する

parseのDashboardページからData Browserタブを選択する。 左メニューの+New Classからテスト用のクラスを作成する。

f:id:inon29:20131215152414p:plain

今回は、GameScoreというクラスに3行のデータを挿入しておきます。

4.XCode上のアプリからデータを呼び出す。

特定の1行呼び出し
PFQuery *query = [PFQuery queryWithClassName:@"GameScore"];
 [query getObjectInBackgroundWithId:@"yCqtu2oj5k" block:^(PFObject *gameScore, NSError *error) {
    // Do something with the returned PFObject in the gameScore variable.
    NSLog(@"%@", gameScore);
}];

(取得結果)

2013-12-15 14:50:18.884 ParseSample[61281:a0b] <GameScore:yCqtu2oj5k:(null)> {
    playerName = a;
    score = 3000;
}

PlayerName「a」のデータが無事とれました。

条件で取得

下記のように特定の列に対して、条件文を設定することも可能です。

PFQuery *query = [PFQuery queryWithClassName:@"GameScore"];
    [query whereKey:@"playerName" equalTo:@"c"];
    [query getFirstObjectInBackgroundWithBlock:^(PFObject *gameScore, NSError *error) {
        
     NSLog(@"%@", gameScore);
}];

ParseのRestAPIは、https経由で直接実行することも可能です。

CurlAPIを実行
curl -X GET \
>   -H "X-Parse-Application-Id: [your application id]" \
>   -H "X-Parse-REST-API-Key: [your REST-API-Key]" \
>   -H "Content-Type: application/json" \
>   https://api.parse.com/1/classes/GameScore

(取得結果)

{"results":[{"playerName":"a","score":3000,"createdAt":"2013-12-15T05:42:28.860Z","updatedAt":"2013-12-15T05:42:39.079Z","objectId":"yCqtu2oj5k"},{"playerName":"b","score":5000,"createdAt":"2013-12-15T05:42:50.404Z","updatedAt":"2013-12-15T05:42:59.736Z","objectId":"P5CPb76n2K"},{"playerName":"c","score":6000,"createdAt":"2013-12-15T05:43:24.343Z","updatedAt":"2013-12-15T05:43:34.031Z","objectId":"5rAmVJlx8Q"}]}

jsonで全件データが取得出来ました。

その他

ホストの前に[application_id]:[rest-api-key=キー]のような記述でも呼び出しできるようですが、上手く行きませんでした。

https://[your application id]:REST-API-Key=[your REST-API-Key]@api.parse.com/1/classes/GameScore

感想

サーバーサイドの導入準備が、ほとんどなく使えるのは、素晴らしいです。 APIも直感的に理解できる為、すぐに使い始められます。 アプリエンジニアにとっては、是非活用したいサービスですね。

Parseの料金プランは、月間で100万回以内のAPI呼び出し、1GB以内のファイルストレージなどであれば無料、 1500万回以内で10GB以内のファイルストレージであれば月間199ドルとなっています。

実際使用してみないと感覚がわからないですが、 100万APIであればサーバーアクセスが中心ではないアプリであれば十分な気がします!

今回は、DBのデータ取得を中心に記載しましたが、 サーバー再度でJavaScriptを実行できる機能Cloud Codeもあるようなので、そちらも是非使用してみたいと思います。

参考

http://lxyuma.hatenablog.com/entry/2013/12/13/230524