SlideShare a Scribd company logo
iOSアプリ開発者から見た
Mobile Hub
クラスメソッド × スマートニュース AWS Night
Kato Jun, Classmethod
自己紹介
• 加藤 潤(かとう じゅん)
• クラスメソッド モバイルアプリサービス部所属
• 2015年10月 JOIN
• iOSアプリ開発が主なお仕事
• ブログ:http://dev.classmethod.jp/author/kato-jun/
本日お話しすること
Mobile Hubを使ってみよう!
まずは概要
Mobile Hub
• AWSのモバイルサービスの一種
• モバイルアプリ向けのAWSサービスを素早く構
築
• 2015年10月のre:Invent 2015で発表された
• 2016年1月現在 ベータ版
Mobile Hubの機能
• 認証
• プッシュ通知
• コンテンツ配信
• データストレージ
• アプリ分析
• クラウドロジック
• アプリのテスト
認証
• Powered by Amazon Cognito
• Facebookなどのパブリックログインプロバイ
ダを通じてユーザーに一意のアイデンティティ
を付与
• 未認証(匿名)ユーザーもサポート
プッシュ通知
• Powered by Amazon SNS
• 複数のプッシュ通知サービスに対応(APNS、
GCMなどなど)
• ユーザー個別 または一斉送信
コンテンツ配信
• Powered by Amazon S3
• Powered by Amazon CloudFront
• 画像や動画データの配信
• 低レイテンシー、高速転送(CDN)
データストレージ
• Powered by Amazon Cognito
• Powered by Amazon S3
• ユーザーデータの保存・同期
• 写真などのユーザーファイルの保存
アプリ分析
• Powered by Amazon Mobile Analytics
• アプリの使用状況の収集・可視化
クラウドロジック
• Powered by Amazon Lambda
• サーバー管理不要でモバイルバックエンドを作
成
• 実行基盤は全てAWSが管理
• 開発者はアプリケーションロジックに集中でき
る
アプリのテスト
• Powered by AWS Device Farm
• AWS上で実際のスマートフォンやタブレット
を使ってテスト
• 現時点でiOS, Android, Fire OSに対応
今回お話しする機能
• 認証
• プッシュ通知
• コンテンツ配信
• データストレージ
• アプリ分析
• クラウドロジック
• アプリのテスト
何はともあれ触ってみる
AWSマネジメントコンソール
Create new mobile project
What is your project name?
Pick and configure features
User Sign-in
認証オプション
今回はSign-in is requiredを選択
認証プロバイダ
2016年1月27日現在、選択できるのはFacebook、Google+、Custom
今回はFacebookを選択
Facebook App ID
Save Summary
以下が自動で作られる
• Cognito Identity Pool
• IAM Role
Build
Build
システム要件
• Xcode 7.0以上
Build
Facebookアプリの設定まで書いてある! 😊
Download iOS source
package
ファイル名に「objc」ってついてる。
フォルダ構成
• LICENSE.txt・・・ライセンスファイル
• MySampleApp・・・アプリのプロジェクトファイル
• READ_ME・・・アプリの説明HTML(WebのBuild画面と同じ内容)
シミュレータで動かす
トップ
Facebookログインボタンが
あるだけ
Facebookログイン
SafariのFacebookログイン
画面が表示される
認可
いつもの認可画面
ログイン成功
使用している機能が一覧表示
される
(今はUser Sign-inだけ)
User Identity
画面下の「Demo User
Identity」をタップ
User Identity
以下が表示されている
• Facebook ユーザー名
• Facebookプロフィール画像
• Cognito ユーザーユニークID
動くのはわかったので
ソースコードを見てみる
Info.plist
ATSの設定があらかじめ組み込まれている☺
すばら!!
SignInViewController
• Facebookログインボタンのある画面のビューコントローラ
• Facebookログインボタンタップ時の処理
• AWSSignInProviderTypeにAWSSignInProviderTypeFacebookが指定されて呼ばれる
• ログイン処理はカスタムクラスのAWSIdentityManagerで行っている
AWSIdentityManager
• 認証プロバイダのタイプに応じたSignInProvider(この場合は
AWSFacebookSignInProvider)を生成してログイン
• ログイン完了時のBlockをプロパティに保持
AWSFacebookSignInProvider
ログイン済みだったらログイン処理を
スキップしてcompleteLoginメソッド
を呼ぶ
ログインしてなかったらFBSDKLoginManagerのlogInWithReadPermissionメソッ
ドを呼ぶ
※ FBSDK∼はFacebook SDKのクラス
AWSFacebookSignInProvider
FacebookログインとCognitoをリンク
Facebookログインユーザーの名前、プロフィール画像を取得
AWSIdentityManager
AWSCognitoCredentials
ProviderにFacebookのア
クセストークンを設定
実際にログインできているか
Cognitoコンソールで確認
Resources
Cognitoコンソール
ちゃんとFacebookログインできている☺
Cloud Logic
Cloud Logic
Enable logic
“hello-world” function
“hello-world” function
キー key1 で指定された値を返すだけのFunction
Build & Download
シミュレータで動かす
トップ
一覧に「Cloud Logic」が追
加された
Cloud Logic
画面下の「Demo Cloud
Logic」をタップ
Cloud Logic
Lambdaファンクション名
Request
Invoke
Response
動くのはわかったので
ソースコードを見てみる
プロジェクト
CloudLogicのビューコントローラが追加されている
CloudLogicViewController
• Requestテキストビューの内容をJSON Dictionaryにしてるだけ
CloudLogicViewController
• AWSCloudLogicのinvokeFunction∼メソッドでLambdaファンクションを起動
• 処理完了時のBlockでレスポンスをパースしてテキストビューに表示
AWSCloudLogic
_invokerにパラメータをそのまま渡し、invokeFunctionメソッドを実行
invoker
• プロパティに保持しているAWSLambdaInvokerクラス
• AWSLambdaInvokerはAWSLambda.frameworkのクラス
自動生成されたソースコード
を見て思ったこと
シングルトン多すぎ… orz
• 必要のないところまでシングルトン
• シングルトンによるデメリット(密結合、テスタビリティの低下、etc…)
よって
ヘルパークラスを
そのまま使うのは
オススメしません
でも
AWS Mobile SDKの使い方は
参考になる
まとめ
• User Sign-in
• Facebookログイン
• Cloud Logic
• iOSアプリからLambdaファンクションを起
動
まとめ
• 機能指向でサービスを構成できる
• 2-Tierアーキテクチャ
• モバイルアプリ開発者にとってAWSの敷居がかなり低くなった
• サンプルプロジェクトを参考にAWS Mobile SDKの使い方を学
べる
• できることは既存AWSサービスの範囲内
まだβ版
• まだ対応していない機能(Twitterログインな
ど)
• サンプルプロジェクトのSwift対応
正式版リリースを
待ちましょう!
ご清聴ありがとうございました

