XamarinとmBaaS


[前回の記事](http://qiita.com/koji_yusa/items/a6878bef10577ee744b5)で、ParseのXamarin SDKからPush Notificationがすぐに使える状況ではなかったため、その他にXamarinに対応したmBaaSがあるか調べてみました。

今回取り上げなかったAzureのmPaaSサービスも[Components](http://components.xamarin.com/view/azure-mobile-services/)があります。
[amay077](http://qiita.com/amay077)さんの[記事](http://qiita.com/amay077/items/40bd5918284fd40d0edc)をご確認ください。

## [Parse](https://parse.com/)

![スクリーンショット 2013-12-14 23.15.38.png](https://qiita-image-store.s3.amazonaws.com/0/31371/44048b9f-75bd-ccbe-71d4-8558d190d5cc.png "スクリーンショット 2013-12-14 23.15.38.png")


管理画面も機能もシンプルに作らてていて、使いやすいと評判のmPaaSです。

### 料金
・Freeプラン
月100万リクエストまで、月100万プッシュ、毎秒20リクエストのバースト制限
・Proプラン（$199）
月1500万リクエスト、月500万プッシュ、毎秒40リクエストのバースト制限
・Enterpriseプラン
問い合わせ

### 対応状況
Push Notificationについても、AndroidやiOSのネイティブアプリ向けには、GCMやAPNSのライブラリに全く触れる必要がないなど、かなりお手軽です。

Xamarin用のSDKにはPush向けの機能が全くないのですが、
おそらく、GCMやAPNSのSDKの機能も統合されているため、移植の手間がかかるためではないかという想像ができます。

Parseサーバにプロバイダーを任せるには、現状WebAPI経由での対応になりそうです。

## [Buddy](http://buddy.com/)

![スクリーンショット 2013-12-14 23.18.39.png](https://qiita-image-store.s3.amazonaws.com/0/31371/fe2563de-b78a-4d7e-e435-a157bf791b99.png "スクリーンショット 2013-12-14 23.18.39.png")

あまり聞いたことはありませんでしたが、管理画面もごちゃごちゃとしてますが、機能は揃っていそうです。
グーグラビリティーの非常に低いBuddy、名前を変えたほうがいいのでは・・

### 料金
・Freeプラン
リクエスト数無制限、ストレージ容量10GBまで
・Proプラン（$99）
リクエスト数無制限、ストレージ容量100GBまで
・Enterpriseプラン（$999）
リクエスト数無制限、容量無制限

### 対応状況
SDKが、Xamarin Components Stroeに登録されています。
Push Notificationに必要なサブスクライバID登録・削除とプッシュ送信のAPIが用意されていますので、Buddy用にGCMとAPNSの設定をにおこなえば、
C#のAPIのみで、Push Notificationが使えそうです。

## [cloudbase.io](http://cloudbase.io/)

![スクリーンショット 2013-12-14 23.18.13.png](https://qiita-image-store.s3.amazonaws.com/0/31371/8fb17505-7328-2f26-fd4d-ba99168e1958.png "スクリーンショット 2013-12-14 23.18.13.png")


あまり聞いたことがありませんでした。
FREEプランでは、端末数が30となっていますので、社内向けやテスト用になるとおもいます。


### 料金
・FREEプラン
転送量150MBまで、30クライアントまで
・Basicプラン（$11.99）
転送量月1GBまで
・Professionalプラン（$47.99）
転送量月8GBまで
・Eliteプラン（$119.99）
転送量月20GBまで

### 対応状況
SDKがXamarin Components Stroeに登録されています。
Xamarin向けSDKがありますが、Push NotificationはWindows向けしか準備出来ていないようです。
そのため、iOSとAndroidでPush Notificationを使うには、Parseと同じくWEB API経由の処理が必要になりそうです。

## まとめ
### Xamarin対応のSDKを配布している

- Parse
- cloudbase.io
- Buddy

### Components Storeで配布している

- cloudbase.io
- Buddy

Components Storeという仕組みは、XamarinStudioに統合されているため、GUIから簡単にアセンブリの追加が行えます。

ちなみに、.netで標準的なNugetについて、公式ではXamarinStudio用のNugetプラグインが提供されていません。
（が、[monodevelop-nuget-addin](https://github.com/mrward/monodevelop-nuget-addin)というPluginが独自に配布されています。 現行のXamarinStudio4.3でも4.1用のリポジトリが使えました。）

Componet Storeについては下記の記事が参考になります。

- [Xamarin 2.0 はじまりました](http://atsushieno.hatenablog.com/entry/2013/02/21/151834)
- [Xamarin Component Store の紹介](http://qiita.com/amay077/items/d996108bdf689ba2a9a6)


### Push NotificationにC#のAPIで対応できそう

- Buddy

サブスクライバIDの登録・削除のAPIはあるのですが、管理画面からPush Notificationを行うことができないので、送信用の端末とアプリを作成する必要があるようです。

GCM、APNSのキャリアサーバとは、Xamarin API経由で
GCMの[Components](http://components.xamarin.com/view/GCMClient)が便利です。


### Push NotificationにREST APIで対応できそう

- Parse
- cloudbase.io
- Buddy

管理画面の機能は、Parseが一番豊富です。

GCM、APNSのキャリアサーバとは、同じくXamarinのAPIを利用することができます。


### C#API用のサンプルやドキュメントが整備されている

- Parse
- CloudBase

BuddyはAPIドキュメントに付いた簡単なサンプルのみのようです。

## 次回は
実際に mPaaSのインフラでPush Notificationが使えるか試してみます。