今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

GoogleのMobile Backend Starterのデモを動かしてみた

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

 ということなので、試してみようかと。

Getting Started - Google Cloud Platform — Google Developers

Eclipse4.2 と Google Plugin for Eclipse(GPE)をインストール

 Requirementsを見ると、Eclipse3.8か4.2がいるらしい。3.7 Indigoを使ってたので、この際だから4.2 Juno をインストールした。さらに Google Plugin for Eclipse (GPE) をインストールしろと書いてるので、それもインストール。

 GPEの説明はこちらのページ。

Google Plugin for Eclipse 3.8/4.2(Juno) Installation Instructions - Google Plugin for Eclipse — Google Developers

メニューから[ヘルプ]-[新規ソフトウェアのインストール]を選んで、作業対象に http://dl.google.com/eclipse/plugin/4.2 を入力。

NDKプラグイン以外にチェックを入れて「次へ」をクリック。指示通りに進んで GPE をインストールする。

最後に Eclipse を再起動して GPE のインストール完了。

Eclipse 再起動後に、メニューから[ウィンドウ]-[Android SDK マネージャ]を選択して(ない場合はJavaパースペクティブに切り替えると出現する)、Android SDK Managerを起動し、パッケージを最新の状態にする。(Android Tools と、Android4.0.3以上と、Google Cloud Messaging for Android Library がインストールされてればいいらしい)

Cloud側のバックエンドプロジェクトを生成して動かす

ブラウザで cloud.google.com にアクセスして、Solutions タブを選択し、左下の「Try it now」ボタンをクリック。

New project のダイアログを表示するので、適当な Project name を入力する。Project ID は、勝手な名前が割り当てられてるけど変更できる。最初にユニークな名前を割り当てる必要がある。一度割り当てたProject IDは、以後は変更できないらしい。

Project name と Project ID を決めたら、Create をクリック!

すると、モバイル端末のアイコンを表示してる画面に遷移する。左の2つのドット(赤で囲んだ部分)をクリックするとアプリの種類を選択できるらしい。まずは Mobile Backend App を選んだ状態で、右側の Deploy をクリック。

すこし時間がかかる。Deploy の処理が完了すると、Successfully deployed the application. Settings と表示される。

Deploy のボタンの内容が「Deployed on 日付」が変化する。その下にある「Settings」をクリック。

ここでGoogleアカウントを選べと言われることがあるらしい。なかったけど。
Mobile Backend settings では、「Open」を選択して「Save」をクリックする。

確認のために https://your_appid.appspot.com/_ah/api/explorer にアクセスしろと書いてあるので、アクセスしてみる。

こんな画面が出るらしい。

もし動いてなかったら、 cloud.google.com でプロジェクトを選択して、「App Engine」アイコンをクリックして、ログを見て問題を解決しろと書いてある。

Androidのクライアントを動かす

Android Client をダウンロードする。

solutions-mobile-backend-starter-android-client-master.zip

適当なところに解凍して、Eclipse のメニューから[ファイル]-[インポート]を選択して、Android - Existing Android Code Into Workspace を選んで「次へ」をクリック。

「プロジェクトのインポート」ダイアログで、解凍先ディレクトリをルート・ディレクトリに指定し、「プロジェクトをワークスペースにコピー」をチェックして「完了」をクリック。

パッケージエクスプローラでプロジェクトを右クリックして「プロパティ」を選択。左側の一覧から「Android」を選択して「プロジェクト・ビルド・ターゲット」でAPIレベル15以上の「Google APIs」を選んで「OK」する。

Consts.java を開く。

えー、解説してるサイトだとPROJECT_IDだけしか書き換えなくていいことになってるのに、変更する必要がある箇所が3つあるっぽい。とりあえず、PROJECT_ID だけ書き換えてやってみる。

  /**
   * Set Project ID of your Google APIs Console Project.
   */
  public static final String PROJECT_ID = "*** ENTER YOUR PROJECT ID ***";

  /**
   * Set Project Number of your Google APIs Console Project.
   */
  public static final String PROJECT_NUMBER = "*** ENTER YOUR PROJECT NUMBER ***";

  /**
   * Set your Web Client ID for authentication at backend.
   */
  public static final String WEB_CLIENT_ID = "*** ENTER YOUR WEB CLIENT ID ***";

ツールバーの▶で動かそうとしたけどなぜか動かず。パッケージエクスプローラのプロジェクトを右クリックして、[実行]-[Androidアプリケーション]から起動したら動いた!

PROJECT_NUMBER と WEB_CLIENT_ID は修正しなくても問題なく動作した。

Cloud Datastore でクエリすると、きちんと表示された。

(∩´∀`)∩

ユーザーが anonymous になってるんだけど、AccountManager の認証するにはどうすればいいんだろ?

と思ったら、ちゃんと説明があった。

Google Cloud Platform  |  Documentation  |  Google Cloud

あとでやってみよう。