Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

無料で十分試せるMBaaS、ニフティクラウド mobile backendを使ってみる

MBaaSと連携するAndroidアプリを作る 第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/08/25 14:00

 本記事は、MBaaSであるニフティクラウド mobile backend(NCMB)と連携するAndroidアプリ開発の解説記事です。グループウェアとしてタスク(仕事)に費やした時間を記録、集計するアプリを作ってみます。NCMBの機能としては、主にユーザー登録・認証、データストアを利用し、MBaaSを使うアプリ開発の手順と便利なところを解説していきたいと思います。

目次

はじめに

 写真やデータの保存場所としてのクラウドは一般の方にもかなり認知されたようですが、アプリケーション開発でクラウドのメリットを享受されている方はまだ少ないように感じます。MBaaS(Mobile Backend as a Service)はクラウド利用の具体的な答えの一つです。MBaaSを使えば、簡単にクラウドのメリットを活かしたスマホアプリを作成できます。

対象読者

 MBaaSと連携するAndroidアプリを開発したい方。JavaとEclipseについては解説しませんので、JavaとEclipseの基本的な知識があると読みやすいでしょう。

必要な環境

  • JDK
  • Eclipse
  • Android SDK
  • ニフティクラウド Mobile backend Basic(無料版)

スマホ+MBaaSの時代へ

 スマートフォン(もしくはタブレット)+MBaaS(Mobile Backend as a Service)がコンピュータシステム利用の主要な形態の一つになりつつあります。

 30年ほど時代を遡ると、大型コンピュータ(汎用機)の時代 → PCの時代 → クライアントサーバーシステム(C/Sシステム)の時代とコンピュータ利用の形態は変化してきました。C/Sシステムの時代は高速に複数ユーザーからの要求を処理するリレーショナルデータベースシステム(RDBMS)が注目を浴びました。

 次にインターネットの普及によって、Webアプリケーションの時代が来ました。Webアプリを構築するには、WebサーバーやDBサーバーを用意して、サーバー側のプログラムをJavaやPHPで作成します。クライアントに必要なソフトウェアはブラウザだけなので、C/Sシステムの時代に面倒だったクライアントPC側のアプリのインストールが不要になりました。また、PCだけでなく携帯電話からも利用可能なので、どこにいてもWebアプリが利用可能になりました。

 ここ数年は、スマートフォンやタブレットが普及する一方、サーバーを自前で準備する(オンプレミス)のではなく、クラウドとして用意されたサーバー群を利用する形態が広がりました。サーバー機の準備や管理の手間がないのは助かりますが、サーバー側のアプリとクライアント側のアプリを別々に用意しなくていけないので、開発は相変わらず大変です。

注釈

 スマホやタブレット側でブラウザを起動して使うWebアプリならクライアント側のアプリは不要ですが、より便利で高速に動作するネイティブアプリを動作させようとしたら、クライアント、サーバー両方でのアプリの開発が必要です。

 MBaaSは、スマホ側のプログラムで必要になるであろうサーバー側の機能があらかじめ用意されているサービスです。スマホ側のOS、開発言語に合わせたSDKを準備されており、アプリ開発者はそれをダウンロードしてAPIをコールするだけで、サーバー側の機能を利用することができます。

 「どうして、わたしの作るアプリにどんな機能が必要になるかわかるの?」って思われた方もいらっしゃるかもしれませんね。でも、考えてみると、どんなアプリケーションでも必要になる機能に大きな違いはありません。

 データを登録して、加工して表示したり、登録したデータを変化させて、いずれかの状態を表現する。このような機能はアプリの種類を問わず必要でしょう。グループウェアであれ、ゲームであれ、なんらかのデータが登場して、その状態を変えていきます。そして、利用者はそのデータを集めたり、並べ替えたりして眺めます。

 また、スマホ特有の機能として、GPS(Global Positioning System、人工衛星を利用した全地球測位システム)から位置情報を取得して利用することや、一斉にスマホにプッシュ通知(メールソフトを立ち上げてから受信するメールと異なり、郵便配達のようにユーザーに能動的に通知する機能)を行うことも求められます。

MBaaSを概観する

 海外で有名なMBaaSは「Parse」ですが、国産では、「ニフティクラウド」「アピアリーズ」「Kii Cloud」が代表的なサービスです。各社のMBaaSが提供している機能をみていきましょう。

