re:InventでAmazon Web Servicesが発表したAWS Mobile Hubは、モバイルアプリ開発者がAWSサービスを使ってアプリのバックエンドを構築しやすくすることを目指している。
実際のところ、AWS Mobile HubはAWSがこれまで提供してきたものに新たなサービスを追加するわけではない。AWS Mobile Hubがやってくれるのは、統合コンソールを提供して、アプリが必要とするハイレベルな機能を選択する手助けをすることだ。開発者が機能セットを選択すると、AWS Mobile Hubは必要なサービスを組み込んだiOSもしくはAndroid向けのサンプルアプリを生成する。アプリはすぐにビルドしてテストすることができ、AWS Mobile Hubでモニタリングすることができる。
開発者は次のような機能を選択して利用することができる。
- User sign-in:ユーザはFacebookやカスタムのアイデンティティシステムのいずれかで認証することができる。この機能はAmazon Cognito Identityを使って、Amazon Cognito identity poolとアプリのための新しいAWS Identity and Access Managementロールを生成する。
- Push notifications: Apple Push Notification ServiceもしくはGoogle Cloud Messaging経由で通知できる。通知は個別のデバイスもしくはデバイスがサブスクライブするタグに送ることができる。この機能はAmazon Simple Notificationサービスをベースにしており、提供されるサンプルアプリには、APNSもしくはGCNトークンを取得して、それをAmazon SNSに登録するコードが含まれている。
- App content delivery: 開発者はオーディオファイルやビデオファイルのようなアプリケーションアセットをAWSクラウドに格納することができる。この機能はAmazon S3とAmazon CloudFrontをベースとしており、Mobile Hubを使うことで、開発者はファイルをアプリにのみアクセス可能にしたり、一般に公開したりするといったプロパティを設定できる。生成されるサンプルアプリには、アセットをダウンロードしてローカルにキャッシュする方法を示したコードが含まれている。
- User data storage: 写真やドキュメント、アプリ設定などのユーザデータをAWSクラウドに格納することができる。AWS Mobile HubはS3バケットを生成し、ユーザデータを2つのフォルダ、パブリックなフォルダと許可されたユーザのみにアクセスを限定するための権限付きのプライベートなフォルダ、に格納する。生成されるサンプルアプリには、パブリックおよびプライベートフォルダをブラウズするファイルエクスプローラの実装が含まれている。
- App analytics: Amazon Mobile Analyticsをベースとし、日次および月次アクティブユーザ数、新規ユーザ数、セッション数、アクティブユーザ1日あたりの平均セッション数といったエンゲージメント統計を収集するのに使われる。
- Cloud logic: AWS Lambdaをベースとし、AWS Lambda API経由でモバイルアプリから呼び出せるサービスを作成することができる。AWS LambdaはJavaScript、Java、Pythonの利用をサポートしている。コードはiOSとAndroidで共有でき、その場で変更することができる。開発者はLambda関数テンプレートを選択して、AWSアカウントから既存の関数を編集したり、スクラッチから新しい関数を作成することができる。サンプルアプリには選択された関数の実行方法が含まれている。
AWS Mobile Hubはそれ自体はフリーのサービスであり、開発者はMobile Hubが用意するAWSサービスの利用に対して請求される。AWS Mobile Hubについて、詳細はデベロッパーガイドを参照のこと。