アプリを開発する際にmBaaSをどう組み合わせれば良いのか、mBaaSデザインパターンとして考えてみたいと思います。今回は選択式のクイズアプリを考えてみたいと思います。
要件としては次のようになります。
- クイズの問題、選択肢、答えはクラウド上に置く
- 得点を手軽にシェアできるようにする
- 他のユーザと得点を競うことができる
クイズの問題、選択肢、答えはクラウド上に置く
これはとても大事なことです。クラウド上に置くことで問題をアップデートしたり、回答を間違えた場合にも即座に修正ができます。特にクイズアプリで定期的に遊んでもらおうと思った場合、問題を随時追加できるようになっている必要があるでしょう。
なお、クイズの答えまでダウンロードしてしまうとその答えを見る(ネットワークを盗み見る)ことでチートができてしまいます。そこでmBaaSのスクリプト機能を使うことで回答はダウンロードされないデータストアのクラスに保存しておき、答え合わせをすることができるようになります。
テキストだけであればデータストアが使えます。問題を音声で記録したり、画像や動画を使う場合にはファイルストアが利用できるでしょう。
得点を手軽にシェアできるようにする
得点をシェアする方法としては、会員機能を使うことでFacebook/Twitter/Google+のユーザ情報と結びつける方法があります。会員登録を行うことでクイズへチャレンジした記録を残すこともできるようになります。
会員登録を必須にすると利用までの敷居が高くなってしまって嫌がられる可能性があります。その場合はOS標準でついているシェア機能を使うのが良さそうです。なお、クイズへのチャレンジ記録は匿名会員機能を使うことでデバイス単位の履歴保存が可能です。
他のユーザと得点を競うことができる
アプリであれば見逃せないのが他のユーザとの競争を促す機能です。他にも使っているユーザがいて、その人たちの存在を感じられるからこそ続けようと思うのです。そのためランキング機能であったり、最新の得点一覧などがあると良いでしょう。
こういった機能はmBaaSのデータストアで実現できます。この時にもランキングの不正操作を防止するためにスクリプト機能が役立つはずです。
今回の想定では
- データストア
- クイズの問題、選択肢、答えを保存
- クイズの結果を保存
- ファイルストア
- クイズで使う画像、音楽、動画などを保存
- ソーシャル連携
- クイズの結果をシェア
- 会員機能
- クイズの結果を記録するため
- デバイス単位の記録であれば匿名会員機能でも可
を使う形で考えてみました。さらに発展させる形として、新しい問題を登録したらプッシュ通知を送っても良さそうです。
ぜひmBaaSを使ってアプリを作ってみてください。