MilkcocoaでBaaSを体験!~バックエンドの仕組みと使い方~

第1回 BaaSとはなにか?

この記事を読むのに必要な時間:およそ 3 分

BaaSを利用することについて

いつBaaSを利用すべきか?

人的リソースの不足や時間コストが掛けられないとき

たとえばスタートアップにおける開発において,そもそもエンジニアが不足するという事態が多々発生します。しかしスタートアップはスピードが特に求められるので,時間コストが掛けられないという状況であるという場面も多くあります。

その際に時間コストの短縮のためBaaSを利用すると言うのは,1つの良い戦略でしょう。BaaSは既にバックエンドそのものが提供されるため,バックエンドを開発する必要性がなくなり,その結果開発コストの削減に繋り,より高速に少ない人的なリソースで,サービスを構築できる可能性があります。

Webアプリケーションのプロトタイピング

Webアプリケーションのプロトタイピングについても活用できるのではないかと考えています。WebアプリケーションでBaaSを活用することにより,自分達が構築するシステムの要求や,アーキテクチャに対してより良いフィードバックを受けられ可能性があります。

実際にハッカソン等で,Milkcocoaを利用したサービスをラピッドプロトタイプしたという事例について,ユーザから報告を受けたことがあります。もちろんプロトタイプ作成のみならず,実運用でもBaaSを使うことは有効だとは思います。しかしとりあえずBaaSを選択して設計の評価をすると言うことは,これからのサービス開発で有効だと思いますし,事例も多々出てくるだろうと予測しています。

どのWebアプリケーションにもあるような機能を実現するとき

BaaSはこれまでのサービスのおけるバックエンドのパターンを抽象化し,提供していると考えられるので,一般的なWebアプリケーションの機能を実現するときにBaaSを活用すると良いと思います。

たとえば認証系のみBaaSを利用して実現して,その他のビジネスロジックは,フロントエンドまたはバックエンドで実装して,連携する等は考えられるでしょう。FacebookやTwitterなどのSNSによる認証はAPIの変更等で保守にコストが特に掛るところだと思いますので,そういった面倒なところをBaaSがまとめて見てくれるというのも利点です。

BaaSが不適切な場面

バックエンドに,自分達の独自のビジネスロジックを組み込みたいとき

BaaSはバックエンドが最初から構築されているため,BaaSのバックエンドに自分達のビジネスロジックを含めることは当然ですができません。アーキテクチャとして,バックエンドが必要なときであれば,バックエンドを構築したほうが良いでしょう。しかしその場合でも,BaaSと独自のバックエンドを組み合わせて,サービスを構築することは可能だと思います。その場合はBaaSの連携コストか,独自で機能実装するコストを選択しなければならないでしょう。

バックエンドに対して最適化を行いたいとき

BaaSはバックエンドとして汎用的に作られている場合が多いので,必ずしもサービスに最適な振る舞いになっていない場合が多いでしょう。たとえばサービスに対して,BaaSのバックエンドのレスポンスが遅い等があり,それがサービスに対して重大な影響を与えているのであれば,BaaSではなくチューニングされたサーバが必要だと思います。

MilkCocoaについて

本特集ではMilkcocoaを利用して,BaaSにおけるシステム/アプリケーション開発がどう言ったものか? ということについて紹介していきます。

今回は,Milkcocoaというサービスがどういうものか? と言う概要を簡単にご紹介していきます。

図2 Milkcocoaロゴ

図2 Milkcocoaロゴ

Milkcococaの特徴

Milkcocoaに関して,他のBaaSとは異なる特徴を紹介します。

非常に学習コストや導入コストが低いこと

まずMilkcocoaの特徴は,非常に学習コストが低くなるように設計されているということです。この後の回でも記述しますが,非常に手軽に導入できるよう設計をしています。非常にシンプルなAPIであり,導入も非常に素早くできることを主眼に設計をしています。

リアルタイム性

他のBaaSとは大きく異なるのが,リアルタイムアプリケーションのための機能が充実していると言うことです。ここが他のBaaSとは異なります。

ルールスクリプトとデータストア

Milkcocoaはデータストアでデータを永続化することが可能です。またデータストアの操作に関して,制限を掛けることができる機能を提供しています。

Milkcocoaの欠点

最後に欠点を解説したいと思います。この点に関しては,今後のアップデートにより改善する予定の機能が数多くありますが,本稿執筆時(2015年2月)で対応されてない機能です。

SNSの連携機能がないこと

近日SNSに関する認証機能のアップデートを行いますが,まだ提供されていない機能です。まだ詳しくは公開できないのですが,2015年4月にSNS認証機能を追加予定です。

iPhoneやAndroidのネイティブSDKがないこと

Milkcocoaは現在,JSのSDKのみ提供しており,他のプラットフォームのSDKは対応していません。iPhone SDKに関しては,テストバージョンを一部の希望者に用意しているのみであり,まだ公式には提供していません。

しかし近いうちにリリースできると思いますので,楽しみにしておいてください。

次回は

次回は,Milkcocoaを利用し,簡単なチャットアプリを作り,MilkcocoaとBaaSでのアプリの作り方を紹介します。

著者プロフィール

花田恒一(はなだのぶかず)

株式会社Technical Rockstars CTO

グラフィカル言語Flowerや,BaaSサービスであるMilkcocoaを開発。Lisper。言語オタクであり,様々な言語開発経験がある。特に好きな言語はLisp(Shen)である。最近ではUXDに関心があり,福岡のUXコミュニティに積極的に参加している。

Twitter:@nobkz