MBaaS (Mobile Backend as a Service) が爆発的に成長しているのは,モバイルアプリケーション開発者たちがかなりの割合で 安易な解決策 を望んでいることの証明だ。すぐれたアプリを設計するには,それもひとつの方法に違いない。しかしMongoDBやCouch,Cassandra,MySQLなど複数の開発言語を積み上げて実用的で発展性に富んだバックエンドを構築するという,人の羨むようなスキルを習得するのは,それとはまったく別の話だ。
MBaaS を提供する新興企業を取り上げる シリーズ記事の第3弾 として,今回の記事では Parse という企業を動かしているもの について検討する。2011年の始めに Y Combinator の起業支援を受けて設立された Parse は,数を増し続ける競合企業たちと同じように,効率的なモバイルバックエンド構築に必要なモバイルアプリ開発者の時間と労力の削減を目的とする企業だ。
MBaaS を詳細に調べていくうちに,我々には彼らの FAQ や機能,あるいはサービスのメリットなどといったものが,どれも同じように見え始めていた。違うのはそれらの属性を実装する方法だ。個々のMBaaS プロバイダが持つユニークなコーディングスタイル,サーバ,プログラミングといったものが,最終的にまったく違う結果を生み出しているのだ。
Kii Cloud との 以前のインタビュー を例にしてみよう。同社と Parse のサービスには,UIの外観,ポイントやクリック操作のシンプルさなどの点で似た部分が少なくない。どちらも開発者に対して,すべての主要 モバイルフォンプラットフォーム 用アプリは当然のこと,非モバイル指向のプラットフォーム用アプリに対しても,MBaaS を簡単にプラグインするための機能を提供する。
まず大きく違うのが普及の範囲だ。Kii Cloud は戦略的パートナを通じて,アジアのモバイルユーザの中にいる数百万という潜在的ユーザに対してネットワークを提供する。Parse には Kii の販売チャネルに相当するもの はないようだが,同社のパートナたちが興味深い 付加機能 を数多く提供している。
どちらの MBaaS プロバイダも,それぞれ独自の変数を持っているようだ。例えば Parse では,検索を行うための 同社のメソッド に準拠したデータモデルが必要になる: "...文字列の正確なプレフィックスに合致しないストリング照会クエリでは,インデックスの使用はできません。この制限によって,このようなクエリは,アプリケーションの拡大にともなってタイムアウトエラーを発生する可能性が高くなります。"
Parse は独立した初心者から巨大企業まで,すべての モバイルソフトウェア開発者 を対象とした3つの価格スキーマの下で,サービスを提供している。俗に言う "靴ひも" を買う程度の予算しかないのであれば,フリープランを利用する方法もある。このプランには1ヶ月あたり100万のリクエストとプッシュ,1ギガバイトのクラウドストレージが含まれている。
プッシュ技術に関して言えば,Parse では 数多くのオプション 機能を用意している。プッシュ通知の構成,スケジュール,分割,対象の設定や,詳細な分析を行うことが可能だ。
問題点を見つける作業は コミュニティ の役割だ。Hacker News の jawngee氏によれば,
サブクラスがほとんど役に立たないというのは,どうかと思いますね。PFObject をサブクラス化することはできるのですが,PFQuery の機能のほとんどが利用できないのです。PFUser もサブクラス化したいものの代表ですが,あちらこちら手を入れないとまともに動きません。
同じく bklimt氏は,
PFObject のサブクラス化と包括的なオフラインソリューションは,どちらも機能リストの中で優先度が非常に高いもののひとつです。その2つを実現するために,時間を掛けて取り組んでいるところです。
Parse ユーザの Huzell氏は,
クエリで取得したすべてのオブジェクトを保持しておくには,どうすればよいのでしょう?
という質問で,Parse のグル を問い詰めることに成功した。
多数の結果を取得する操作はサポートされていません – Fosco Marotto。
コミュニティ全体でソリューションを見出せることも少なくない。少なくとも iOSに関しては,Alex Fish氏がこの問題の解決に成功している。