はじめてのmobile hub

71
はじめてのMobile Hub Cognito S3 を使ってみました

Upload: mafmoff-yamamoto

Post on 13-Apr-2017

150 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: はじめてのMobile hub

はじめてのMobile Hubで Cognito と S3 を使ってみました

Page 2: はじめてのMobile hub

やまもと ● iOSモバイルアプリ開発

● Swift・Objective-C● AWS素人です

● Qiita書いています○ http://qiita.com/mafmoff

発表者その1

Page 3: はじめてのMobile hub

発表者その2

よこやま

● Androidモバイルアプリ開発

● Java・Kotlin● AWSがんばります!

● じゃがいもが好き

Page 4: はじめてのMobile hub

本日お話ししたいこと

Page 5: はじめてのMobile hub

1. Mobile Hubを使ってみた

2. Mobile Hubでアプリつくってみた

Page 6: はじめてのMobile hub

AWS Mobile Hubって?

Page 7: はじめてのMobile hub

AWS Mobile Hub

● AWS re:Invent 2015で発表

● AWSを使ったモバイルアプリの構築を3STEPで実現

Page 8: はじめてのMobile hub

どんなサービスが使えるのか?

Page 9: はじめてのMobile hub

コンソールを見てみると

Page 10: はじめてのMobile hub

ユーザー認証

Page 11: はじめてのMobile hub

ユーザー認証

● Cognitoによるサービス

● ユーザーをどのようにサインインさせるか設定できる

● SNS認証などと連携してユーザーに一意のIDを割当て可

Page 12: はじめてのMobile hub

データストレージ

Page 13: はじめてのMobile hub

データストレージ

● Cognito + S3によるサービス

● クラウドストレージに写真やドキュメントの保存

● ユーザー情報の保存も可能

● ユーザーのデバイス間のデータ同期

Page 14: はじめてのMobile hub

アプリ分析

Page 15: はじめてのMobile hub

アプリ分析

● Mobile Analyticsによるサービス

● アプリの使用状況や収益の測定

● データのグラフ化やエクスポートが可能

Page 16: はじめてのMobile hub

プッシュ通知

Page 17: はじめてのMobile hub

プッシュ通知

● SNSによるサービス

● 単一ユーザー / グループに向けたプッシュ通知配信

● トークンの登録等、面倒な設定はすべて構築済み

即座にプッシュ通知可能

Google Cloud Messaging

Page 18: はじめてのMobile hub

クラウドロジック

Page 19: はじめてのMobile hub

クラウドロジック

● Lambdaによるサービス

● サーバーレスでモバイルバックエンドを構築

● ロジックはAndroid、iOS間で共有できる

Page 20: はじめてのMobile hub

コンテンツ配信

Page 21: はじめてのMobile hub

コンテンツ配信

● S3 + CloudFrontによるサービス

● ストレージ上の画像や動画コンテンツの配信

Page 22: はじめてのMobile hub

これらのサービスが単一のコンソールから選んで使える

Page 23: はじめてのMobile hub

なんだか便利そう!

Page 24: はじめてのMobile hub

さっそく使ってみた

Page 25: はじめてのMobile hub

STEP 1 : プロジェクト作成

アプリのプロジェクト名を入力してCreate projectするだけ

Page 26: はじめてのMobile hub

STEP 2 : サービスを選ぶ

今回は、Facebook認証とストレージを使いたいので

User Sign-inとData Storageを選択してみます

Page 27: はじめてのMobile hub

STEP 2 : サービスを選ぶ User Sign-in

認証のオプションと認証方法を選択します

Page 28: はじめてのMobile hub

STEP 2 : サービスを選ぶ User Sign-in

FacebookのDeveloperコンソールでアプリIDを生成

※ facebook for developersの画面です

Page 29: はじめてのMobile hub

STEP 2 : サービスを選ぶ User Sign-in

作成したIDを入力、保存して設定完了

Page 30: はじめてのMobile hub

STEP 2 : サービスを選ぶ User Data Storage

設定して、保存するだけ

Page 31: はじめてのMobile hub

STEP 2 : サービスを選ぶ

ここまでの設定で

User Sign-inとData Storageがアプリに追加されました

Page 32: はじめてのMobile hub

STEP 3 : Build

Buildメニューを開いて、プラットフォームを選択します

Page 33: はじめてのMobile hub

STEP 3 : Build パッケージ生成

Generating...

Page 34: はじめてのMobile hub

STEP 3 : Build パッケージ生成

ボタンをクリックするとzipのダウンロードが開始します

完了!

Page 35: はじめてのMobile hub

STEP 3 : Build パッケージ内容

デモ画面用のソースコード

Xcodeプロジェクト

アプリのプロジェクトファイル

こちらを開いてシュミレータで起動します

SDK

今回Facebookのユーザー認証とデータストレージで使用す

るFrameworkが梱包されています

Page 36: はじめてのMobile hub

STEP 3 : Build シュミレータでデモ確認

● 先ほど選択した

○ User Sign-in○ Data Storageがアプリに実装済みでした

● 各画面からそれぞれの機能のデモ操作が行

えました※ デモ画像はつくってみた発表があるので割愛

