ゼロから始めるモバイルアプリ開発

AWS Mobile Hubハンズオン
【本編】
2016年01月16日 JAWS-UG沖縄
西島 幸一郎 @k_nishijima
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
ゼロから始めるモバイルアプリ開発 / 

AWS Mobile Hubハンズオン
にご参加(表明)いただき
ありがとうございます!
2
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
こちらの資料は「本編」です。
「事前準備編」が完了していることを
前提としています。
終わってない方は、お近くの
サポートスタッフにお声がけください。
3
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
勿論分からないところや
詰まった所があれば、
お気軽にご質問ください!
4
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
Twitterのハッシュタグ
#jawsug
みんな見てるので

反応が早いです!
5
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
本資料は
http://bit.ly/handson201601-main
よりダウンロード可能です。
GitHubリポジトリはこちら。
https://github.com/jaws-ug/hands-on/
tree/master/Mobile-Hub
6
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
あんた誰?
7
西島 幸一郎 / にしじま こういちろう

アールスリーインスティテュート ソリューションアーキテクト
https://www.r3it.com

JAWS−UG沖縄のコアメンバー
AWSサムライ2013/2014 2年連続拝命 

当資料について、ご質問などあればFacebook/Twitterなどで
お気軽にお問い合わせください!
@k_nishijima
nishijima.koichiro
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
アールスリーインスティテュート
8
大阪の業務系システム開発会社
AWSとkintoneで「ハイスピードSI」
西島は沖縄から100%リモートワーク
【コミュニティにフルコミットする】と

宣言している珍しい会社
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
ハンズオンの流れ
9
開発環境
の準備
Facebook
Google
などの準備
AWS
Mobile
Hub
色々
遊ぶ!
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
10
開発環境
の準備
Facebook
Google
などの準備
AWS
Mobile
Hub
色々
遊ぶ!
こちらが今回の本編です!
ハンズオンの流れ
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
11
✦ 当資料はAndroid向けかつMacで作成されました
✦ ただしWindowsでもほぼ同じ、iOS向けもかなり似たような感じだと思います。
✦ MobileHub自体はiOSおよびWindowsでの開発もサポートしています。
✦ 今回は iOS向けではなくAndroid向け資料ですが、きっと将来拡張される予定で
す(プルリクエストお待ちしております!)
✦ Windows環境向けのサポートも同じく・・・

(当方は窓環境が全く無いのでサポートできません・・・)
ご注意!
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
12
✦一旦簡単にアプリを作って動かしてみる
✦Cloud Logicを使ってみる
✦更にその先へ!
Mobile Hubハンズオンの流れ
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
13
✦ http://aws.amazon.com/jp/

より右上の「コンソールへサインイン」をクリック。
✦ MFAを設定してある人はそれぞれのtokenを使ってください。
AWSコンソールへサインイン
2016年お正月記念
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
14
✦ モバイルサービスの中の

「Mobile Hub」をクリック
サービス一覧
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
15
✦ こんな画面になるので、

各項目の説明を見つつ

「Get started」をクリック。
AWS Mobile Hub Get started!
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
16
✦ プロジェクト名を

「handson-20160116」と入力し、
「Create project」をクリック
プロジェクトの作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
17
✦ こんな画面になります。

ここから、プロジェクトの各機能要素を
設定します。
✦ 左上の「User Sign-in」をクリックする
ところから、はじめましょう。
プロジェクトの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
18
✦ ユーザー認証を組込むかどうかの選択です。
✦ サインインしなくてもアプリが使えるよう
にするなら「optional」を、サインイン必
須とするなら「required」を選択します。
✦ ここではoptionalを選択します。
User Sign-inの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
19
✦ その下のユーザ認証プロバイダは、現時
点(2016年1月)Facebookと
Customしか選択できません。
✦ ここではFacebookを選択し、AppIDを
入力します。
✦ 事前準備編で作成したAppIDを入力して
「Save changes」をクリックします。
User Sign-inの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
20
✦ ひとつ設定をすると、このように色が変わります。
このような感じでどんどん設定していきましょう。
✦ 次は右隣の「Push Notifications」をクリック
します。
User Sign-inの設定完了
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
21
✦ プッシュ通知を利用する場合「Enable push」
を選択します。
✦ 事前準備編のGoogle Cloud
Messaging(GCM)で作成したAPI Keyを入力
します。
✦ 「Sender ID」には、Google Developers
Console のダッシュボードに表示されている
「プロジェクト番号」を入力します。
Push Notificationsの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
22
✦ いま作成されるのは、アプリを入れた全デ
バイスにクラウド側から一斉に通知するト
ピックになります。
✦ 「Save changes」をクリックして保存し
ます。
Push Notificationsの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
23
✦ ちなみにこのボタン、設定外終わった項目
では右のようになります。
✦ 「Configure more features」で各設定
一覧に戻り、「Build your app」でビル
ド画面に進みます。
各設定画面のボタン
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
24
✦ アプリが利用する画像ファイルなどを外部ク
ラウドストレージにおいて、アプリに対して
配信する機能の設定です。
✦ 「Single location」を選択するとS3から
直接ダウンロード、「Global CDN」を選択
するとCloudFrontからファイルを配信しま
す。
✦ ここではSingle locationを選択します。
App Content Deliveryの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
25
✦ シンプル、スケーラブルなクラウドストレージであり、

AWSの根幹をなすサービスのひとつ
✦ イレブンナイン(99.999999999%)の堅牢性と、99.99%の可用性
✦ httpsでデータのやり取りが出来るので、HTML等を置いて静的なWeb
サーバの代わりに使える
✦ 勿論アプリのデータ保管場所としても使える
✦ デフォルト非公開状態になるが、間違って機密データを

公開状態に設定しないように!
✦ 詳細:https://aws.amazon.com/jp/cloudfront/details/
ちょっと待った!Amazon Simple Storage Service
(Amazon S3)(えすすりー)って何?
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
26
✦ 全世界にエッジロケーションを持つコンテンツ配信ネットワーク
(CDN)
✦ 日本にも2箇所エッジロケーションがあり、ネットワーク的に

近い方からコンテンツ配信される
✦ 入れておくと大元のサーバまでアクセスが来ないので、

Yahoo砲にも余裕で耐えられる様になる
✦ 大元のコンテンツ配信サーバは、オンプレミスでも普通に使える
✦ 最近はWAFとも統合され、ますます進化
✦ 詳細:https://aws.amazon.com/jp/cloudfront/details/
ちょっと待った!
Amazon CloudFront(くらうどふろんと)って何?
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
27
✦ これらのファイルの実体はS3の

