[AWS March 2016 Webinar Series - Getting Started with AWS Mobile Hub]
(https://www.youtube.com/watch?v=i8GZod5Dkt8)から。
目次 (別の投稿)
AWS MobileHub Swift 版 のチュートリアル -ビルド実行
AWS MobileHub Swift 版 のチュートリアル -Cloud Logic(Lambda)編-
AWS MobileHub Swift 版 のチュートリアル -NoSQL Database (DynamoDB)編-
Mobile Hubとは?
Mobile Hub
とは、AWSのWebコンソールでポチポチすれば、さまざまなAWSサービスを利用するサンプルプロジェクト(Hello World的)を作ってくれるものです。それに伴う、サーバサイドの面倒な設定(プロビジョニング)もほぼ自動でやってくれます。開発者は、サーバサイドの設定が分からなくてもよく、モバイル側の開発に集中できます。
というものの、現実には、AWS初心者がはじめのとっかかりとして、AWSサービスをざっくり動かして学ぶための、Hello World的プロジェクトを生成するツールでしょうか?あくまで、Mobile Hub -> Swift
のプロジェクトへのone wayで、書き換えたコードをMobile Hub側に取り込むことはできません。ワンショットの使い捨てになります。
私が初めてAWSを触った時に戸惑ったのは、IAMポリシーの設定です。とあるサービスから別のサービスを呼び出すのにも、いちいち権限の設定が必要です。Mobile Hubは、そのあたりをよしなにやってくれますので、一つはまりポイントがなくなります。
あくまで、AWSサービス側の設定を助けてくれるだけですので、Swiftの知識とか、アップルのPush Notificationの知識とかは必要です。
Mobile Hubでは、AWSサービスを分かりやすい名前に言い換えています。
自動生成されるコードは、もちろんAWS SDK
を使用しており、シングルトンのヘルパークラスAWSMobileHubHelper
でラップしています。ヘルパークラス名もそんな感じになってます。(直接AWS SDKをよんでるとこもありますが。)
Mobile Hubサービス | 対応AWSサービス | 説明 |
---|---|---|
User Sign-in | Cognito | ユーザ認証/認可。Facebook, Google, カスタマイズ。 |
User Data Storage | S3/Cognito Sync | S3はファイルサーバ。Cognito Syncは、Cognito IDに紐付いたキーバリューストア。 |
Push Notifications | SNS | プッシュ通知。Appleのデバイストークンを保持できる。 |
App Analytics | Mobile Analytics | アプリケーションのユーザ利用情報の解析。アプリから、JSONでイベント情報を投げれる。 |
Cloud Logic | Lambda | サーバサイドに、Node.js, Python, Java8をデプロイし、よびだせる。 (DB的に言えば、ストアードプロシージャ) |
App Content Delivery | S3/CloudFront | CDNサーバ(静的コンテンツ) |
NoSQL Database | DynamoDB | NoSQLデータベース |
プロジェクトの作成
Mobile Hub
をクリック。
プロジェクトの新規作成。
プロジェクト名をつける。例) My Great App
AWSにしてはちゃんとしたUIになってますね。レスポンシブにもなってます。
ユーザ認証/認可の設定
User Sign-in
をクリック。
Sign-in is optional
を選択。
認証処理はFacebookを指定。
Facebook App IDを指定する必要があるため、別窓でご自身のFacebookを開きます。
開発者 > アプリを管理
をクリック。
新規プロジェクトができます。例) My AWS App1
後の手順はすっ飛ばして、Skip Quick Start
をクリック、
バンドルIDに、com.amazon.MySampleApp
と指定。(Mobile Hubのデフォ。もちろん、変更できますが。)
AWSコンソールに戻り、覚えたFacebook App IDを設定して、保存。
Resources
をクリック。
裏でMobile Hubが、Cognito Identity PoolとIAMロールを作ってくれたのが分かります。
リンクをたどると、Cognitoのコンソールにジャンプします。
ちゃんと、Authentication Providerに、Facebookが設定されてるのが分かります。
こうしたプロビジョニングを勝手にやってくれますというのが、Mobile Hubです。
この辺りでだんだんスクショを取るのが面倒になってきましたので、あとは下記リンクから、ビデオをご覧ください...
User Data Storage
App Analytics
Push Notifications
Cloud Logic
App Content Delivery
ビデオの製作時点では、NoSQL Database (DynamoDB)はサポートしてなかったようですね。。。
ビルド編に続く。