MBaaSの比較(機能の違い)
機能の種類 Parse ニフティクラウド アピアリーズ Kii Cloud
ユーザー 会員管理・認証 会員管理・認証 ユーザー管理・認証 ユーザー管理
権限管理 権限管理 権限管理 アクセス制限機能 Objectに対するアクセス権
データストア データストア データストア データベース機能 データ管理
ファイルストア ファイルストア ファイルストア ファイル機能 Object Bodyのアップロード
位置情報 位置情報検索 位置情報検索 ロケーション機能 位置情報
プッシュ通知 プッシュ通知 プッシュ通知 プッシュ通知 プッシュ通知
SNS連携 SNS連携 SNS連携 - 外部サービスを利用した認証
アプリ分析 アプリ分析 - - アプリ分析
バックグラウンドジョブ バックグラウンドジョブ - - スケジュール起動
サーバー - - - サーバー機能拡張
A/Bテスト - - - A/Bテスト
お詫びと修正(2014/8/26 16:30)

 当初、「MBaaSの比較(機能の違い)」の表において、Kii Cloudの機能で一部未対応のものがあると記載しておりましたが、表に記載の機能はすべて提供済みであるとご指摘を受けました。間違いを訂正させていただくとともに、深くお詫び申し上げます。

 呼び方が異なる場合がありますが、共通している機能は会員管理・認証、権限管理、データストア(データベース機能)、ファイルストア(データ管理)、位置情報(ロケーション機能)、プッシュ通知です。

 認証については、OAuth2.0に対応しているMBaaSもあります。権限管理では、ユーザーやグループごとにデータに対する読込権や更新権を細かく設定できます。

 データストアはRDB(リレーショナル・データベース)ではありません。Key-Value形式の組み合わせでデータをオブジェクトとして記憶します。RDBのように最初にスキーマありきではないので、柔軟にデータを作成できます。

 ファイルストアは、写真や動画、各種ドキュメントを扱います。さらに、SNS連携機能でFacebookやTwitterに投稿することもできます。

 また、各サービス独自の機能もあります。Parseにはバックグラウンドジョブという機能があり、サーバー上でジョブをスケジューリングして実行することができます。

 ParseとKii Cloudにあるアプリ分析では、アプリの利用状況やアプリのデータ分析が可能です。

 さらにKii Cloudには、JavaScriptで書いたコードをクラウド上で実行できるサーバー機能拡張や、他にない機能としてA/Bテストがあります。A/Bテストとは、二つの選択肢のうち、AとBのどちらがよいかをユーザーの行動から判断する機能です。

 これらの機能をすぐに使い始めることができる点が、MBaaSの良いところです。アイデアを形にするのに余計な手間が掛かりません。いきなりスマホ側のアプリの制作に着手することができるのです。

 でも、お金になるかどうかわからないジャストアイデアのために、利用料がかかるMBaaSはいきなり使いにくいですよね。

 しかし大丈夫です。MBaaSの料金は複数のプランがあり、月額いくらと決まっていることが多いのですが、しばしば無料のプランが用意されています。

MBaaSの比較(無料で使える範囲)
機能 Parse ニフティクラウド アピアリーズ Kii Cloud
APIリクエスト数 30/秒 200万回/月 10,000/月 100万回/月
プッシュ通知 100万回(100万の端末)/月 200万回/月 500/月 100万回/月
ストレージ データストレージ 20GB
ファイルストレージ 20GB
基本ストレージ 5GB 基本ストレージ 100MB 1GB
データ転送 2TB - 1GB -
その他 バックグラウンドジョブ 1 ファイルサイズ制限 5MB - A/Bテスト 1/月

 表は各サービスの無料で使える範囲を示したものです。サービスによって、カウントの仕方や単位が異なったりしますが、アプリ開発、テスト工程でまず気になるのは、APIリクエスト数です。開発するアプリの中で、ユーザー登録のAPIを呼び出したら+1、ログインのAPIを呼び出したら+1、データを取得するAPIを呼び出したら+1とリクエスト数がカウントされていきます。ですから、単位時間あたりの回数が多い方が安心して、アプリのテストや試用ができます。データストアの容量やプッシュ通知回数は、開発するアプリによって異なります。

 今回利用するニフティクラウド mobile backendでは、以下の表のように料金が決まっています。

NIFTY Cloud Mobile backendのプランと料金
Plan Basic Pro Expert カスタマイズ
月額 無料 2,000円 30,000円 お問い合わせ
APIリクエスト数 200万回/月 500万回/月 5000万回/月 カスタマイズ
プッシュ通知 200万回/月 300万回/月 1000万回/月 カスタマイズ
基本ストレージ 5GB 10GB 100GB カスタマイズ
ファイルサイズ制限 5MBまで 10MBまで 100MBまで カスタマイズ

 無料のBasicプランでAPIリクエスト数やプッシュ通知が月に200万回まで使えますので、開発、テスト、試用段階においては全く問題ないでしょう。基本ストレージの5GBも十分です。5MBまでというファイルサイズの制限はアップするファイルの種類によっては要注意かもしれません。

 次にMBaaSが対応している実行環境や開発言語をみてみましょう。

MBaaSの比較(対応しているOSや開発環境
OSや開発環境 Parse ニフティクラウド アピアリーズ Kii Cloud
iOS
Android
OS X - - -
JavaScript
Windows Phone 8 SDK - - -
Windows 8 SDK - - -
.NET SDK - - -
Xamarin SDK - - -
Unity SDK -

 Parseの対応環境の多さには一日の長を感じますが、どのサービスでもAndroid(Java)、iOS(Objective-C)、JavaScriptはサポートしているようです。

 本連載では、無料で開発環境を準備できて、実機へのインストールも可能なAndroidをターゲットにします。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 金宏 和實(カネヒロ カズミ)

     富山県高岡市出身で在住。ソフトウェア開発者兼ライター。 株式会社イーザー 関西学院大学文学部仏文科卒。第一種情報処理技術者(今で言うと、応用情報技術者。第一種→ソフ開→応用と変遷したようだ) 主な著書 『作ればわかる!Androidプログラミング第2版 -SD...

バックナンバー

連載:MBaaSと連携するAndroidアプリを作る
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5