More Related Content

PDF
ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編
PDF
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャ
PPSX
Mobile Hubで変わる、アプリ開発最前線
PDF
UnityとAmazon Web Servicesで生み出す新しい価値
PDF
AWS クラウドで構築するスマホアプリ バックエンド
PDF
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
PDF
モバイル開発者から見た サーバーレスアーキテクチャ
PDF
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャ
Mobile Hubで変わる、アプリ開発最前線
UnityとAmazon Web Servicesで生み出す新しい価値
AWS クラウドで構築するスマホアプリ バックエンド
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
モバイル開発者から見た サーバーレスアーキテクチャ
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530

What's hot (20)

PDF
クラウドネイティブ化する未来
PDF
Amazon Cognito Deep Dive @ JAWS DAYS 2016
PPTX
Amazon Cognito + SNS + Zabbixでサーバー監視アプリを作ってみた
PDF
Amazon Mobile Analyticsのいろは
PDF
モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015
PDF
AWSにおける モバイル向けサービス及び事例紹介(20151211)
PDF
Introducing Serverless Computing (20160802)
PDF
Serverless Architecture on AWS(20151121版)
PPTX
クラウドネイティブなアーキテクチャでサクサク解析
PDF
AWS IoTアーキテクチャパターン
PPTX
Cognito User Pool
PPTX
クラウドネイティブが行なういまどきWebサービス開発
PDF
Automated Testing on AWS Device Farm
PDF
クラウド時代のソフトウェアアーキテクチャ
PPTX
APIモック3分クッキング
PDF
プログラマに贈るクラウドとの上手な付き合い方
PDF
Ad Tech on AWS - IVS CTO Night and Day Spring 2016
PDF
AWSで実現するクラウドネイティブなアプリ開発のポイント
PPTX
地方のユーザとクラウド
PDF
AWS meets Android - "AWS SDK for Android"で開発を楽にしよう!
クラウドネイティブ化する未来
Amazon Cognito Deep Dive @ JAWS DAYS 2016
Amazon Cognito + SNS + Zabbixでサーバー監視アプリを作ってみた
Amazon Mobile Analyticsのいろは
モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015
AWSにおける モバイル向けサービス及び事例紹介(20151211)
Introducing Serverless Computing (20160802)
Serverless Architecture on AWS(20151121版)
クラウドネイティブなアーキテクチャでサクサク解析
AWS IoTアーキテクチャパターン
Cognito User Pool
クラウドネイティブが行なういまどきWebサービス開発
Automated Testing on AWS Device Farm
クラウド時代のソフトウェアアーキテクチャ
APIモック3分クッキング
プログラマに贈るクラウドとの上手な付き合い方
Ad Tech on AWS - IVS CTO Night and Day Spring 2016
AWSで実現するクラウドネイティブなアプリ開発のポイント
地方のユーザとクラウド
AWS meets Android - "AWS SDK for Android"で開発を楽にしよう!
Ad

