モバイルバックエンドサービス(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 |
それぞれ、
- Amazon - AWS Mobile Hub
- Google - Firebase
- Microsoft - Mobile App Service
とその関連ページからの抜粋です。
AWS Mobile Hub や Azure Mobile Apps という名称は、それぞれのクラウドプロバイダーが提供する機能の集合体として名付けられたに過ぎません(たぶん)。
あと Firebase はその企業自体を Google が買収したものです。
なので、上表の空欄の箇所も、 mBaaS という括りで紹介されてないけど、該当する機能はあります。
- クラウドロジック
- Cloud Functions(Google), Azure Functions(Microsoft)
- アプリケーション分析
- HockeyApp(Microsoft)
- コンテンツ配信(CDN)
- Azure CDN(Microsoft)
- アプリケーションのテスト
- Test Cloud(Microsoft)
モバイル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 でサンプルアプリケーションを作ってみたいと思います。