Edited at

Amazon, Google, Microsoft の mBaaS の比較と Xamarin の対応状況

More than 1 year has passed since last update.

モバイルバックエンドサービス(mBaaS)は、もはやクラウドプロバイダーが提供するものを使用するのが鉄板になってきました。

大きなクラウドプロバイダーといえば、 Amazon-AWS, Google-GCP, Microsoft-Azure ですね。

 私が推している Xamarin は、Microsoft 製品である以上、 Azure とセットで PR される事が多いですが、 Xamarin 的には他の mBaaS にも対応しているので、ちょいと調べてみました。

 ※筆者は、日頃 AWS はよく使っているけど EC2/S3 が主、Google Cloud Platform と Azure は HelloWorld 程度という知識です。

まずは、各 mBaaS が提供する機能を比較し、その後、 Xamarin への対応状況を述べます。


mBaaS の機能比較表

とりあえず表。

機能\プロバイダー
AWS Mobile Hub
Google Firebase
Microsoft Azure Mobile Apps

認証
Cognito
Authentication
ユーザー認証

データストレージ

S3, Cognito
Storage
Azure Object Storage

クラウドロジック
Lambda
Cloud Functions for Firebase

データベース(NoSQL)
DynamoDB
Realtime Database
Table Storage

アプリケーション分析
Mobile Analytics
Firebase Analytics

コンテンツ配信(CDN)
S3, CloudFront

Hosting

プッシュ通知
SNS
Cloud Messaging
Notification Hubs

アプリケーションのテスト
Device Farm
Test Lab

それぞれ、

とその関連ページからの抜粋です。

AWS Mobile Hub や Azure Mobile Apps という名称は、それぞれのクラウドプロバイダーが提供する機能の集合体として名付けられたに過ぎません(たぶん)。

あと Firebase はその企業自体を Google が買収したものです。

なので、上表の空欄の箇所も、 mBaaS という括りで紹介されてないけど、該当する機能はあります。


モバイルSDKの Xamarin への対応状況

mBaaS を謳うからには、スマホアプリ開発が容易に行えるよう、モバイル向けSDK が準備されていることが望ましいです。

各社 Android, iOS 用の SDK は当然用意されていますが、 Xamarin 用の SDK はあるでしょうか?次のような結果になりました。

機能\プロバイダー
AWS Mobile Hub
Google Firebase
Microsoft Azure Mobile Apps

認証

データストレージ

クラウドロジック
--
--
--

データベース(NoSQL)

アプリケーション分析

コンテンツ配信(CDN)
--
--
--

プッシュ通知

アプリケーションのテスト
--
--
--

Xamarin 向けは、Azure の SDK が用意されているのは当然として、 Amazon AWS も一通りの SDK が用意されています。しかも Java や Objective-C のラッパーではなく C# で書かれたもの(なので .NET プラットフォーム全般で使えます)。

Google Firebase は、現在 Xamarin 向けの公式 SDK はありませんが、

によると、 Xamarin が何かを提供してくれるつもりなのでしょうか?、期待です。

あるいは、有志の方が作られた、

というライブラリを使う手がありますが、説明を読む限りこれは「データベースのみ」の対応のようです。


まとめと次回

 Amazon, Google, MS 各社の mBaaS は、その括りの違いこそあれ、概ね同じ機能を提供しています。

 

 Xamarin から使う場合、AWS と Azure は SDK が用意されているのでアプリ開発が楽です。Firebase はもうしばらく待つしかなさそうです。

 さて次回は、実際に各社(といっても AWS と Azure)の mBaaS を使って、Xamarin でサンプルアプリケーションを作ってみたいと思います。