Parse.comを使ったサーバサイド実装不要のフロントエンド開発[前編]

ParseはBaaS(Backend as a Service)と呼ばれる、アプリに共通して必要となるバックエンドの機能を提供するクラウドサービスのひとつです。BaaSを利用することで、データの同期やユーザ管理、プッシュ配信、ソーシャル連携など、アプリごとに独自の開発を行うことなく効率よく開発を進めることができます。

 Parseでは、iOS、Android、JavaScript、.NET、OS Xと様々なプラットフォーム向けのSDKが提供されています。今回はこのParseのJavaScript SDKを使ってみます。

新規アプリケーションの作成

まずは、Parseに会員登録をし、新規アプリケーションを登録します。GitHubアカウントもしくはFacebookアカウントでもログインすることができます。新規アプリケーションの作成が完了すると、Application IDやその他SDKのKeyが表示されますがここで表示される情報は後でも設定画面から確認することができます。

DataBrowserはアプリのDBの役割となる場所で、ここでParse上のデータを確認します。ClassはRDBのテーブルにあたります。Classやデータ操作はすべてJavaScript SDKかこのページで行うため、CREATE TABLEやINSERT INTOなどSQLは一切必要ありません。

Parse JavaScript SDK

 ParseのJavaScript SDKを使うことにより、WebアプリケーションとParse間でデータの同期を行うことができます。JavaScript SDKはBackbone.jsをラッピングしているので、Backboneのシンタックスをそのまま使ってSPA開発を行うことができます。そのため、Backboneで開発したアプリケーションがすでにある場合は、Backbone.ModelとBackbone.Collectionの数か所を置き換えるだけでParseに対応させることができます。移行方法はConverting Backbone Appsをご覧ください。また、Parseを使ったTodoアプリの例がチュートリアルに公開されています。
 本記事では、主にBackboneとの共通部分についてご紹介します。

SDKの初期化

HTMLではParse SDKとjQueryを読み込みます。Backbone.jsで必要だったUnderscore.jsはParse SDKに含まれています。

<script src="js/lib/jquery-2.1.0.min.js"></script><!-- jQuery --><script src="js/lib/parse-1.2.16.js"></script><!-- Parse SDK --><script src="js/app.js"></script><!-- Main Script -->


管理画面からApplication IDとJavascript Keyを取得し、SDKを初期化します。

1 Parse.initialize(“APPLICATION_ID”, “JAVASCRIPT_KEY”);

Backbone.jsとの共通部分
Backboneとの共通部分は以下のオブジェクトです。各オブジェクトの役割や宣言方法はBackboneと同じですが、Parseのカスタマイズが入っており、ModelがObjectという名前になっていたり、メソッドが追加されたりしています。ここでは、Backboneと異なる部分のみ解説します。

Parse.Object: Backbone.Model
Parse.Collection: Backbone.Collection
Parse.View: Backbone.View
Parse.Router: Backbone.Router
Parse.History: Backbone.History
parse006

■Parse.Object
Parse.Objectでは、ModelとParseのClassの紐づけを行います。classNameにはParseのClass名を設定します。Parse.Objectの場合、このclassNameがurlRootの代わりになりますので、urlRootの設定は不要です。Parse側にClassが存在しない場合は、Objectの初期save時に新たに作成してくれるので、管理画面側で作成する必要はありません。

1 var TodoModel = Parse.Object.extend({
2 className: “MyTodo”
3 });

各Modelは独自に追加するプロパティの他に、別途以Parseによって自動的に更新される以下のプロパティを保持します。

objectId:一意のID
createdAt:オブジェクトの作成日時
updatedAt:オブジェクトの更新日時

Parse SDKの機能

 主に以下がParse独自のオブジェクトとして提供されています。その他の機能についてはJS API リファレンスをご覧ください。

Parse.Query: Parseからのデータ取得を行うSQLの役割を果たすオブジェクト
Parse.Promise: Defferedの仕組み
Parse.File: 画像をはじめとしたファイルに特化したModel
Parse.User: アカウント管理に特化したModel
Parse.GeoPoint: 位置情報に特化したModel

本記事では、データの取得を行うParse.Queryをご紹介します。データの更新や削除、新規作成についてはBackbone.jsと同じシンタックスです。

■データの取得
データの取得にはParse.Queryを使います。Queryの第1引数にはObject(Model)を指定してください。equalToやlimitといったメソッドを使ってQueryに対して検索条件を追加していきます。他オブジェクトに対しての関連を含む場合は、オブジェクトを条件として指定できます。

