Quantcast
Channel: Google Developers Japan
Viewing all articles
Browse latest Browse all 2207

Android 向けアプリからコーディングなしで使えるクラウド環境、Mobile Backend Starter

$
0
0
Posted by 佐藤一憲 / Solutions Architect, Cloud Solutions Team

[この記事は Mobile Backend Starter のプロダクト マネージャー、Brad Abrams が Cloud Platform BlogAndroid Developers Blogに投稿した記事、Get your Android Application Cloud-Powered with the Mobile Backend Starter を元に、佐藤が加筆・再構成しています]

いまどきのモバイル アプリケーション開発では「クラウドとの連携」が欠かすことができません。とはいっても、データベース アクセスやユーザー認証といった定番の機能を利用するためだけに毎回サーバーを自分で立てたりサーバー側のコードをひと通り書いたり自分で運用したりするのはちょっと面倒ですよね。モバイル アプリ用のバックエンドをクリックひとつで準備できて、運用もラクちんなクラウド環境があったらいいな...と思いませんか?

先日の Google I/O 2013 でのセッション From Nothing to Nirvana in Minutes: Cloud Backend for Your Android Applicationでは、まさにそうしたニーズに応えるツール Mobile Backend Starterが公開されました。



Mobile Backend Starter は、Google が提供する PaaS(Platform as a Service)である Google App Engine上で動作するモバイル アプリ用バックエンドを、クリックひとつでアップロードできます。手間をかけてサーバー環境をセットアップしたりサーバー側プログラムをコーディングしたりといった作業は一切不要。以下の豊富なバックエンド機能を Android 向けアプリから直接利用できます。


  • Datastore によるデータ保存と検索
    • Google の他の主要サービスと同じレベルのきわめて高いスケーラビリティと可用性を備えるデータ ストア、App Engine Datastoreに対して、Android 向けアプリから直接データの保存や検索が可能です。もしあなたのアプリが大ヒットして膨大な量のデータやアクセスが集中したとしても難なくさばけます。また、すべてのデータは常に複数のデータ センターにコピーされ、もしもの障害時にもサービスが停止したりデータが失われる可能性はわずかです。
  • Android 向けアプリへのプッシュ通知と Pub/Sub メッセージング
    • Google Cloud Messagingを利用したプッシュ通知をサポートしており、Android デバイス間での 1:1 や 1:n のメッセージングやブロードキャスト配信を簡単に実装できます。ソーシャル アプリや掲示板、チャット、ゲーム、グループ コラボレーション等のアプリを容易に実現できます。
  • Continuous Query によるリアクティブなユーザー エクスペリエンス
    • Continuous Query、すなわちデータの更新を常時監視して変化を検知し、クエリを自動再実行するメカニズムをサポートします。例えば、掲示板アプリにおいて書き込み内容を取得するクエリを実行すると、掲示板に誰かが書き込むたびに同じクエリが自動的に再実行され、数秒のうちにユーザー インタフェースが更新されます。もうユーザーに「リロード」ボタンを何度も押させたりポーリングを行う必要はありません。この機能の実装には App Engine の Prospective Search APIが利用されています。
  • Google アカウント認証とアクセス制御
    • Android デバイスで使用されている Google アカウント情報が自動的にバックエンド側に渡され、個々のデータにアクセスしたユーザー ID の取得やアクセス制御などのセキュリティ機能がごく簡単に利用できます。
  • 無償で始められて運用管理も楽ちん
  • オープン ソースで公開、バックエンドの機能拡張も容易
    • すべてのソース コードがオープン ソースとして GitHub リポジトリで公開されており、必要に応じてバックエンド側のコードやロジックを追加・変更して App Engine 上にアップロードして運用できます。

Mobile Backend Starter を使ってみよう

Mobile Backend Starter の使い方は簡単です。以下では、Mobile Backend Starter を使いはじめるまでのステップを簡単に紹介します。なお、手順の詳細については Getting Started ドキュメントを参照してください。

まずは http://cloud.google.com/consoleを開き、CREATE PROJECT ボタンをクリックして 新しいプロジェクトを作成します。つづいて、画面上に表示されるサンプルコードから Mobile Backend App を選択して Deployボタンをクリックすると、Mobile Backend が App Engine にアップロードされます。





次に Setting ボタンをクリックし、認証設定を Openにセットして保存します。



これでバックエンドが Android 向けアプリからアクセス可能になりました。最後に、ひな形となる Android クライアントをダウンロードし、Eclipse で開きます。Consts.java というファイル上の PROJECT_ID に作成したプロジェクト ID を記入します。



この Android クライアントに含まれるサンプルである Guestbook アプリを起動すると、バックエンドとアクセスできていることを確認できます。



Mobile Backend Starter のドキュメント ページでは、さらに Google Cloud Messaging を利用した Continuous Queryや、Google アカウントによる認証処理やユーザー情報取得をテストする手順が記載されていますので合わせてご覧ください。

Mobile Backend Starter のプログラミング

Eclipse 上で Guestbook アプリのソース コードを眺めれば、Mobile Backend Starter のプログラミングがいかに簡単か解るはずです。例えば Guestbook アプリでは、以下のような数行のコードでゲストブックに新しいメッセージを追加しています。サーバー側コードの記述や事前のテーブル定義が不要なだけでなく、Android 開発につきものの AsyncTask の記述(非同期ネットワーク通信)、AccountPicker(Google アカウントの選択)まわりの記述、サーバー側のユーザー認証まわりのコーディングなどをすべて省略できます。
CloudEntity newPost = new CloudEntity("Guestbook");
newPost.put("message", <...the entered text...>);
getCloudBackend().insert(newPost, null);

また以下のコードでは、Guestbook テーブルに対して Continuous Queryを実行しています。Continuous Query とは、サーバー側に保存されたデータの変化を捉えてクエリを継続的に実行する新しいメカニズムです。
CloudQuery cq = new CloudQuery("Guestbook");
cq.setScope(Scope.FUTURE_AND_PAST);
List<CloudEntity> results = cloudBackendAsync.list(cq, handler);

ここで、Scope.FUTURE_AND_PAST とは過去と未来の両方のデータに対して検索を行うという意味の指定です。具体的には、ゲストブックの過去の書き込み内容を検索するだけでなく、新しい書き込みがあるたびに瞬時に検索が再実行され、イベント ハンドラが呼び出されてユーザー インタフェースが更新されます。ユーザーにリロードボタンを何度も押させたりポーリングしたりしなくてもつねに最新の情報を表示でき、かつネットワークアクセスの回数を大幅に減らしてバッテリー消費を低く抑えられます。本来、こうしたサーバー プッシュ機能を利用するには Google Cloud Messaging のプログラミングが必要となりますが、Continuous Query を使えば一行の Scope 指定だけでサーバー プッシュ機能を利用できます。

いかがでしょうか。Mobile Backend Starter ではほんのわずかな作業でモバイル アプリ用のバックエンド環境を準備でき、かつ簡単な Android プログラミングだけでインタラクティブ性の高い豊富なバックエンド機能をすぐに利用できることが理解いただけたかと思います。なお、近日中には詳細なプログラミング マニュアルも公開される予定です。Mobile Backend Starter についてのご質問や、こう使ったよ、といったレポートなどありましたら、Stack Overflow の Cloud Endpoints フォーラムにぜひご投稿ください(ただし残念ながら英語のみとなります)。

Viewing all articles
Browse latest Browse all 2207