「handson-contentdelivery-
mobilehub-数字」というようなバケット名
でパブリック状態で置かれています(URLが
分かれば誰でもダウンロードできる状態)。
✦ アクセス制御が必要なコンテンツの配信には、
相応の作りこみが必要になります。
App Content Deliveryの設定

ご注意ください!
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
28
✦ どんどん色が変わってきました!
✦ あと2つ、User Data Storage と

App Analyticsを設定してみましょう。
ここまでの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
29
✦ ユーザに紐づく情報をハッシュマップのような形
か、S3上にファイルとしてクラウド側に保存でき
るようになります。
✦ ユーザ認証を利用しない場合でも、匿名ユーザ扱
いでCognitoにハッシュマップを保存可能です。
✦ S3上にファイルをプライベートな状態で保存する
には、ユーザ認証が必要になります。
✦ ここでは「Store user data」を選択し「Save
changes」をクリックして保存します。
User Data Storageの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
30
✦ 一時的なAWS認証情報の配布及び管理、モバイル向けには

ユーザID管理とデータ同期サービスを提供
✦ モバイル向けにオフライン機能
✦ デバイス間での情報の同期をサポート
✦ 実質2つのサービス(Cognito IdentityとCognito Sync)が

含まれているので若干混乱を招くので注意
✦ 詳細:http://docs.aws.amazon.com/cognito/devguide/
ちょっと待った!
Amazon Cognito(こぐにーと)って何?
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
31
✦ アプリの利用動向をレポーティングするツー
ル「Mobile Analytics」を利用するかど
うかの設定です。
✦ 日毎のアクティブユーザ数(DAU)をはじ
め、様々な指標を確認することが出来ます。
ここでは利用する方を選択しています。
✦ 「Save changes」をクリックして保存し
ます。
App Analyticsの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
32
✦ 残り1つが気になりますが、

ここで一旦左メニューの上から2番目
「Build」アイコンをクリックして、

ソースをビルドしてみます。
ここまでの設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
33
✦ iOSまたはAndroidが選択できますが、

ここではAndroidをクリックします。
✦ クリックした瞬間ソースがビルドされますの
で、しばらく待ちます。
Buildプラットフォームの選択
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
34
✦ 「Download Android source package」
のリンクが現れたら、クリックしてソースの
ZIPファイルをダウンロードします。
ソースダウンロード
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
35
✦ まずダウンロードしたZIPファイル
を解凍します。
✦ ここから先はAndroid Studioで

作業を行います。
Android Studioでアプリをビルド
この辺で
ひとやすみ
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
37
✦ USBケーブルで端末とPCを接続します。
✦ 端末側に「USBデバッグが接続されまし
た」と表示されればOKです。
✦ 表示されない人は、周りの方やサポート
スタッフにお声がけください。
実機の端末で開発する場合
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
38
✦ Android Studioを起動して、

