FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

ベンダー視点のmBaaS活用法

昨今盛り上がりを見せているmBaaSですが、スクラッチ開発とどう違うの?と言う点がプロジェクト初期のアーキテクチャ選定作業で話題になります。その辺りを開発ベンダー視点で見ていきたいと思います。

1. そもそも、mBaaSって?

mBaaSとは
mBaaSとは
今さら聞けないmBaaS…ということで簡単に説明をします。mBaaS(mobile backend as a Service)とは、スマートフォンアプリ開発において、バックエンドの共通的な仕組みをクラウド上に持たせAPIで呼び出すことで利用します。これにより、コストカットや開発スピードを上げることを目的としたサービスです。

サービス内容は通常アプリ開発において必要なプッシュ通知、会員管理、データストア、ファイルストレージなどがあります。また、APIはSDK組込型で利用するケースと、Web APIで利用する2つのケースが用意されていますので、プロジェクトに応じて取捨選択できるのも利点でしょう(PUSH通知などスマートフォンの機能を使ったものは組込型となります)。

一般的にプランが選択できるようなサービス展開が多く、無料でお試しできるプランを用意しています。課金が発生するケースでも月額数千円からと、安価な運用が可能です。

2. さあ、アーキテクチャ選定作業だ。これが結構楽しい

2–1. スクラッチ開発か、mBaaS導入か?

スクラッチ開発とmBaaSだとなにがどう違うの?

mBaaS or Scratch
mBaaS or Scratch
スクラッチ開発なら概ねやることは決まってますし、後から追加改修も可能です。アプリ開発に慣れたSIerとしては、一番やりやすいのが現状でしょう。しかし、リリース後の運営サポートなども考慮しなければならず、考えることは山積みです。とはいえ、クライアントにとって自由度が効きますので、スクラッチを選ぶベンダーは多いはずです。

mBaaSならば、そのメリット/デメリットを明確に記載しているサービス業者を選ぶべきです。また、外部サービスを利用することになるため、いくら数千円からでも稟議を上げるための資料などが必要になることもあります。そういった資料が豊富に揃っているベンダーなら、後になって稟議が通らないと言うこともないでしょう。

2–2. テストが重要です

このプロジェクトはテストファースト開発ですよね?

そうプログラマーに突っ込まれないためにも選定は慎重に行いましょう。

テストファースト
テストファースト
昨今、開発側でテストファースト(TDD)の重要性が叫ばれてます。プロジェクトのアーキテクトがTDDを声高に叫んでも、選定における重要なタスクで、テストができないmBaaSのSDKを選ばれてはどうしようもありません。初期リリースの時は、誰もそのmBaaSを利用していない状態でしょうから、テストは容易でしょう。しかし、リリース後の開発においてはどうでしょうか?

例えば、会員機能などmBaaSを利用するしかない場合は、テストが非常に困難です。

  • テストのためのダミー会員を用意する?
  • その場合、セキュリティを担保できるか?

等々、後になって問題山積みとなることも多々あります。プッシュ通知についても同様でしょう。テスト開発時に、本番に向けてテスト文言がPUSHされたら…なんてことも起こりえます。では、どう解決するか?答えになるのがmBaaSの無料プランでテスト開発しましょう、ということです。無料プランも開発用もない場合は、そのサービスの利用は諦めた方が無難と言えます。

2–3. 事業継続性も考慮しよう

mBaaSのサービス提供側は、その殆どの場合において企業が運営しています。

事業継続性
事業継続性
アプリをリリースしたらmBaaSのサービスを受け続けるのですから、ある日突然サービスが停止したり、頻繁にSDKの仕様変更があるのは困ります。その企業側の運営スタンスや、ケースによってはmBaaSサービス提供企業の収益性まで考慮する必要があるでしょう。また、サポートの有無やmBaaSの利用度合いも見極めなければなりません。

この辺りは一般的に企業からサービスを受ける場合と同様、例えばサーバー提供会社などを選定するのと変わりません。mBaaSの目先の利用しやすさだけでなく、企業判断としてシビアな目線は大事でしょう。

3. どのようなアプリでmBaaSを利用すべきか

3–1. アプリの生存期間を考慮する

このアプリ、リリース後3ヶ月で終了なんだよね

そんなアプリに、果たしてスクラッチ開発による開発を採用するでしょうか?

