COD2013 Windows Azure Mobile Service を用いたiOS/Android開発

Preview:

DESCRIPTION

Community Open Day 2013 東北会場(エフスタ!!SENDAI)にて発表した資料です。 http://cod.ms/Pages/place_fukushima.aspx

Citation preview

Windows Azure Mobile Service を用いたiOS/Android開発山本 誠樹(Yamamoto Masaki)@nnasaki

自己紹介•山本 誠樹(Yamamoto Masaki)•@nnasaki•↑まさきって呼びます。•大体このIDでやってます。•http://nnasaki.hatenablog.com/

自己紹介2•C# が好き•というかLINQが好き•VB.NETばくはつしろ

本日のターゲット•iOS/Androidデベロッパー•非Windowsの人向け•Visual Studio使いません•Windows 使いません

Windows依存を減らすMicrosoft

http://www.businessinsider.com/chart-of-the-day-microsoft-windows-income-2013-4

Windows Azure Mobile Service

とは?

•モバイル端末向けBaaS(Backend As A Service)

•2012/8/28 開始

SDK

SQL

OAuth

http://msdn.microsoft.com/en-us/library/windowsazure/jj554228.aspx

•クライアントSDKがマルチプラットフォーム対応!

•サーバー側でロジックを使い分ける必要が無い

•iOSとAndroidのどのバージョンに対応しているの?

•古いバージョンに対応していないと困る(特にAndroid2.3)

•iOS5以降に対応•iOS5より前は3.7%なので問題ないレベル

iOS

•Android2.2以降に対応•2.2より前は1.8%なので問題ないレベル

Android

Android

•クイックスタートアプリは4.2以上対応なんで注意

なぜWindows Azure Mobile Servicesを使う

べきか?

•無料•スキーマレス•認証•プッシュ通知

•無料•スキーマレス•認証•プッシュ通知

これから使う人は多分3ヶ月間

無料

•3ヶ月経ったら?•無料期間終わったら?•転送量オーバーしたら?•悪意のある攻撃を受けたら?

え?お金とられるの?やだ怖い

実話•AWSの無料期間にDBサーバーを立ち上げていた•不幸なことに落とすのを忘れていた•無料期間終了と同時に数万円の請求が…

Azureはご安心

ください!!!

閑話休題

•無料•スキーマレス•認証•プッシュ通知

•デフォルトでオン

•4つの型が使用可能

[Windows Azure Mobile Services を使った Android/iOS アプリケーションの構築](http://www.slideshare.net/shosuz/windows-azure-mobile-services-android-i-os-17238153)

•NoSQLではない•SQLが使用可能!

デモ

•無料•スキーマレス•認証•プッシュ通知

•それぞれの違いはこれだけ[client loginWithProvider:@"microsoft" ...][client loginWithProvider:@"facebook" ...][client loginWithProvider:@"twitter" ...][client loginWithProvider:@"google" ...]

デモ

•無料•スキーマレス•認証•プッシュ通知

プッシュ通知とは?

プッシュはとにかく面倒くさい

細かいことはどうでもいいから表示したい!

サーバーはこれだけpush.apns.send(item.deviceToken, { alert: "Toast: " + item.text, payload: { inAppMessage: "Hey, a new item arrived: '" + item.text + "'" } });

iOS

push.gcm.send(item.channel, item.text, { success: function(response) { console.log('Push notification sent: ', response); }, error: function(error) { console.log('Error sending push notification: ', error); } });

Android

デモ

ご紹介しきれなかったこと

Windows•ストアアプリやWindows PhoneについてはCodeZineの記事を見ていただくと良いと思います!

http://codezine.jp/article/detail/6890

スケジューラ•サーバースクリプトを定期実行(cron)できる•無料の場合15分に1回まで等の制限がある

http://www.windowsazure.com/ja-jp/pricing/details/mobile-services/

スケール•占有インスタンスに変更可能だが、現在はS(1コア)のみ•将来的にはWebサイト同等のL(4コア)やインスタンス数を増やせるようになると思われる

ログ•サーバー側でConsole.log(“string”);で出力可能•ポータルにて確認可能•Webサイトの場合 tail -f が出来るので同等になって欲しい

コマンドラインツール

•ポータル以外からコマンドで操作できる•Macの場合のインストール方法blogに書きました

http://nnasaki.hatenablog.com/entry/2013/05/02/005951

デバッグ•サーバースクリプトはPrintデバッグしか無い•ローカルのnode.jsでも実行できないかな~?

デプロイ•サーバースクリプトはポータルにて直接編集できるがバージョン管理されない•コマンドラインツールとJenkinsを組み合わせれば出来なくも無い•WebサイトではGithubやDropbox連携が出来るので同等になってほしいところ

テスト自動化•サーバー側はリクエストのイベントドリブンなので難しい•クライアントSDKにモックが無いので自分で何とかする必要がある

今後もBlogにて最新情報をお届けします。

•nnasaki.hatenablog.com

ご静聴ありがとうございました