azure mobile servicesとazure mobile apps
TRANSCRIPT
Azure Mobile Servicesと
Azure Mobile Apps- JAZUG福島 -
2015/4/4
Masaki YAMAMOTO
@nnasaki
自己紹介
2
Masaki YAMAMOTOTwitter:@nnasaki
Microsoft MVPfor Microsoft Azure
最近あったこと
3
4
無職と紹介される
https://jazug.doorkeeper.jp/events/20654
5
不発のエイプリルフール
http://satoyasendai.com/
今日の予定
6
モバイルサービスを使ってみるモバイルサービスとはチャットアプリ開発プッシュ送信
ユーザーの動向を知りたいMobile Engagement
モバイルサービスの今後Mobile App となにが違うの?
必要なもの
• Azure サブスクリプション
• Android Studio
– NOT Eclipse
• Genymotion
–付属のエミュレーターは遅いのでオススメできません!
–実機で行うのが一番良い
– Push通知が受け取れなかったりするので注意
モバイルサービスとは
8
プッシュ通知数分以内に数百万台タグ付け(合計1億件以上)
マルチプラットフォームSDK iOS、Android、Windows、HTML5
認証連携Facebook、Twitter、Google、Active Directory
バックエンドC#、 NodeJS
http://azure.microsoft.com/ja-jp/services/mobile-services/
DEMO
ポータルからアプリを即実行
9
モバイルサービスの仕組み
10
http://channel9.msdn.com/Events/de-code/2014/SV-007
http://channel9.msdn.com/Events/de-code/2014/SV-007
今日使うところ
今日の予定
13
モバイルサービスを使ってみるモバイルサービスとはチャットアプリ開発プッシュ送信
ユーザーの動向を知りたいMobile Engagement
モバイルサービスの今後Mobile App となにが違うの?
チャットアプリの開発
14
Why?何故開発する?
登場人物達
登場人物達
デベロッパー(私)
デベロッパー
ユーザー
ユーザー
グループで会話するとき
デベロッパー(私)
デベロッパー
ユーザー
ユーザー
_人人人人人人人人人人人人_> 今時まさかのメール! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
デベロッパー(私)
デベロッパー
ユーザー
ユーザー
@docomo.ne.jp
@gmail.com
×
_人人人人人人人人人人人人_> 迷惑メールブロック! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
デベロッパー(私)
デベロッパー
ユーザー
ユーザー
@docomo.ne.jp
@gmail.com
×
今時ありえん。設定変えて
デベロッパー(私)
デベロッパー
ユーザー
ユーザー
@docomo.ne.jp
@gmail.com
×
え?なにそれわからんわ
デベロッパー(私)
デベロッパー
ユーザー
ユーザー
@docomo.ne.jp
@gmail.com
×
Facebook とか Line にしよう
デベロッパー(私)
デベロッパー
ユーザー
ユーザー
@docomo.ne.jp
@gmail.com
×
すまんが、娑婆に出られないのでSNSはちょっと
…
デベロッパー(私)
デベロッパー
ユーザー
ユーザー
@docomo.ne.jp
@gmail.com
×アプリ作るか…
とまぁ、こんな軽いノリで始めた。
こんな感じにします
Githubにプロジェクト登録
• git追加
• .gitignore更新
• githubへプッシュ
• https://github.com/nnasaki/shimaazu
レイアウト変更
• チェックボックス消す
• 発言を下に持ってくる
– listViewToDo layout:weight 1
Doneで入力できるように
• 改行を禁止にする
– android:autoText="false"
– android:inputType="text”
• ボタンイベントを追加する
– setOnEditorActionListenerを追加
– EditorInfo.IME_ACTION_DONE で判定
最新のチャットを確認したい
• スクロールを常に下になるように
– android:stackFromBottom="true”
– android:transcriptMode="alwaysScroll"
名前入力欄の追加
• 画面上部に名前入力欄のラベルとテキストボックスを追加する
– ActivityにmTextNewToDoと同様に追加
– ItemにmTextと同様に追加
時間を表示したい
• Mobile Services がデフォルトで持っている、__createdAt を利用する
– row_list_to_do.xml に LinearLayoutを追加
–発言者と日付を用意する
– ToDoItemに__createdAtのDateを追加
– ToDoItemAdapter にgetViewで情報取得を追加
こんな感じになりましたね?
サーバースクリプト修正なし
• 名前のカラムを追加したのに何故?
サーバースクリプト修正なし
• 名前のカラムを追加したのに何故?
動的スキーマ
これで解決したかと思いきや…
_人人人人人人人人人_> 結局届かない! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
×
折り返し地点
プッシュ通知
プッシュ通知
• 基本チュートリアルをなぞっていきますが日本語訳がAndroid Studioに対応していないので古い
• 英語と日本語の両方を見ていきます
– http://azure.microsoft.com/ja-jp/documentation/articles/mobile-services-javascript-backend-android-get-started-push/
– http://azure.microsoft.com/en-us/documentation/articles/mobile-services-javascript-backend-android-get-started-push/
プッシュ通知
• Genymotionの場合受け取れない。
–細工をすれば可能
– http://forum.xda-developers.com/showthread.php?t=2528952
• ARM Translation Installer v1.1
• Google Apps for Android をOSのバージョンに合わせて入れる
Google Cloud Messaging を有効にする
• Google Cloud Console Web でプロジェクト作成
– https://console.developers.google.com/project
• Google Cloud Messaging for Androidを有効にする
• APIキーを発行する
Mobile Services にAPIキーを入力する
• APIキーをGCMに設定する
アプリケーションにプッシュ通知を追加する
• ここらへんから日本語が古い
• Android SDKからダウンロード
– Google APIs
– Google Play services
• ビルドのバージョンを合わせる。二つのファイルを合わせること
– gradle.build
– AndroidManifest.xml
アプリケーションにプッシュ通知を追加する
• コードを修正する
– uses-permissionを追加
• アプリ名を合わせる
– receiver 登録
• アプリ名を合わせる
– build.gradle に play services-baseを追加
– Activity に SENDER_IDをプロジェクト番号で追加
– MobileServiceClientをstaticにする
アプリケーションにプッシュ通知を追加する
• MyHandlerを追加
• サーバーのInsertを修正
今日の予定
50
モバイルサービスを使ってみるモバイルサービスとは
チャットアプリ開発
ユーザーの動向を知りたいMobile Engagement
モバイルサービスの今後Mobile App となにが違うの?
Mobile Engagement
51
ユーザーの使用状況を把握できる
• リアルタイムに使用状況がわかる
• ユーザー数など統計がとれる
キャンペーンが打てる
• 広告やキャンペーンの通知をプッシュ配信できる
• 結果を確認できる
その他
• クラッシュやエラー解析
• まだ出たばかりでよくわからない
• プレビュー申込が必要
• とにかくスゴイ安いので使ってみてください
Getting Started• とりあえずポータルで作成
• チュートリアルをやってみる– http://azure.microsoft.com/ja-jp/documentation/articles/mobile-
engagement-android-get-started/
– 長いので Connecting your app to the Mobile Engagement backend の部分だけ
アプリを配布する
• DeployGateを使用する
• Google Play ではなくても配布可能
• 自己署名のアプリなので設定の変更が必要
アプリ配布方法
• Android Studio で Generate Signed APK で APK 作成
• できあがったAPKをDeployGateにドラッグアンドドロップ
アプリインストール方法
• 共有リンクを作成する
• DeployGateをインストールする
• 自作したapkをインストールする
適当に文字をうっててください。目標はみんなで100行!!
サーバースクリプトの修正
function read(query, user, request) {
// query.take(1000);// request.execute();
var countSql = "SELECT COUNT(Id) count FROM TodoItem";mssql.query(countSql, {
success: function(results) {var skipCount = results[0].count - 50
query.orderBy('__createdAt').skip(skipCount).take(50);request.execute();
}});
}
今日の予定
61
モバイルサービスを使ってみるモバイルサービスとは
チャットアプリ開発
ユーザーの動向を知りたいMobile Engagement
モバイルサービスの今後Mobile App となにが違うの?
モバイルサービスの今後
62
Mobile Appとは
• モバイルサービスの新バージョン
• アプリ サービスの一つ
• 他のアプリサービスとの連携が簡単
• 移行途中なのでモバイルサービスであった機能が無い
– QuickStart の Android版
– JavaScript バックエンド
• 料金体系が異なる
モバイルサービスなくなっちゃうの?
• 今後も継続してサポートすることが宣言されている
– http://azure.microsoft.com/en-us/documentation/articles/app-service-changes-existing-services/
64
すぐに移行すべき?
• .NET バックエンドを使っている人は移行が簡単なので、可能であれば移行した方が良い
–ただし、料金には気をつけて!
• JavaScript バックエンドの人はまだ対応されていないので様子見
65
中の人が鋭意対応中
66
料金、お高いんでしょ?
67
無料から使えます
http://azure.microsoft.com/ja-jp/pricing/details/mobile-services/
Mobile Services
Notification Hubs
Mobile Services Notification Hubs
Windows ストア
iOS
Android
Xamarin
PhoneGap
Sencha
Windows Phone
iOS
Android
HTML 5/JS
クライアント送信データ転送(Outbound data transfer) 料金について• Mobile Services、Notification Hubsはサービス料金に含まれる• 言い換えれば、http://azure.microsoft.com/ja-
jp/pricing/details/data-transfers/ の料金は別途かからない
Included
Included
Includedincluded(*1)
*1) 同じリージョン内であれば、そもそも無料
モバイルサービスの使用条件について
• 例えば、Standardレベルで500GBを超えてしまった場合、サービスは即使用出来なくなる
• 送信データが超えそうになったらユニット数を上げれば良い
告知
70
Global Azure BOOTCAMP 2015
71
Global Azure BOOTCAMP 2015
• 日時 4/25(土)
• 場所:東京(gloopsさん)
• 学生向け
– https://jazug.doorkeeper.jp/events/22795
• 一般向け
– https://jazug.doorkeeper.jp/events/22782
72
ご清聴ありがとうございました
73