Viewers also liked (20)

PPTX
短期間で大規模なシンクラ環境を用意した話
PDF
AWSの進化とSmartNewsの裏側
PDF
Building a Sustainable Data Platform on AWS
PDF
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
PDF
SmartNews Ads System - AWS Summit Tokyo 2015
PDF
スマートニュースの世界展開を支えるログ解析基盤
PDF
DynamoDB Streamを使ったリアルタイム分析
PDF
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
PDF
Smartnews Product Manager Night
PDF
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
PDF
2015/04/01 AWS Blackbelt EC2
PDF
AWS Black Belt Techシリーズ リザーブドインスタンス & スポットインスタンス
PPTX
CognitoとSDKでサーバーレスなマルチデバイスアプリを構築する
PPTX
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
PDF
Windows Azure の歴史2014年2月26日版
PDF
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
PDF
NLP in SmartNews
PDF
はじめてのMobile hub
PDF
SmartNews's journey into microservices
PDF
Fluentd meetup #2
短期間で大規模なシンクラ環境を用意した話
AWSの進化とSmartNewsの裏側
Building a Sustainable Data Platform on AWS
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
SmartNews Ads System - AWS Summit Tokyo 2015
スマートニュースの世界展開を支えるログ解析基盤
DynamoDB Streamを使ったリアルタイム分析
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Smartnews Product Manager Night
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
2015/04/01 AWS Blackbelt EC2
AWS Black Belt Techシリーズ リザーブドインスタンス & スポットインスタンス
CognitoとSDKでサーバーレスなマルチデバイスアプリを構築する
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
Windows Azure の歴史2014年2月26日版
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
NLP in SmartNews
はじめてのMobile hub
SmartNews's journey into microservices
Fluentd meetup #2
Ad

Similar to iOSアプリ開発者から見たMobile Hub (20)

PDF
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
PDF
Scale Your Business without Servers
PDF
モバイルBaaSの概観と最新動向 (2013/6/7)
PDF
AWS Black Belt Online Seminar 2016 AWS IoT
PDF
Serverless Architecture Overview #cdevc
PDF
モバイルBaaSの概観と最新動向(2014版)
PPTX
モバイル開発を便利にするAWS
PDF
20190731 Azure Functions x Line at Azure Tech Lab #4
PDF
モバイルアプリ向けAWSネイティブアーキテクチャ
PDF
Lambda × Mobileの可能性
PPTX
Windows Azure Mobile Servicesによるアプリ構築
PDF
ソーシャルメディア戦略の基盤に欠かせないクラウドの今
PDF
概説 Data API v3
PDF
Black Belt Online Seminar Amazon Cognito
PDF
サーバーレス時代の システム設計ワークショップ
PDF
01_2021年上半期 AWS IoT サービスアップデート
PDF
[20140625]wwdc2014 feedback
PDF
Aws updateを活用したプロジェクトの進め方
PDF
AWS IoT を使う上での Next Step!!
PDF
AWS の IoT 向けサービス
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Scale Your Business without Servers
モバイルBaaSの概観と最新動向 (2013/6/7)
AWS Black Belt Online Seminar 2016 AWS IoT
Serverless Architecture Overview #cdevc
モバイルBaaSの概観と最新動向(2014版)
モバイル開発を便利にするAWS
20190731 Azure Functions x Line at Azure Tech Lab #4
モバイルアプリ向けAWSネイティブアーキテクチャ
Lambda × Mobileの可能性
Windows Azure Mobile Servicesによるアプリ構築
ソーシャルメディア戦略の基盤に欠かせないクラウドの今
概説 Data API v3
Black Belt Online Seminar Amazon Cognito
サーバーレス時代の システム設計ワークショップ
01_2021年上半期 AWS IoT サービスアップデート
[20140625]wwdc2014 feedback
Aws updateを活用したプロジェクトの進め方
AWS IoT を使う上での Next Step!!
AWS の IoT 向けサービス

iOSアプリ開発者から見たMobile Hub