AWS
Azure
Xamarin
Firebase

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 でサンプルアプリケーションを作ってみたいと思います。