AWS MobileHub Swift 版 のチュートリアル -ビルド実行編-

[設定編](http://qiita.com/tfutada/items/9428eef0ea3b67922f3d)の続きです。

すべてのサービスの設定が完了している想定で話を進めます。

`Build`をクリック。
![AWS_Mobile_Hub.jpg](https://qiita-image-store.s3.amazonaws.com/0/75231/fa46df1e-bd41-ab15-6ed2-26606b396b39.jpeg)

`iOS Swift`を選択します。プロジェクトファイルの生成が開始します。少し時間がかかります。
生成が無事完了すると、`Download iOS Swift source package`が表示されます。
クリックしてzipアーカイブをダウンロードします。
![Screen Shot 2016-06-05 at 1.19.57 PM.png](https://qiita-image-store.s3.amazonaws.com/0/75231/79630e1a-fb55-9e98-a6a0-017edb8efd33.png)

Zipを展開します。ソースコード、ライブラリ、ドキュメント一式が入っています。
![tmp_—_-zsh_—_120×37.jpg](https://qiita-image-store.s3.amazonaws.com/0/75231/148191ab-dbb5-355a-5b48-473c97981257.jpeg)

`READ_ME/index.html`を開くと、ヘルパークラスのAPIドキュメントが見れます。
![Screen Shot 2016-06-05 at 1.30.04 PM.png](https://qiita-image-store.s3.amazonaws.com/0/75231/ed711d3a-bc51-5c89-be83-57b41aa33a23.png)
Lambdaをラップした、`AWSCloudLogic`クラスとか。
![Screen Shot 2016-06-05 at 1.33.23 PM.png](https://qiita-image-store.s3.amazonaws.com/0/75231/c214ab2e-35da-e2a8-8dc1-b0ea17e5c59d.png)

ダウンロードしたプロジェクトをXcodeで開きます。
実行します。
(delegateの指定にselectorを使用してないため、警告がでてますが、とりあえず動きます。)
TableViewで、追加したサービスのサンプルアプリが一覧で表示されます。
![Screen Shot 2016-06-05 at 1.45.32 PM.png](https://qiita-image-store.s3.amazonaws.com/0/75231/a8932744-ac45-9efc-0a01-4e189d723cef.png)

この時点ではゲストログインでアプリを実行してます。
Facebookアカウントでログインしてみましょう。
右上の`Sign-In`をタップします。
![Screen Shot 2016-06-05 at 1.50.13 PM.png](https://qiita-image-store.s3.amazonaws.com/0/75231/56d37221-eb2e-9dfd-80e0-2259de638364.png)

ログインすると、こんな感じでFacebookからユーザ情報を引張てこれます。
![Screenshot_6_5_16__2_10_PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/75231/22b99bf0-542c-8bbe-f641-5d63fb6c5c52.jpeg)

`User Data Storage`をタップします。
![Screenshot_6_5_16__7_05_PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/75231/27d41fa6-4caf-c149-9ddd-1865c2f47007.jpeg)

`Demo User Profile Data`をタップします。
![Screenshot_6_5_16__7_07_PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/75231/a8dc4bf5-483a-476f-1a67-07bb38154735.jpeg)

カラーテーマを別の色にしてみます。
緑にしてみます。
![Screen Shot 2016-06-05 at 7.11.47 PM.png](https://qiita-image-store.s3.amazonaws.com/0/75231/0728fed9-edde-63d6-390d-235b77860503.png)
![Screen Shot 2016-06-05 at 7.12.46 PM.png](https://qiita-image-store.s3.amazonaws.com/0/75231/0197de8a-ab8a-6b67-9f46-e323abcf8829.png)

ここで`Sign-Out`すると、デフォルトのオレンジ色のテーマに戻ります。
![Screen Shot 2016-06-05 at 7.14.30 PM.png](https://qiita-image-store.s3.amazonaws.com/0/75231/d0de64c1-d689-599d-1297-6e0cbb9a2762.png)

AWSコンソールから、`Congnito > Identity Pool > Identity Browswer`を開きます。
`Linked logins`が１にカウントされてる`IdentityID`がFacebookでログインしたユーザになります。
それ以外の０は、ログインせずにゲストで利用したユーザのIDになります。
![Identities_-_Amazon_Cognito_-_Amazon_Web_Services.jpg](https://qiita-image-store.s3.amazonaws.com/0/75231/3f400df9-3610-0bf0-0c00-85e2ae8eec8e.jpeg)

ユーザの詳細を見ると、先ほど設定したカラーテーマの情報がキーバリューで登録されているのがわかります。
これは、CognitoSyncといい、IdentityIDに紐付いたサーバサイドのデータストアになります。
これにより、同一ユーザが異なるデバイス、iPhone, iPad等でログインしても、サーバサイドにユーザの設定情報を保持することで、どこからログインしても設定を同じにすることができます。
![Dataset_-_Amazon_Cognito_-_Amazon_Web_Services.jpg](https://qiita-image-store.s3.amazonaws.com/0/75231/3e2bcbfb-29c0-4b1c-9458-62a604593f11.jpeg)

より複雑なデータを持たせる場合は、NoSQL(DynamoDB)を使用したり、Cloud Logic(Lambda)から、データベースサーバに接続したり、外部システムにAPIで呼び出したりすることになります。

[次にLambdaサービスを見てみましょう。](http://qiita.com/tfutada/items/82cf9cf0555619025d4c)