「Import Project (Eclipse…」
を選択。
✦ フォルダは先程解凍したフォルダの
「MySampleApp」を選択。
Android Studioでアプリをビルド
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
39
✦ 例えばこのようなエラー。
✦ 「読んで適切に対処しましょう」としか言い
ようがありません(^^;)
✦ 右のエラーは「Install Repository and
sync project」をクリックすることで解決
します。
✦ プロジェクト読み込み直後のフルビルドは、
ネットワークが安定していないと厳しいこと
が多いと思います。
この時点で何かエラーが出たら
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
40
✦ メニューのRun -> Run ‘app’ を選択して実
行してみましょう。
✦ 「Choose a running device」側には、起
動していればエミュレーターと、接続してい
る実機が表示されているはずです。
✦ 「Launch emulator」側を選択すると、事
前に登録したAVDを指定してエミュレーター
を起動することが出来ます。
✦ どちらかを選択して「OK」をクリックしま
す。
アプリの実行
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
41
✦ エミュレーターの場合には、3-5分程度!待ちます。
エミュレーター上でOSが起動した後、アプリが自
動的に起動するまでしばらく待ってみてください。
✦ 左のような画面が出てきたら、アプリを操作するこ
とが出来るようになります。
✦ 開発中はアプリを終了しても、エミュレーターを終
了する必要はありません。
エミュレーターでのアプリの実行
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
42
✦ 実機での動作も、当然エミュレーターとほぼ同じ動
きになります。
✦ 各メニューを色々いじってみてください。例えば
「App Content Delivery」メニューでは、S3バ
ケットの中身を直接見ることが出来ます。
実機でのアプリの実行
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
43
✦ エミュレーターでは動かない(と思われる)動作を
1つ試してみましょう。
✦ アプリのメニューから「Push Notifications」を
タップしてください。
push通知の実行
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
44
✦ push通知の概要の画面下部の
「Demo Push Notifications」を
タップし、「Recive Push
Notifications」にチェックが入っ
ていることを確認します。
push通知の実行
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
45
✦ ブラウザに戻り、Mobile Hubの左メニューの
一番下のアイコン「Resources」をクリック
します。
✦ ここに、Mobile Hubが自動的に作成した
AWS上のリソースが一覧されています。
✦ Amazon SNS Topicsの中の
「handson_alldevices_…」をクリックして
ください。
Mobile Hubが作成したAWS上のリソース
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
46
✦ 自動的に作成されたSNSトピックの詳細
が開きます。
✦ Regionの項目を見ると、us-east-1
リージョンに作成されていることが分か
ります。
✦ 左上の青いボタン「Publish to topic」
をクリックしてください。
SNSトピック詳細
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
47
✦ Message部分に適当に文章を入力し
て、「Publish message」をクリッ
クすると・・・
SNSトピックからメッセージ送信
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
48
✦ 簡単に実機側でクラウド側からの通知を

受け取れることが確認できると思います。
実機側で確認
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
49
✦ ブラウザに戻り、別のResourceを見てみま
しょう。
✦ 左上にあるAmazon Cognito Identity
Poolsの中の「handson_MOBILEHUB_…」
をクリックしてください。
クラウド側に保存されているユーザ情報
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
50
✦ ここではUnauthenticated
ユーザが2人いることが分かり
ます。
✦ 他にも、今月9回syncしてる
ことやストレージのサイズが
表示されています。
Cognitoのダッシュボード
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
51
✦ ここではUnauthenticated
(いわゆる匿名ユーザのこと)
ユーザが2人いることが分かり
ます。
✦ 他にも、今月9回syncしてる
ことやストレージのサイズが
表示されています。
Cognitoのダッシュボード
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
52
✦ 左のメニューでIdentity browserを
クリックします。
✦ 匿名ユーザのIDが出てるので、それを
クリックしてみます。
CognitoのIdentity browser
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
53
✦ このユーザが持っているDatasetの一覧が出てくる
ので、”user_settings”をクリックしてみます。
Cognitoが保存しているdataset
✦ key=valueの形式でデータが保存され
ているのが見えると思います。
✦ このような形で、クラウド側にデータ
が保存され、閲覧したり書き換えたり
することが可能となっています。
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
54
✦ 今度はアプリ側に戻ってみてください。
✦ App Analyticsのメニューも試してみましょう。
「Demo App Analytics」をタップし、左下の
「CUSTOM」ボタンをクリックしてみます。
✦ これは、アプリ側からクラウド側にカスタムイベン
トを発行した様子です。
✦ 何人のユーザがアプリをダウンロードしたか、どの
ボタンをクリックしたか、などの統計レポートがイ
ベントごとに自動的に作成されます。
App Analyticsの実行
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
55
✦ 色々いじったら、アプリを一旦終了しておきます。
✦ ブラウザに戻って、Mobile Hubページの左下のAnalytics
をクリックします。
Mobile Analyticsのレポート
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
56
✦ 今は色々出て「いない」!と思います。

(レポートはリアルタイムではないので(^_^;)
✦ 30分もしないうちに、出てくると思います。
✦ 以下参考までに、どんなレポートが見えるのか
貼っておきます。
Mobile Analyticsのレポート
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
57
✦ アクティブユーザーはこんな感じ
✦ マンスリーとデイリーが出てます
Mobile Analyticsのレポート
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
58
✦ 先ほど送ったカスタムイベントの例
✦ 項目ごと、もしくはまとめてグラフ化さ
れます。
✦ 上司に「実際アプリはどこがどのくらい
使われてるんだ?」って詰められた経験
のある方に、朗報ですw
Mobile Analyticsのレポート
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
59
✦ 今回は触れませんが、「Test」というメニューをクリックする
と「AWS Device Farm」というサービスにリンクします。
✦ これを使うと、クラウド上で数あるAndroid / iOS端末を

選んで、テストを走らせることが出来ます。
✦ 詳細:http://aws.amazon.com/jp/device-farm/
クラウドでテストも出来る
この辺で
ひとやすみ
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
61
✦ Cloud Logicとは? 

= AWS Lambda をアプリから

直接呼び出せる機能
✦ Mobile Hubのメニューから右下
のCloud Logicをクリック
お楽しみはこれからだ!
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
62
✦ クラウド上(AWSが運用管理するサーバ上)で、

自分の書いたコードが実行されるサービス
✦ 言語は現在のところNode.js (JavaScript)、Python、および
Java8をサポート
✦ 「サーバレスアーキテクチャ」はマーケティング用語なので、

実際にはマネージドサービスの上で動く仕組みなんだ、

というのを理解しておくと良いと思います
✦ 詳細:https://aws.amazon.com/jp/lambda/details/
ちょっと待った!
AWS Lambda(らむだ)って何?
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
63
✦ 「Enable Logic」を選択。
✦ 「Create a new function」をク
リックすると、ラムダ関数作成ウィ
ザードが始まってしまうので、グッ
とこらえて次頁に進みましょう。
Cloud Logic の設定
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
64
✦ コードはNode.jsです。ソースコードはGitHubにあります。

https://github.com/jaws-ug/hands-on/tree/master/
Mobile-Hub
✦ サンプルとして以下を用意しました。

以下よりZIPファイルをダウンロードしてください。
✦ Twitterに投稿する
✦ 天気予報を取得する
今回のハンズオンで
用意したLambda関数について
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
65
✦ 関数を作るリージョンを選択
✦ 関数の名前を決めて
✦ ランタイム(実行環境)を選択
✦ コードをフォームで書くもしくはファイルでアップロードする
✦ ロール(実行権限)を設定して
✦ 利用するメモリ量を設定
(全体共通)
Lambda関数のデプロイ手順
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
66
✦ 本来はご自分のTwitterアカウントで https://apps.twitter.com/
にアクセスして「Create New App」して、consumer_key・
consumer_secretなどを取得しておく必要があります。
✦ 本lambdaTweet.zipには @handson201601 アカウントの
consumer_keyなどが予め含まれています

「悪用厳禁!」
Lambdaサンプル
Twitter投稿:事前準備
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
67
✦ では先程の画面で

「Create a new function」を

クリックします。
✦ 別ウィンドウで開くので、

ポップアップ禁止設定をしてある

ブラウザは注意。
Cloud Logic の設定画面から
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
68
✦ MobileHubの仕様で、

現在のところバージニアにある

関数しか選択できないので、

右上のリージョン選択が

「バージニア北部」

となっているかを確認します

(なって無ければ「バージニア北部」を選択して変更)
Lambdaを作るリージョンの確認
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
69
✦ ブループリントには色々と

興味深いものがあるが、

今回は「Skip」をクリック
Lambda関数の作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
70
✦ Nameは「lambdaTweet」
✦ RuntimeはNode.js
✦ Code entry typeは

「Upload a .ZIP file」

を選択し、

「Upload」をクリック
Lambda関数の作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
71
✦ Handlerはそのまま
「index.handler」
✦ RoleはCreate new roleの中の

「Basic execution role」を

選ぶと、別ウィンドウが開く

(初めての設定の場合)
Lambda関数の作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
72
✦ 2回目以降は

Use existing roleの中から
「lambda_basic_execution」 を
選択するだけ
Lambda関数の作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
73
✦ 適当にロール名をつけてくれるので、

右下の「許可」をクリックします。
✦ これはこのLambda関数が実行されるときに利用する
権限の設定になるので、例えばS3に書き込むとか、
EC2インスタンスを起動するとか、必要な場合には権
限を付与する必要があります。
✦ その場合は適当なロール名ではなくて、権限を表すロー
ル名を付けておかないと混乱するので注意。
IAM roleの作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
74
✦ 最後にメモリ使用量とタイムアウト
時間を設定します。
✦ 今回は恐らくデフォルトで良いが、
規模の大きいアプリケーションの
場合はこの辺りを調整する必要が
あります。
Lambda関数の作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
75
✦ 確認画面で「Create funciton」
をクリックすると・・・
Lambda関数の作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
76
✦ Lambda関数の完成!
✦ 以後の設定変更やソースの更
新はこのページから行います。
Lambda関数の作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
77
✦ MobileHubのタブに戻って、リロードアイコン
(Function nameの右隣)をクリックすると、
いま作成した関数が出てくるのでチェックを入れ
ます。
✦ 出てこなければ、8ページほど戻って「Lambda
を作るリージョンの確認」を再度確認。
✦ 「Save changes」-> 左メニューの「Build」
で、再度ソースをビルドして、ダウンロードしま
す。
Lambda関数の作成
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
78
✦ ZIPファイルを解凍して、ソースを上書き
✦ Android Studioを起動して、

「Import Project (Eclipse…」を選択。
✦ フォルダは先程上書きしたフォルダの
「MySampleApp」を選択します。
✦ メニューのRun -> Run ‘app’ を選択して
実行してください。
Android Studioで再度アプリをビルド
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
79
✦ 一番下にメニューが増えてる!
✦ クリックして先に進み、Cloud Logicを
実行してみましょう。
実機でのアプリの実行
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
80
✦ FUNCTIONに先ほどのLambda関数名
「lambdaTweet」
✦ REQUESTにJSONで

「{“tweet”: “投稿したいメッセージ”}」
✦ 最後に「INVOKE」をクリックすると・・・
✦ see https://twitter.com/handson201601
実機でのアプリの実行
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
81
✦ Lambdaの実行時ログはどこに出るの?
✦ CloudWatch -> ログ -> 関数名のロググループ
✦ Lambda関数の更新は?
✦ ZIPを作りなおして再度アップロード後、「Saveボタン」
✦ MobileHubが生成したソースの更新はAndroidStudioでどうやる?
✦ ディレクトリごと上書きして、「Import Project」が手っ取り早い
どこかで上手く行かなかった場合
その他もろもろのFAQ
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
82
✦ 関数名を「lambdaWeather」とする
✦ ダウンロードしたZIPファイルをUpload
✦ Roleは先ほど作った「lambda_basic_execution」を選択
✦ Lambda関数が出来たら、MobileHubのタブに戻って、リロードアイコン
✦ 「lambdaWeather」にチェックを入れて、「Save changes」-> 左メニューの
「Build」で、再度ソースをビルドして、ダウンロード、上書きしておく
✦ Android StudioでプロジェクトをImport、Runで実行
Lambdaサンプル
天気予報を取得:手順はほぼ一緒
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
83
✦ FUNCTIONに「lambdaWeather」
✦ REQUESTにJSONで

「{“id”: “数字”}」と入力します。
✦ 数字は http://weather.yahoo.co.jp/weather/rss/ 

の警報・注意報「以外」を参照してください。
✦ 最後に「INVOKE」をクリック!
実機で実行
更にその先へ
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
85
✦進む前に、再度現状の確認
✦実案件で使うにはどうすればいい?
✦自動生成されたソースコードの解析
更にその先へ
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
86
✦ 現在のMobile Hubは

「AWSのリソース生成ウィザード」+

「生成されたリソースにアクセスする

 サンプルソースコード自動生成ツール」

と見ることが出来ます。
現状の確認
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
87
✦ Mobile Hubの左メニューの一番下のアイコン
「Resources」をクリックします。
✦ ここに、Mobile Hubが自動的に作成した
AWS上のリソースが一覧されています。
Mobile Hubが作成したAWS上のリソース
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
88
✦ ここまでの作業は、全て無料枠の範囲内で収まる
はずですが(頑張って行っても数百円程度)、

心配の方はこのリソースを全てクリックして行っ
て、削除しておくと良いでしょう。
完全無料で利用したい場合
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
89
✦ アプリ側でGUIを作りこむ
✦ デバイスから情報を取得する部分(GPSとか)
も作る必要あり
✦ サーバ側で必要なロジック

(主にデータの読み書き)を作りこむ
実案件で使うには?
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
90
✦ AWS部分はインフラ担当に

「こんな感じで作ったからよろしくね!」
✦ アプリ部分はアプリ担当に

「これ参考によろしくね!」
実案件で使うには?
そうそう上手く
逃げられるはずがない
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
92
✦ この先はほんの少しだけJavaの知識が必要になります
✦ 「オレ無理そう」というかたは、

アプリをいじって遊んでましょう(^^)
✦ ただし、エンジニアと共通言語を持つという意味では、

ちらっと見ておくと良いかと思います。
ここから少しだけ
自動生成されたソースコードの解析
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
93
✦ Android Studioを起動すると今まで
開いていたプロジェクトが開くはず。
✦ 左上の「1: Project」をクリックする
と、プロジェクトの一覧が見える。
✦ 「app」フォルダをクリックして中身を
どんどん開いていって、
「MainActivity」を探す。
Android Studioでアプリを見てみる
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
94
✦ パッケージ名は「com.mysampleapp」
✦ 起動時のActivityは「com.mysampleapp.MainActivity」
↑この2つは、事前準備編でFacebookApp側に設定したやつ!

これを変えたら、Facebook側の設定を変えるのをお忘れなく
ここで分かること
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
95
✦ com.mysampleapp.demo.UserSettingsを開く
✦ これはアプリの情報をクラウド側に

保存するときに使われるもの
✦ アプリ起動時にクラウド側から情報を取ってくるコー
ドになっている
✦ MainActivityの中で”syncUserSettings”を探し
てみると・・・
UserSettingsクラス
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
96
✦ com.mysampleapp.demo.CloudLogicDemoFrag
mentを開く
✦ これはCloud Logicの画面を開いたときに使われるもの
✦ DEFAULT_FUNCTION_NAME や
DEFAULT_REQUEST_CONTENTS をいじって保存す
ると、画面を開いた時のデフォルト値が変わる
✦ invokeFunctionメソッドがLambda呼出のコードにな
るので参考にすると良い
CloudLogicDemoFragmentクラス
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
97
その他もろもろ
✦ ContentDeliveryDemoFragmentはS3利用のサンプル
✦ MobileAnalyticsDemoFragmentは

Mobile Analytics利用のサンプル
✦ PushDemoFragmentクラスはSNS購読のサンプル
などなど
アプリ構築のテンプレートとして利用可能!
OKINAWA
AWS Mobile Hubハンズオン【本編】
http://jaws-ug.jp/
GitHub repositories https://github.com/jaws-ug/
お疲れ様でした
今回のハンズオンはここまで!
Any questions?
98
再掲:資料やソースコードはこちらから
https://github.com/jaws-ug/hands-on/tree/master/Mobile-Hub

ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編

  • 1.
  • 2.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン にご参加(表明)いただき ありがとうございます! 2
  • 3.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ こちらの資料は「本編」です。 「事前準備編」が完了していることを 前提としています。 終わってない方は、お近くの サポートスタッフにお声がけください。 3
  • 4.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 勿論分からないところや 詰まった所があれば、 お気軽にご質問ください! 4
  • 5.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ Twitterのハッシュタグ #jawsug みんな見てるので
 反応が早いです! 5
  • 6.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 本資料は http://bit.ly/handson201601-main よりダウンロード可能です。 GitHubリポジトリはこちら。 https://github.com/jaws-ug/hands-on/ tree/master/Mobile-Hub 6
  • 7.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ あんた誰? 7 西島 幸一郎 / にしじま こういちろう
 アールスリーインスティテュート ソリューションアーキテクト https://www.r3it.com
 JAWS−UG沖縄のコアメンバー AWSサムライ2013/2014 2年連続拝命 
 当資料について、ご質問などあればFacebook/Twitterなどで お気軽にお問い合わせください! @k_nishijima nishijima.koichiro
  • 8.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ アールスリーインスティテュート 8 大阪の業務系システム開発会社 AWSとkintoneで「ハイスピードSI」 西島は沖縄から100%リモートワーク 【コミュニティにフルコミットする】と
 宣言している珍しい会社
  • 9.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ ハンズオンの流れ 9 開発環境 の準備 Facebook Google などの準備 AWS Mobile Hub 色々 遊ぶ!
  • 10.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 10 開発環境 の準備 Facebook Google などの準備 AWS Mobile Hub 色々 遊ぶ! こちらが今回の本編です! ハンズオンの流れ
  • 11.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 11 ✦ 当資料はAndroid向けかつMacで作成されました ✦ ただしWindowsでもほぼ同じ、iOS向けもかなり似たような感じだと思います。 ✦ MobileHub自体はiOSおよびWindowsでの開発もサポートしています。 ✦ 今回は iOS向けではなくAndroid向け資料ですが、きっと将来拡張される予定で す(プルリクエストお待ちしております!) ✦ Windows環境向けのサポートも同じく・・・
 (当方は窓環境が全く無いのでサポートできません・・・) ご注意!
  • 12.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 12 ✦一旦簡単にアプリを作って動かしてみる ✦Cloud Logicを使ってみる ✦更にその先へ! Mobile Hubハンズオンの流れ
  • 13.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 13 ✦ http://aws.amazon.com/jp/
 より右上の「コンソールへサインイン」をクリック。 ✦ MFAを設定してある人はそれぞれのtokenを使ってください。 AWSコンソールへサインイン 2016年お正月記念
  • 14.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 14 ✦ モバイルサービスの中の
 「Mobile Hub」をクリック サービス一覧
  • 15.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 15 ✦ こんな画面になるので、
 各項目の説明を見つつ
 「Get started」をクリック。 AWS Mobile Hub Get started!
  • 16.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 16 ✦ プロジェクト名を
 「handson-20160116」と入力し、 「Create project」をクリック プロジェクトの作成
  • 17.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 17 ✦ こんな画面になります。
 ここから、プロジェクトの各機能要素を 設定します。 ✦ 左上の「User Sign-in」をクリックする ところから、はじめましょう。 プロジェクトの設定
  • 18.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 18 ✦ ユーザー認証を組込むかどうかの選択です。 ✦ サインインしなくてもアプリが使えるよう にするなら「optional」を、サインイン必 須とするなら「required」を選択します。 ✦ ここではoptionalを選択します。 User Sign-inの設定
  • 19.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 19 ✦ その下のユーザ認証プロバイダは、現時 点(2016年1月)Facebookと Customしか選択できません。 ✦ ここではFacebookを選択し、AppIDを 入力します。 ✦ 事前準備編で作成したAppIDを入力して 「Save changes」をクリックします。 User Sign-inの設定
  • 20.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 20 ✦ ひとつ設定をすると、このように色が変わります。 このような感じでどんどん設定していきましょう。 ✦ 次は右隣の「Push Notifications」をクリック します。 User Sign-inの設定完了
  • 21.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 21 ✦ プッシュ通知を利用する場合「Enable push」 を選択します。 ✦ 事前準備編のGoogle Cloud Messaging(GCM)で作成したAPI Keyを入力 します。 ✦ 「Sender ID」には、Google Developers Console のダッシュボードに表示されている 「プロジェクト番号」を入力します。 Push Notificationsの設定
  • 22.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 22 ✦ いま作成されるのは、アプリを入れた全デ バイスにクラウド側から一斉に通知するト ピックになります。 ✦ 「Save changes」をクリックして保存し ます。 Push Notificationsの設定
  • 23.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 23 ✦ ちなみにこのボタン、設定外終わった項目 では右のようになります。 ✦ 「Configure more features」で各設定 一覧に戻り、「Build your app」でビル ド画面に進みます。 各設定画面のボタン
  • 24.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 24 ✦ アプリが利用する画像ファイルなどを外部ク ラウドストレージにおいて、アプリに対して 配信する機能の設定です。 ✦ 「Single location」を選択するとS3から 直接ダウンロード、「Global CDN」を選択 するとCloudFrontからファイルを配信しま す。 ✦ ここではSingle locationを選択します。 App Content Deliveryの設定
  • 25.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 25 ✦ シンプル、スケーラブルなクラウドストレージであり、
 AWSの根幹をなすサービスのひとつ ✦ イレブンナイン(99.999999999%)の堅牢性と、99.99%の可用性 ✦ httpsでデータのやり取りが出来るので、HTML等を置いて静的なWeb サーバの代わりに使える ✦ 勿論アプリのデータ保管場所としても使える ✦ デフォルト非公開状態になるが、間違って機密データを
 公開状態に設定しないように! ✦ 詳細:https://aws.amazon.com/jp/cloudfront/details/ ちょっと待った!Amazon Simple Storage Service (Amazon S3)(えすすりー)って何?
  • 26.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 26 ✦ 全世界にエッジロケーションを持つコンテンツ配信ネットワーク (CDN) ✦ 日本にも2箇所エッジロケーションがあり、ネットワーク的に
 近い方からコンテンツ配信される ✦ 入れておくと大元のサーバまでアクセスが来ないので、
 Yahoo砲にも余裕で耐えられる様になる ✦ 大元のコンテンツ配信サーバは、オンプレミスでも普通に使える ✦ 最近はWAFとも統合され、ますます進化 ✦ 詳細:https://aws.amazon.com/jp/cloudfront/details/ ちょっと待った! Amazon CloudFront(くらうどふろんと)って何?
  • 27.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 27 ✦ これらのファイルの実体はS3の
 「handson-contentdelivery- mobilehub-数字」というようなバケット名 でパブリック状態で置かれています(URLが 分かれば誰でもダウンロードできる状態)。 ✦ アクセス制御が必要なコンテンツの配信には、 相応の作りこみが必要になります。 App Content Deliveryの設定
 ご注意ください!
  • 28.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 28 ✦ どんどん色が変わってきました! ✦ あと2つ、User Data Storage と
 App Analyticsを設定してみましょう。 ここまでの設定
  • 29.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 29 ✦ ユーザに紐づく情報をハッシュマップのような形 か、S3上にファイルとしてクラウド側に保存でき るようになります。 ✦ ユーザ認証を利用しない場合でも、匿名ユーザ扱 いでCognitoにハッシュマップを保存可能です。 ✦ S3上にファイルをプライベートな状態で保存する には、ユーザ認証が必要になります。 ✦ ここでは「Store user data」を選択し「Save changes」をクリックして保存します。 User Data Storageの設定
  • 30.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 30 ✦ 一時的なAWS認証情報の配布及び管理、モバイル向けには
 ユーザID管理とデータ同期サービスを提供 ✦ モバイル向けにオフライン機能 ✦ デバイス間での情報の同期をサポート ✦ 実質2つのサービス(Cognito IdentityとCognito Sync)が
 含まれているので若干混乱を招くので注意 ✦ 詳細:http://docs.aws.amazon.com/cognito/devguide/ ちょっと待った! Amazon Cognito(こぐにーと)って何?
  • 31.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 31 ✦ アプリの利用動向をレポーティングするツー ル「Mobile Analytics」を利用するかど うかの設定です。 ✦ 日毎のアクティブユーザ数(DAU)をはじ め、様々な指標を確認することが出来ます。 ここでは利用する方を選択しています。 ✦ 「Save changes」をクリックして保存し ます。 App Analyticsの設定
  • 32.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 32 ✦ 残り1つが気になりますが、
 ここで一旦左メニューの上から2番目 「Build」アイコンをクリックして、
 ソースをビルドしてみます。 ここまでの設定
  • 33.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 33 ✦ iOSまたはAndroidが選択できますが、
 ここではAndroidをクリックします。 ✦ クリックした瞬間ソースがビルドされますの で、しばらく待ちます。 Buildプラットフォームの選択
  • 34.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 34 ✦ 「Download Android source package」 のリンクが現れたら、クリックしてソースの ZIPファイルをダウンロードします。 ソースダウンロード
  • 35.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 35 ✦ まずダウンロードしたZIPファイル を解凍します。 ✦ ここから先はAndroid Studioで
 作業を行います。 Android Studioでアプリをビルド
  • 36.
  • 37.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 37 ✦ USBケーブルで端末とPCを接続します。 ✦ 端末側に「USBデバッグが接続されまし た」と表示されればOKです。 ✦ 表示されない人は、周りの方やサポート スタッフにお声がけください。 実機の端末で開発する場合
  • 38.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 38 ✦ Android Studioを起動して、
 「Import Project (Eclipse…」 を選択。 ✦ フォルダは先程解凍したフォルダの 「MySampleApp」を選択。 Android Studioでアプリをビルド
  • 39.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 39 ✦ 例えばこのようなエラー。 ✦ 「読んで適切に対処しましょう」としか言い ようがありません(^^;) ✦ 右のエラーは「Install Repository and sync project」をクリックすることで解決 します。 ✦ プロジェクト読み込み直後のフルビルドは、 ネットワークが安定していないと厳しいこと が多いと思います。 この時点で何かエラーが出たら
  • 40.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 40 ✦ メニューのRun -> Run ‘app’ を選択して実 行してみましょう。 ✦ 「Choose a running device」側には、起 動していればエミュレーターと、接続してい る実機が表示されているはずです。 ✦ 「Launch emulator」側を選択すると、事 前に登録したAVDを指定してエミュレーター を起動することが出来ます。 ✦ どちらかを選択して「OK」をクリックしま す。 アプリの実行
  • 41.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 41 ✦ エミュレーターの場合には、3-5分程度!待ちます。 エミュレーター上でOSが起動した後、アプリが自 動的に起動するまでしばらく待ってみてください。 ✦ 左のような画面が出てきたら、アプリを操作するこ とが出来るようになります。 ✦ 開発中はアプリを終了しても、エミュレーターを終 了する必要はありません。 エミュレーターでのアプリの実行
  • 42.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 42 ✦ 実機での動作も、当然エミュレーターとほぼ同じ動 きになります。 ✦ 各メニューを色々いじってみてください。例えば 「App Content Delivery」メニューでは、S3バ ケットの中身を直接見ることが出来ます。 実機でのアプリの実行
  • 43.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 43 ✦ エミュレーターでは動かない(と思われる)動作を 1つ試してみましょう。 ✦ アプリのメニューから「Push Notifications」を タップしてください。 push通知の実行
  • 44.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 44 ✦ push通知の概要の画面下部の 「Demo Push Notifications」を タップし、「Recive Push Notifications」にチェックが入っ ていることを確認します。 push通知の実行
  • 45.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 45 ✦ ブラウザに戻り、Mobile Hubの左メニューの 一番下のアイコン「Resources」をクリック します。 ✦ ここに、Mobile Hubが自動的に作成した AWS上のリソースが一覧されています。 ✦ Amazon SNS Topicsの中の 「handson_alldevices_…」をクリックして ください。 Mobile Hubが作成したAWS上のリソース
  • 46.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 46 ✦ 自動的に作成されたSNSトピックの詳細 が開きます。 ✦ Regionの項目を見ると、us-east-1 リージョンに作成されていることが分か ります。 ✦ 左上の青いボタン「Publish to topic」 をクリックしてください。 SNSトピック詳細
  • 47.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 47 ✦ Message部分に適当に文章を入力し て、「Publish message」をクリッ クすると・・・ SNSトピックからメッセージ送信
  • 48.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 48 ✦ 簡単に実機側でクラウド側からの通知を
 受け取れることが確認できると思います。 実機側で確認
  • 49.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 49 ✦ ブラウザに戻り、別のResourceを見てみま しょう。 ✦ 左上にあるAmazon Cognito Identity Poolsの中の「handson_MOBILEHUB_…」 をクリックしてください。 クラウド側に保存されているユーザ情報
  • 50.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 50 ✦ ここではUnauthenticated ユーザが2人いることが分かり ます。 ✦ 他にも、今月9回syncしてる ことやストレージのサイズが 表示されています。 Cognitoのダッシュボード
  • 51.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 51 ✦ ここではUnauthenticated (いわゆる匿名ユーザのこと) ユーザが2人いることが分かり ます。 ✦ 他にも、今月9回syncしてる ことやストレージのサイズが 表示されています。 Cognitoのダッシュボード
  • 52.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 52 ✦ 左のメニューでIdentity browserを クリックします。 ✦ 匿名ユーザのIDが出てるので、それを クリックしてみます。 CognitoのIdentity browser
  • 53.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 53 ✦ このユーザが持っているDatasetの一覧が出てくる ので、”user_settings”をクリックしてみます。 Cognitoが保存しているdataset ✦ key=valueの形式でデータが保存され ているのが見えると思います。 ✦ このような形で、クラウド側にデータ が保存され、閲覧したり書き換えたり することが可能となっています。
  • 54.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 54 ✦ 今度はアプリ側に戻ってみてください。 ✦ App Analyticsのメニューも試してみましょう。 「Demo App Analytics」をタップし、左下の 「CUSTOM」ボタンをクリックしてみます。 ✦ これは、アプリ側からクラウド側にカスタムイベン トを発行した様子です。 ✦ 何人のユーザがアプリをダウンロードしたか、どの ボタンをクリックしたか、などの統計レポートがイ ベントごとに自動的に作成されます。 App Analyticsの実行
  • 55.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 55 ✦ 色々いじったら、アプリを一旦終了しておきます。 ✦ ブラウザに戻って、Mobile Hubページの左下のAnalytics をクリックします。 Mobile Analyticsのレポート
  • 56.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 56 ✦ 今は色々出て「いない」!と思います。
 (レポートはリアルタイムではないので(^_^;) ✦ 30分もしないうちに、出てくると思います。 ✦ 以下参考までに、どんなレポートが見えるのか 貼っておきます。 Mobile Analyticsのレポート
  • 57.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 57 ✦ アクティブユーザーはこんな感じ ✦ マンスリーとデイリーが出てます Mobile Analyticsのレポート
  • 58.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 58 ✦ 先ほど送ったカスタムイベントの例 ✦ 項目ごと、もしくはまとめてグラフ化さ れます。 ✦ 上司に「実際アプリはどこがどのくらい 使われてるんだ?」って詰められた経験 のある方に、朗報ですw Mobile Analyticsのレポート
  • 59.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 59 ✦ 今回は触れませんが、「Test」というメニューをクリックする と「AWS Device Farm」というサービスにリンクします。 ✦ これを使うと、クラウド上で数あるAndroid / iOS端末を
 選んで、テストを走らせることが出来ます。 ✦ 詳細:http://aws.amazon.com/jp/device-farm/ クラウドでテストも出来る
  • 60.
  • 61.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 61 ✦ Cloud Logicとは? 
 = AWS Lambda をアプリから
 直接呼び出せる機能 ✦ Mobile Hubのメニューから右下 のCloud Logicをクリック お楽しみはこれからだ!
  • 62.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 62 ✦ クラウド上(AWSが運用管理するサーバ上)で、
 自分の書いたコードが実行されるサービス ✦ 言語は現在のところNode.js (JavaScript)、Python、および Java8をサポート ✦ 「サーバレスアーキテクチャ」はマーケティング用語なので、
 実際にはマネージドサービスの上で動く仕組みなんだ、
 というのを理解しておくと良いと思います ✦ 詳細:https://aws.amazon.com/jp/lambda/details/ ちょっと待った! AWS Lambda(らむだ)って何?
  • 63.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 63 ✦ 「Enable Logic」を選択。 ✦ 「Create a new function」をク リックすると、ラムダ関数作成ウィ ザードが始まってしまうので、グッ とこらえて次頁に進みましょう。 Cloud Logic の設定
  • 64.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 64 ✦ コードはNode.jsです。ソースコードはGitHubにあります。
 https://github.com/jaws-ug/hands-on/tree/master/ Mobile-Hub ✦ サンプルとして以下を用意しました。
 以下よりZIPファイルをダウンロードしてください。 ✦ Twitterに投稿する ✦ 天気予報を取得する 今回のハンズオンで 用意したLambda関数について
  • 65.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 65 ✦ 関数を作るリージョンを選択 ✦ 関数の名前を決めて ✦ ランタイム(実行環境)を選択 ✦ コードをフォームで書くもしくはファイルでアップロードする ✦ ロール(実行権限)を設定して ✦ 利用するメモリ量を設定 (全体共通) Lambda関数のデプロイ手順
  • 66.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 66 ✦ 本来はご自分のTwitterアカウントで https://apps.twitter.com/ にアクセスして「Create New App」して、consumer_key・ consumer_secretなどを取得しておく必要があります。 ✦ 本lambdaTweet.zipには @handson201601 アカウントの consumer_keyなどが予め含まれています
 「悪用厳禁!」 Lambdaサンプル Twitter投稿:事前準備
  • 67.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 67 ✦ では先程の画面で
 「Create a new function」を
 クリックします。 ✦ 別ウィンドウで開くので、
 ポップアップ禁止設定をしてある
 ブラウザは注意。 Cloud Logic の設定画面から
  • 68.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 68 ✦ MobileHubの仕様で、
 現在のところバージニアにある
 関数しか選択できないので、
 右上のリージョン選択が
 「バージニア北部」
 となっているかを確認します
 (なって無ければ「バージニア北部」を選択して変更) Lambdaを作るリージョンの確認
  • 69.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 69 ✦ ブループリントには色々と
 興味深いものがあるが、
 今回は「Skip」をクリック Lambda関数の作成
  • 70.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 70 ✦ Nameは「lambdaTweet」 ✦ RuntimeはNode.js ✦ Code entry typeは
 「Upload a .ZIP file」
 を選択し、
 「Upload」をクリック Lambda関数の作成
  • 71.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 71 ✦ Handlerはそのまま 「index.handler」 ✦ RoleはCreate new roleの中の
 「Basic execution role」を
 選ぶと、別ウィンドウが開く
 (初めての設定の場合) Lambda関数の作成
  • 72.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 72 ✦ 2回目以降は
 Use existing roleの中から 「lambda_basic_execution」 を 選択するだけ Lambda関数の作成
  • 73.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 73 ✦ 適当にロール名をつけてくれるので、
 右下の「許可」をクリックします。 ✦ これはこのLambda関数が実行されるときに利用する 権限の設定になるので、例えばS3に書き込むとか、 EC2インスタンスを起動するとか、必要な場合には権 限を付与する必要があります。 ✦ その場合は適当なロール名ではなくて、権限を表すロー ル名を付けておかないと混乱するので注意。 IAM roleの作成
  • 74.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 74 ✦ 最後にメモリ使用量とタイムアウト 時間を設定します。 ✦ 今回は恐らくデフォルトで良いが、 規模の大きいアプリケーションの 場合はこの辺りを調整する必要が あります。 Lambda関数の作成
  • 75.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 75 ✦ 確認画面で「Create funciton」 をクリックすると・・・ Lambda関数の作成
  • 76.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 76 ✦ Lambda関数の完成! ✦ 以後の設定変更やソースの更 新はこのページから行います。 Lambda関数の作成
  • 77.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 77 ✦ MobileHubのタブに戻って、リロードアイコン (Function nameの右隣)をクリックすると、 いま作成した関数が出てくるのでチェックを入れ ます。 ✦ 出てこなければ、8ページほど戻って「Lambda を作るリージョンの確認」を再度確認。 ✦ 「Save changes」-> 左メニューの「Build」 で、再度ソースをビルドして、ダウンロードしま す。 Lambda関数の作成
  • 78.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 78 ✦ ZIPファイルを解凍して、ソースを上書き ✦ Android Studioを起動して、
 「Import Project (Eclipse…」を選択。 ✦ フォルダは先程上書きしたフォルダの 「MySampleApp」を選択します。 ✦ メニューのRun -> Run ‘app’ を選択して 実行してください。 Android Studioで再度アプリをビルド
  • 79.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 79 ✦ 一番下にメニューが増えてる! ✦ クリックして先に進み、Cloud Logicを 実行してみましょう。 実機でのアプリの実行
  • 80.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 80 ✦ FUNCTIONに先ほどのLambda関数名 「lambdaTweet」 ✦ REQUESTにJSONで
 「{“tweet”: “投稿したいメッセージ”}」 ✦ 最後に「INVOKE」をクリックすると・・・ ✦ see https://twitter.com/handson201601 実機でのアプリの実行
  • 81.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 81 ✦ Lambdaの実行時ログはどこに出るの? ✦ CloudWatch -> ログ -> 関数名のロググループ ✦ Lambda関数の更新は? ✦ ZIPを作りなおして再度アップロード後、「Saveボタン」 ✦ MobileHubが生成したソースの更新はAndroidStudioでどうやる? ✦ ディレクトリごと上書きして、「Import Project」が手っ取り早い どこかで上手く行かなかった場合 その他もろもろのFAQ
  • 82.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 82 ✦ 関数名を「lambdaWeather」とする ✦ ダウンロードしたZIPファイルをUpload ✦ Roleは先ほど作った「lambda_basic_execution」を選択 ✦ Lambda関数が出来たら、MobileHubのタブに戻って、リロードアイコン ✦ 「lambdaWeather」にチェックを入れて、「Save changes」-> 左メニューの 「Build」で、再度ソースをビルドして、ダウンロード、上書きしておく ✦ Android StudioでプロジェクトをImport、Runで実行 Lambdaサンプル 天気予報を取得:手順はほぼ一緒
  • 83.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 83 ✦ FUNCTIONに「lambdaWeather」 ✦ REQUESTにJSONで
 「{“id”: “数字”}」と入力します。 ✦ 数字は http://weather.yahoo.co.jp/weather/rss/ 
 の警報・注意報「以外」を参照してください。 ✦ 最後に「INVOKE」をクリック! 実機で実行
  • 84.
  • 85.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 85 ✦進む前に、再度現状の確認 ✦実案件で使うにはどうすればいい? ✦自動生成されたソースコードの解析 更にその先へ
  • 86.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 86 ✦ 現在のMobile Hubは
 「AWSのリソース生成ウィザード」+
 「生成されたリソースにアクセスする
  サンプルソースコード自動生成ツール」
 と見ることが出来ます。 現状の確認
  • 87.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 87 ✦ Mobile Hubの左メニューの一番下のアイコン 「Resources」をクリックします。 ✦ ここに、Mobile Hubが自動的に作成した AWS上のリソースが一覧されています。 Mobile Hubが作成したAWS上のリソース
  • 88.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 88 ✦ ここまでの作業は、全て無料枠の範囲内で収まる はずですが(頑張って行っても数百円程度)、
 心配の方はこのリソースを全てクリックして行っ て、削除しておくと良いでしょう。 完全無料で利用したい場合
  • 89.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 89 ✦ アプリ側でGUIを作りこむ ✦ デバイスから情報を取得する部分(GPSとか) も作る必要あり ✦ サーバ側で必要なロジック
 (主にデータの読み書き)を作りこむ 実案件で使うには?
  • 90.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 90 ✦ AWS部分はインフラ担当に
 「こんな感じで作ったからよろしくね!」 ✦ アプリ部分はアプリ担当に
 「これ参考によろしくね!」 実案件で使うには?
  • 91.
  • 92.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 92 ✦ この先はほんの少しだけJavaの知識が必要になります ✦ 「オレ無理そう」というかたは、
 アプリをいじって遊んでましょう(^^) ✦ ただし、エンジニアと共通言語を持つという意味では、
 ちらっと見ておくと良いかと思います。 ここから少しだけ 自動生成されたソースコードの解析
  • 93.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 93 ✦ Android Studioを起動すると今まで 開いていたプロジェクトが開くはず。 ✦ 左上の「1: Project」をクリックする と、プロジェクトの一覧が見える。 ✦ 「app」フォルダをクリックして中身を どんどん開いていって、 「MainActivity」を探す。 Android Studioでアプリを見てみる
  • 94.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 94 ✦ パッケージ名は「com.mysampleapp」 ✦ 起動時のActivityは「com.mysampleapp.MainActivity」 ↑この2つは、事前準備編でFacebookApp側に設定したやつ!
 これを変えたら、Facebook側の設定を変えるのをお忘れなく ここで分かること
  • 95.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 95 ✦ com.mysampleapp.demo.UserSettingsを開く ✦ これはアプリの情報をクラウド側に
 保存するときに使われるもの ✦ アプリ起動時にクラウド側から情報を取ってくるコー ドになっている ✦ MainActivityの中で”syncUserSettings”を探し てみると・・・ UserSettingsクラス
  • 96.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 96 ✦ com.mysampleapp.demo.CloudLogicDemoFrag mentを開く ✦ これはCloud Logicの画面を開いたときに使われるもの ✦ DEFAULT_FUNCTION_NAME や DEFAULT_REQUEST_CONTENTS をいじって保存す ると、画面を開いた時のデフォルト値が変わる ✦ invokeFunctionメソッドがLambda呼出のコードにな るので参考にすると良い CloudLogicDemoFragmentクラス
  • 97.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ 97 その他もろもろ ✦ ContentDeliveryDemoFragmentはS3利用のサンプル ✦ MobileAnalyticsDemoFragmentは
 Mobile Analytics利用のサンプル ✦ PushDemoFragmentクラスはSNS購読のサンプル などなど アプリ構築のテンプレートとして利用可能!
  • 98.
    OKINAWA AWS Mobile Hubハンズオン【本編】 http://jaws-ug.jp/ GitHubrepositories https://github.com/jaws-ug/ お疲れ様でした 今回のハンズオンはここまで! Any questions? 98 再掲:資料やソースコードはこちらから https://github.com/jaws-ug/hands-on/tree/master/Mobile-Hub