ライフサイクル
ライフサイクル
iPhone出始めの頃から比べて、スマホアプリのライフサイクルは変わってきています。数年前のアプリ開発においては特殊性があり、開発期間も長く、アプリに対する企業の思い入れが強くありました。そのため、mBaaSにあるような機能をスクラッチで開発するのも抵抗なく受け入れていたと思います。

しかし、リリースまでの開発サイクルも短くなっている昨今、アプリはキャンペーンだけに利用するといったライフサイクルの短いものも増えています。アプリのライフサイクルが短ければ、mBaaSを活用するのが良い判断と言えるでしょう。

3–2. ハイブリッドか否か

やっぱり、ハイブリッド・フレームワーク で開発したいよね。コスト削減したいし!そこにmBaaS使えば一挙両得ですよ。これでプロジェクトの選定作業も一安心!

って、ちょっと待って下さい。

ハイブリッドフレームワーク
ハイブリッドフレームワーク
現在はiPhone、Android、Windowsなどとゲームアプリ、事業系アプリでもハイブリッド開発が主流になっています。それらはUnity、Cocos2d、Monaca(Cordova)といったハイブリッドフレームワークのお陰です。開発ベンダーとして、どのハイブリッド・フレームワークを利用するかも重要ですが、そもそもフレームワークにmBaaSのSDKが組込可能かどうかであったり、組込のしやすさは問題ないかといった点は開発者側には非常に重要です。

きちんと調査しなければ組込時にそのmBaaS用のプラグインがなかったり、最悪組込が不可能ということになりかねません。結果としてハイブリッドフレームワーク専用の、mBaaS用プラグイン開発から始めることになり、コストが跳ね上がって、開発予算が合わなくなるという目に遭います。mBaaSとハイブリッド・フレームワークを利用するのであれば、その相性も確認するべきでしょう。

3–3. 既存システムとの連携

選定作業も大詰めを迎え、ほぼmBaaSで決定しかけている時でさえ、やっぱりスクラッチも捨てがたい…とアーキテクトは考えます。

基幹連携
基幹連携
既存の基幹システムと会員情報を紐付けられるか。mBaaSを導入して開発負荷が上がらないか…もし開発負荷が上がるのであればスクラッチも捨てがたい。

この辺りは選定を誤ると、後で大きく開発の手戻りが発生してしまいます。一つの回答としてmBaaSにはREST APIを提供するものがありますので、APIを組み合わせることで既存システムとの連携が実現できます。その辺りも選定基準に組み込むと良いでしょう。

3–4. mBaaSで開発する際に注意したいこと

では今回の開発はmBaaSを使いましょう!

初めてのmBaaS
初めてのmBaaS
ここからは、はじめてmBaaSのサービスを導入する場合の注意点です。まずはSDKをよく読むことです。ベンダー選定作業に加わる方の中には、コーディングから離れている方も多いでしょう。そういったエンジニアにとって選定作業はとても困難です。つまりmBaaSのSDKでできることを理解するのが最も大変です。

mBaaSは使いやすいというイメージがありますが、少なくともSDK調査工数が掛かることは念頭に置かなければならないでしょう。完全に外部サービスであることから、このSDKを理解する時間は見積もりも難しい部分です。単純にAPIに投げればデータが返ってきて、それを処理すれば良いというだけではありません。内部実装工数もかかります。後で結局、思ったことができない、となる前に公開されているSDKは熟知しなければなりません。

ただ、この辺りは一度でも使っていれば大幅にリスクを低減できます。

4. アプリとベンダーが幸せになるために

一通りベンダー視点で見てきましたがいかがでしたでしょうか。mBaaSもスクラッチ開発も一長一短です。開発時とその後の運用のケースを見極め、プロジェクトに合った提案をしていくことが大事なのは言うまでもありません。mBaaSを全て使うのではなく、一部の機能だけを利用するのもありでしょう。mBaaSは無料プランでもかなりの通信量やAPI回数の上限を設けてあります。そのため初期のリリース段階では、ほぼ無料で利用し続けられるアプリも多いのではないでしょうか。mBaaSを利用していて有料になるほどのアクセス数やプッシュ通知が必要になった時は、アプリの成功を意味することでしょう!

f:id:mbaasblog:20180927103344p:plain