Microsoft Azure
で始める
サクサク
Android開発
JAZUG 青森
2015/03/07
山本 誠樹
2
自己紹介
Masaki YAMAMOTO
Twitter:@nnasaki
Microsoft MVP
for Microsoft
Azure
今日はAndroid
アプリ開発をします
必要なもの
• Azure サブスクリプション
• Android Studio
– NOT Eclipse
• Genymotion
– 付属のエミュレーターは遅いのでオススメで
きません!
– 実機で行うのが一番良い
– Push通知が受け取れなかったりするので注意
スマホアプリを作りたい
モバイルサービスとは
チャットアプリ開発
ユーザーの動向を知りたい
Mobile Engagement
サービスを外部に公開したい
API Management
モバイルサービスとは
プッシュ通知
数分以内に数百万台
タグ付け(合計1億件以上)
マルチプラットフォームSDK
iOS、Android、Windows、HTML5
認証連携
Facebook、Twitter、Google、Active Directory
バックエンド
C#、 NodeJS
http://azure.microsoft.com/ja-jp/services/mobile-services/
DEMO
ポータルからアプリを即実行
モバイルサービスの
仕組み
http://channel9.msdn.com/Events/de-code/2014/SV-007
http://channel9.msdn.com/Events/de-code/2014/SV-007
今日使うところ
SDKがGithubにある!
https://github.com/Azure/azure-
mobile-services
バッグエンドが選べる
手軽なのはJavaScript(NodeJS)
Gitリポジトリで開発
オフラインデータ同期
無料で遊べる
今日話さないこと
オフラインデータ同期
http://channel9.msdn.com/Events/de-code/2014/SV-007
http://channel9.msdn.com/Events/de-code/2014/SV-007
クライアントはSQLiteまたは
CoreDataがデータを保持
同じデータを複数の人が更新した
場合、競合を検出できる
サンプルはGithubで
https://github.com/Azure/mobile
-services-
samples/tree/master/TodoOffline
でもお高いんで
しょ?
無料
http://azure.microsoft.com/ja-jp/pricing/details/mobile-services/
http://azure.microsoft.com/ja-jp/pricing/details/sql-database/
ちょろっと遊ぶだけなら無料
無料で足りなくなったら、大体
2000円程度。(2015/3月時点)
モバイルサービスが約1500円/月
SQL Databaseが約600円/月
送信データ転送量込みです。
JOIN NOW!
http://azure.microsoft.com/ja-jp/pricing/free-trial/
無料枠あります
http://azure.microsoft.com/ja-jp/pricing/free-trial/
月々約15000円
http://azure.microsoft.com/ja-jp/pricing/free-trial/
スマホアプリを作りたい
モバイルサービスとは
チャットアプリ開発
ユーザーの動向を知りたい
Mobile Engagement
サービスを外部に公開したい
API Management
チャットアプリ開発
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にアップしてますので
確認してください
https://github.com/nnasaki/JAZUG
-
AOMORI/pulls?q=is%3Apr+is%3Acl
osed
Githubにプロジェクト登録
• git追加
• .gitignore更新
• githubへプッシュ
• https://github.com/nnasaki/JAZUG-
AOMORI
レイアウト変更
• チェックボックス消す
• 発言を下に持ってくる
– 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で情報取得を
追加
それっぽくなってきた
サーバースクリプト修正なし
• 名前のカラムを追加したのに何故?
サーバースクリプト修正なし
• 名前のカラムを追加したのに何故?
動的スキーマ
アプリを配布する
• DeployGateを使用する
• Google Play ではなくても配布可能
• 自己署名のアプリなので設定の変更が必
要
アプリ配布方法
• Android Studio で Generate Signed
APK で APK 作成
• できあがったAPKをDeployGateにドラッ
グアンドドロップ
アプリインストール方法
• 共有リンクを作成する
• DeployGateをインストールする
• 自作したapkをインストールする
適当に文字をうっててください。
目標はみんなで100行!!
名無し防止
• 名前のテキストのlengthをチェック
• コメントのlengthをチェック
• toast表示
これで解決したかと思いきや…
_人人人人人人人人人_
> 結局届かない! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
×
スマホアプリを作りたい
モバイルサービスとは
チャットアプリ開発
ユーザーの動向を知りたい
Mobile Engagement
サービスを外部に公開したい
API Management
Mobile Engagementとは
Getting Started
• とりあえずポータルで作成
ユーザーの使用状況を把握でき
る
• リアルタイムに使用状況がわかる
• ユーザー数など統計がとれる
キャンペーンが打てる
• 広告やキャンペーンの通知をプッシュ配
信できる
• 結果を確認できる
その他
• クラッシュやエラー解析
• まだ出たばかりでよくわからない
• プレビュー申込が必要
• とにかくスゴイ安いので使ってみてくだ
さい
Getting Started
• とりあえずポータルで作成
• チュートリアルをやってみる
– http://azure.microsoft.com/ja-
jp/documentation/articles/mobile-engagement-
android-get-started/
– 長いので Connecting your app to the Mobile
Engagement backend の部分だけ
スマホアプリを作りたい
モバイルサービスとは
チャットアプリ開発
ユーザーの動向を知りたい
Mobile Engagement
サービスを外部に公開したい
API Management
サービスを外部に公開したい
どういうこと?
たとえばサービスがめっちゃ成功したとき
APIをフリーミアムで公開したい
つまりどういうこと?
Twitterみたいなことしたいとき
http://azure.microsoft.com/ja-jp/services/api-management/
http://azure.microsoft.com/ja-jp/services/api-management/
モバイル
サービス
YOU
アクセス制御
自動ドキュメント作成
キャッシュ
マルチリージョン
参考リンク集
公式リソース
Microsoft Azure Mobile Services
http://azure.microsoft.com/ja-jp/services/mobile-services/
チュートリアル
http://azure.microsoft.com/ja-jp/develop/mobile/
料金表
http://azure.microsoft.com/ja-jp/pricing/details/mobile-
services/
Microsoft Azure Japan Team Blog (ブログ)
http://blogs.msdn.com/b/windowsazurej/
Azure Mobile Services の Node バックエンドでの Socket.IO の使用
方法
http://blogs.msdn.com/b/windowsazurej/archive/2014/09/02/blo
g-how-to-use-socket-io-with-azure-mobile-service-node-
backend.aspx
フォローアップ情報
github azure-mobile-services
https://github.com/Azure/azure-mobile-services
github mobile-services-samples
https://github.com/Azure/mobile-services-samples/
パワフル モバイル アプリ開発 ~ 最新 Microsoft Azure Mobile
Services をフル活用しよう! ~ | de:code 2014 | Channel 9
http://channel9.msdn.com/Events/de-code/2014/SV-007
Shotaro Suzuki‘s Blog(MSエバンジェリストのBlog)
http://blogs.msdn.com/b/shosuz/
S/N Ratio (by SATO Naoki) | Microsoft Azure and more…
http://satonaoki.wordpress.com/
私のブログや記事
nnasakiのブログ(近々移転するかも)
http://nnasaki.hatenablog.com/
Windows Azureモバイルサービスの基礎 - 技術評論社
http://gihyo.jp/dev/serial/01/wams/0001
Windows Azureモバイルサービスで作る簡単スマートフォンア
プリ - Build Insider
http://www.buildinsider.net/web/azuremobilesvc
ユーザーグループ
Japan Azure User Group(JAZUG)
http://r.jazug.jp/
Japan Azure User Group | Doorkeeper
http://jazug.doorkeeper.jp/
facebook page
https://www.facebook.com/jazug.jp
facebook group
https://www.facebook.com/groups/jazug/
スマホアプリを作りたい
モバイルサービスとは
チャットアプリ開発
ユーザーの動向を知りたい
Mobile Engagement
サービスを外部に公開したい
API Management
スマホアプリを作りたい
モバイルサービスとは
チャットアプリ開発
ユーザーの動向を知りたい
Mobile Engagement
サービスを外部に公開したい
API Management
ちょっと戻っ
てみよう
サーバースクリプト修正
• モバイルサービスのデフォルトは50行ま
でしか返却しない
• チャットなので割り切って最新50行だけ
取るようにする
• ページングはそのうち実装
サーバースクリプト修正
• カウントだけを取得する術が無い
– SQLを直接書く
• スキップして最新50だけ取る
プッシュ通知
ここからはGithubにまだ置いていません。
2015/4/4 の JAZUG 福島で話します。
https://jazug.doorkeeper.jp/events/21078
プッシュ通知
• 基本チュートリアルをなぞっていきますが日
本語訳が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=2528
952
• ARM Translation Installer v1.1
• Google Apps for Android をOSのバー
ジョンに合わせて入れる
Google Cloud Messaging を有効
にする
• Google Cloud Console Web でプロジェ
クト作成
– https://console.developers.google.com/p
roject
• 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を修正

Microsoft Azure で始める サクサク Android開発 in jazug青森