Page 37: はじめてのMobile hub

STEP 3 : Build ガイドライン的な記載

環境構築や各機能、パッケージの使い方など簡単な手順が記載

Page 38: はじめてのMobile hub

STEP 3 : Build パッケージの使い方

      

● デモ用のコードを削除● プロジェクトをリネームしてアプリIDを書き換え

      

● 独自のプロジェクトにSDKだけコピーして使う

使い方その1

使い方その2

スターターアプリとして使う

サンプルとして使う

Page 39: はじめてのMobile hub

STEP 3 : Build 使い方その2が使えなかった

      スターターアプリとして使う

● デモ用のコードを削除● プロジェクトをリネームしてアプリIDを書き換え

      サンプルとして使う

● 独自のプロジェクトにSDKだけコピーして使う

使い方その1

使い方その2

これ豆な。

SwiftプロジェクトでやったらBuildできなくなって泣いた

Page 40: はじめてのMobile hub

ということで、

Page 41: はじめてのMobile hub

アプリをつくってみた

Page 42: はじめてのMobile hub

どんなアプリ?

Page 43: はじめてのMobile hub

プライム・フォトに対抗?

フォトストレージアプリ

Page 44: はじめてのMobile hub

つくったアプリ 機能の概要

● ストレージに画像をアップロード

● ストレージから画像をダウンロード

● 保存されている画像の閲覧

● ストレージは完全プライベート

Page 45: はじめてのMobile hub

アプリをつくるのに必要な工程

1. アプリをつくる

2. ストレージ用のサーバーを構築

3. サーバーの認証設定を行う

4. アプリとサーバーとの連携を行う(API)

Page 46: はじめてのMobile hub

サーバーとか認証とか

Page 47: はじめてのMobile hub
Page 48: はじめてのMobile hub

1. アプリをつくる

2. ストレージ用のサーバーを構築

3. サーバーの認証設定を行う

4. アプリとサーバーとの連携を行う

アプリをつくるのに必要な工程

できる

できない

できない

できない

Page 49: はじめてのMobile hub

でも大丈夫

Page 50: はじめてのMobile hub

そう、

Mobile Hub ならね!

Page 51: はじめてのMobile hub

1. アプリをつくる

2. ストレージ用のサーバーを構築

3. サーバーの認証設定を行う

4. アプリとサーバーとの連携を行う

自分

S3

Cognito

Mobile Hub

アプリをつくるのに必要な工程

Page 52: はじめてのMobile hub

つ・ま・り

Page 53: はじめてのMobile hub

インフラエンジニアいらず!

Page 54: はじめてのMobile hub

作る

Page 55: はじめてのMobile hub

STEP 1 : サンプルブロジェクトをDL

iOSと大差ないです

こっち!

Page 56: はじめてのMobile hub

STEP 2 : サンプルから必要なソースをコピー

● com.amazonaws.mobile  ⇒ AWS関連の処理がまとまったパッケージ

● com.mysampleapp  ⇒ アプリを構成するクラス (画面など)を内包

  新しくアプリを作るときは、

  com.amazonaws.mobile  パッケージのみコピーします

Page 57: はじめてのMobile hub

STEP 3 : パーミッションやライブラリの設定

開発ガイドの通りに設定していきます

Page 58: はじめてのMobile hub

STEP 4 : コーディング

ちゃちゃっとレイアウト組みます

Page 59: はじめてのMobile hub

STEP 4 : コーディング (ログイン)

用意されたメソッドにログインボタンを渡してあげるだけ!

ボタン!

Page 60: はじめてのMobile hub

STEP 4 : コーディング (アップロード)

ファイルとコールバッククラスを用意すれば

あとは1行でアップロード開始!

1行!

Page 61: はじめてのMobile hub

STEP 4 : コーディング (ダウンロード)

ダウンロードもメソッドを呼ぶだけでOK!

めんどうな非同期通信も全部おまかせ!

おまかせ!

Page 62: はじめてのMobile hub

完成!

Page 63: はじめてのMobile hub

かかった時間

16時間くらい

Page 64: はじめてのMobile hub

開発期間

16時間

コーディング

サンプルコード解析

意識飛んでた

Page 65: はじめてのMobile hub

ふりかえり よかったところ

● 開発ガイドが超親切

● ソースコメントたくさん

● ライフサイクルが考慮されてる(落ちない)

Page 66: はじめてのMobile hub

ふりかえり よくなかったところ

● 依存関係が多く拡張しずらい

● シングルトン地獄

● コールバッククラス地獄

● 結局AWSってどうやって使うの????

Page 67: はじめてのMobile hub

まとめ

Page 68: はじめてのMobile hub

まとめ

● 気軽にAWSの機能を試せるので

AWS初学者が初めにさわるサービスとしておすすめ

● サンプルソースをもとにアプリを作るのは結構大変

  あくまでサンプルとわりきったほうが良いかも

● AWS SDKの利用方法を勉強するのにも良さそう

Page 69: はじめてのMobile hub

感想など

Page 70: はじめてのMobile hub

あと、

Page 71: はじめてのMobile hub

AWS Summit たのしみですね