MBaaS徹底入門――Kii Cloudでスマホアプリ開発

第2回MBaaSとは

MBaaS(⁠⁠エムバース」と読みます)はMobile Backend as a Serviceの略で、去年の中頃から米国で使われるようになった用語です。一般的にBaaSと呼ばれているサービスは、IaaS(Infrastructure as a Service)やPaaS(Platform as a Service)と比較すると、プログラミングや構築、運用の手間がかからないものを指す場合が多く、MBaaSはモバイル版BaaSですので、iOS, Android, JavaScriptなどのモバイルアプリの開発環境でそのまま使えるSDKが提供されています。いろいろなサーバ機能がすべて、SDKのAPI経由で利用できるので、アプリを開発するだけで、リリースすることができます。ユーザ管理、データ管理、プッシュなどの機能がひと通り揃っていて、そのサービスを使うだけで大体のことができてしまう汎用的なMBaaSは、米国のParse社、Kinvey社、StackMob社、日本のKii株式会社などが提供しています。

Key-Valueでデータ管理

一般的にMBaaSでは、データを管理するのに、DBのテーブルの種類と各々のテーブルのスキーマの定義から始めるのではなく、データの器を作り、そこに任意のKey-ValueからなるJSONオブジェクトを放り込んでいきます。

例:買物リスト内の2つのオブジェクト
{”ToBuy":[
{”What”:”自転車のペダル”, ”ForWho“:”彼", ”Budget”:10000},
{”What”:”サンダル”, “ForWho”:“自分", ”Budget”:5000},
]}

アプリ開発の途上やバージョンアップ時に、新たなKey-Valueを増やしたくなっても気にせずにどんどん増やしていきます。データの構造をどんどん変えても、きちんとクエリできるようにMBaaS側で対処してくれます。開発者自らDBを設計して、DBサーバを構築して、スキーマが変わるとマイグレーションを行って、というような手間と比較すると、とても簡単にデータ管理ができます。写真や動画などのサイズの大きいデータもJSONオブジェクトと紐付けた形でMBaaSに格納しておけば、オブジェクトの任意のKey-Valueを使って検索して写真や動画を取り出してアプリで表示したりすることができます。ユーザの管理でも、サインアップから始まって、ログイン処理、グループの作成、SNSのIDでのログイン、など自分で構築するとなるとそれなりに煩わしい機能もひと通り揃っているので、アプリ開発が楽になります。

MBaaSの効用

米国でMBaaSを利用するアプリ開発者が増えてきた理由のひとつに、アプリ開発者がMVP(Minimum Viable Product)を意識し始めたことがあります。MBaaSを利用すれば、最初のアイデアからアプリの最初のリリースに持ち込むまでの手間や時間を最短にできるだけでなく、その後の繰り返しのサイクルも短くすることができ、且つアプリの仕様変更に伴うデータ構造の変更も自由ですので、毎回のアプリのリリースに際してアプリのUser Experienceの向上に持てる力を存分に注ぐことができます。

MBaaSの効用をまとめてみると、次のようになります。

サーバ側の設計構築が要らない

MBaaSが提供するSDKのAPIを通してユーザ管理ができ、JSONオブジェクトの作成、検索などもAPIを呼ぶだけなので、DB設計、APIの設計、サーバ構築、冗長性の担保などサーバ側の労力が一切不要です。

サーバ側の運用が要らない

サーバを監視していてアラートが上がると対応する必要もありません。新しいアプリのリリースがユーザにうけてトラフィックが急増した、なんてときもサーバのスケールの心配をする必要はありません。MBaaS側で対応します。

お金がかからない

まずはアプリを出してみよう、こんな機能を試してみよう、というときでも、自費で最小構成のサーバを組んで、のような必要はありません。MBaaSは使っただけ払う仕組みがほどんどですし、MBaaSが提供する無償枠内で相当数のユーザが収容できますので、大抵の場合はアプリとして成功するかどうか判断できるところまではサーバ側の経費を気にする必要はありません。

MBaaSを使って実現できること

ここまでアプリをサーバ連携させる必要がある前提で話をしてきましたが、世の中にはサーバなしでアプリ単体で動作できるものもたくさんあり、どうしてサーバが必要なの? と疑問を持たれる方もいらっしゃると思いますので、アプリがMBaaSを利用した場合の利点となりそうなことを見ていきます。

ユーザ登録

MBaaSを利用するにはまずはユーザにサインアップしてもらうことから始まることが多いです。サインアップしてもらうことによってユーザの利便性も向上しますし、アプリ開発者にとっても広告以外の収益化を図る上で、なんらかの利便性を提示してユーザ登録にチャレンジしてみたいものです。MBaaSによっては単にサインアップやログインをサポートしているだけでなく、Facebook等のIDでのログインや、電話番号認証、メールアドレス認証を提供しているものもあります。

端末買替時の引継ぎ

せっかくアプリを使い始めてくれたユーザが離れていくきっかけのひとつに端末の機種変があります。ユーザが行った各種設定、なんらかの履歴データ、収集データなどアプリに愛着を持つ理由となるデータが引き継がれないと、これを機会にアプリを使わなくなったり他の似たアプリに乗り換えられてしまう危険性があります。MBaaSを利用してユーザのログイン一発でアプリやユーザのデータを復元したいものです。

マルチデバイス

アプリのデータをMBaaSに格納しておくことにより、同じユーザが所有する別の端末、例えばタブレットでも同じデータが見えたり操作したりできるようになります。Kindleでマルチデバイスの利便性を満喫されている方もいらっしゃると思いますが、スマートフォンとタブレットの両方をサポートしているアプリには必須の機能だと思います。

コミュニケーション

ユーザ間でメッセージや写真をやり取りするなどのコミュニケーションが可能となります。MBaaSによってはPushの機能も提供されていますので、LINEのようにユーザ間でリアルタイムにメッセージや写真のやり取りができるようになります。

データ共有

あるユーザグループ内、あるいはアプリを使っている全ユーザでデータを共有することができます。たとえばゲームのスコア、ブックマーク、写真、掲示板、などアプリで管理しているさまざまなデータが共有の対象になり得ます。

この他、アプリが格納するユーザのデータ、たとえば、ゲームのスコア、いいねの数、写真の数などを統計処理することにより、ユーザがどれくらい使っているか、新しい機能がどれくらい使われるようになったか、などを逐次把握することができます。

アプリのページ遷移、どのボタンが押されたか、どのオプションが選択されたか、などのデータをMBaaSに送出し分析することにより、ユーザの挙動を全体的に把握することができます。

また、MBaaS上のデータを読み取ってアプリが自動的に挙動を変えるように作ることによって、アプリをリリースし直さなくても、アプリのユーザインターフェースを変えたりすることもできます。これは前回お話ししたA/Bテストにつながりますが、詳細は次回以降でお話しします。

おすすめ記事

記事・ニュース一覧