LoginSignup
23
24

More than 5 years have passed since last update.

AWS MobileHub Swift 版 のチュートリアル -設定編-

Last updated at Posted at 2016-06-05

AWS March 2016 Webinar Series - Getting Started with AWS Mobile Hubから。

目次 (別の投稿)

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データベース

プロジェクト生成後のXcodeのFrameworks
Screen Shot 2016-06-05 at 9.42.58 AM.png

プロジェクトの作成

Mobile Hubをクリック。
Screen Shot 2016-06-05 at 8.23.51 AM.png
プロジェクトの新規作成。
Screen Shot 2016-06-05 at 8.25.39 AM.png
プロジェクト名をつける。例) My Great App
Screen Shot 2016-06-05 at 8.28.29 AM.png

AWSにしてはちゃんとしたUIになってますね。レスポンシブにもなってます。
AWS_Mobile_Hub.jpg

ユーザ認証/認可の設定

User Sign-inをクリック。
Screen Shot 2016-06-05 at 8.36.21 AM.png
Sign-in is optionalを選択。
認証処理はFacebookを指定。
Screen Shot 2016-06-05 at 8.37.59 AM.png

Facebook App IDを指定する必要があるため、別窓でご自身のFacebookを開きます。
開発者 > アプリを管理をクリック。
Screen Shot 2016-06-05 at 8.40.57 AM.png

新しいアプリを追加をクリック。iOSを選択。
すべてのアプリ_-_開発者向けFacebook.jpg

新規プロジェクトができます。例) My AWS App1
後の手順はすっ飛ばして、Skip Quick Startをクリック、
Quick_Starts_-_開発者向けFacebook.jpg

APP IDを覚えてください。
設定をクリック。
My_AWS_App1_―_ダッシュボード_-_開発者向けFacebook.jpg

プラットフォームを追加をクリック。iOSを選択。
My_AWS_App1_―_設定_-_開発者向けFacebook.jpg

バンドルIDに、com.amazon.MySampleAppと指定。(Mobile Hubのデフォ。もちろん、変更できますが。)
Screen Shot 2016-06-05 at 8.56.31 AM.png

AWSコンソールに戻り、覚えたFacebook App IDを設定して、保存。
Resourcesをクリック。
AWS_Mobile_Hub.jpg
裏でMobile Hubが、Cognito Identity PoolとIAMロールを作ってくれたのが分かります。
AWS_Mobile_Hub.jpg

リンクをたどると、Cognitoのコンソールにジャンプします。
ちゃんと、Authentication Providerに、Facebookが設定されてるのが分かります。
こうしたプロビジョニングを勝手にやってくれますというのが、Mobile Hubです。
Editing_mygreatapp_MOBILEHUB_1429908301_-_Amazon_Cognito_-_Amazon_Web_Services.jpg

この辺りでだんだんスクショを取るのが面倒になってきましたので、あとは下記リンクから、ビデオをご覧ください...

User Data Storage
App Analytics
Push Notifications
Cloud Logic
App Content Delivery

ビデオの製作時点では、NoSQL Database (DynamoDB)はサポートしてなかったようですね。。。

ビルド編に続く。

23
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
24