1 var query = new Parse.Query(MyTodo);
2 // 一致条件の指定
3 query.equalTo(“done”, false);
4 // 関連の指定(例:任意のcategoryオブジェクトを含む)
5 query.equalTo(“category”, category);
6 // 件数指定
7 query.limit(10);
8 // 検索の実行
9 query.find({
10 success: function(todos) {
11 // 取得成功
12 // Collectionの作成など…
13 var todoCollecliton = new TodoCollection(todos);
14 },
15 error: function(object, error) {
16 // 取得失敗
17 }
18 });

CollectionにQueryを直接紐づけることもできます。

1 var TodoCollection = Parse.Collection.extend({
2 model: TodoModel,
3 query: (new Parse.Query(TodoObject)).equalTo(“done”, false)
4 });
5
6 var todoCollection = new TodoCollection();
7 todoCollection.fetch();

Related Post

Kii Cloud JavaScript SDKを使ったサーバサイド実装不要のフロントエンド開発[準備編]Kii Cloud JavaScript SDKを使ったサーバサイド実装不要のフロントエンド開発[準備編]

Kii Cloudは、MBaaSと呼ばれるクラウドサービスのひとつで、モバイルアプリの開発で共通して必要となるサーバ側の機能が提供されています。BaaSを使ったフロントエンド開発は、Parse.comを使ったサーバサイド実装不要のフロントエンド開発[前編]でもご紹介しました。 MBaaS – Kii Cloud キークラウド Kii CloudもParseと同じく、ユーザー管理やデータ管理など、アプリケーション開発に必要な一連の機能が用意されており、SDKやREST

WebフォントをSVGからOTFに切り替えた際のハマりポイントあれこれWebフォントをSVGからOTFに切り替えた際のハマりポイントあれこれ

先日、1年ほど前に公開したスマートフォン向け秀英体見本帳を更新しました!スマートフォン向け秀英体見本帳は、モバイルブラウザを対象としたWebフォントを使った縦組み表現に挑戦したコンテンツです。スマートフォン向け秀英体見本帳はこちらから、推奨動作環境等はこちらをご覧ください。 更新、といっても、見た目はほとんど変わらないのですが、Webフォントのフォント形式をSVGから他の形式に切り替えました。SVGフォントの場合は不具合なく表示されていたものが、WOFFやTTF、OTFに切り替えた場合に表示の不具合が出たりして意外に大変でした。モバイルブラウザでのWebフォント表現のノウハウが少なく、問題が不明で未解決のものもありますが、今回ハマったポイントをご紹介します。 検証端末 今回の検証に用いた端末の端末名/OSバージョン/ブラウザは以下です。 AQUOS PHONE SERIE ISW16SH

Webフォントを使用したスマートフォン向け秀英体見本帳を公開Webフォントを使用したスマートフォン向け秀英体見本帳を公開

秀英体とは、大日本印刷オリジナルの書体です。秋からMORISAWA PASSPORTで秀英角ゴシック、秀英丸ゴシックが提供開始されるにあたり、スマートフォン向け見本帳を作成しました。以前より、Flash版の見本帳を公開していましたが、今回はWebフォントサービスのRealTypeさまにご協力いただき、秀英明朝/秀英初号明朝/秀英横太明朝/秀英丸ゴ/秀英角ゴ金/秀英角ゴ銀の6 書体を試験的にWebフォント化し、HTML版を作成しました。推奨閲覧環境はiOS5以上、Android 3.2以上となっております。本コンテンツではWebフォント機能を使用しているため、環境によってはフォントが適用されない場合がありますので、あらかじめご了承ください。 Flash版はこちら>Flash見本帳HTML版はこちら>スマートフォン向け秀英体見本帳(※2013/3/29現在、リニューアルに伴い公開停止中です。ご迷惑をおかけいたしますが、よろしくお願い致します。)  チャレンジしたこと Webフォントでの縦書き表現 CSS3のwriting-modeプロパティを使用すると、テキストを縦書き表示することができます。しかし、writing-modeを指定したテキストにWebフォントを指定すると、かなだけグリフが寝てしまう問題(参照:縦書きにWebフォントを使いたい!けど使えるのか検証してみた)がありました。そのため、HTML版秀英体見本帳内の縦組み部分ではSVGのtext要素、JavaScriptを使った縦組みライブラリのNehanを使用して縦組みを表現しています。