AndroidStudioでCloudEndpointsを使って簡単にサーバーにデータを保存する方法
エニセンスでエンジニアをやっている橋本です。
Androidのアプリ制作をおぼえてくると、機能の拡張や、新しいアプリのアイデアとしてサーバーにデータを保存したくなるかと思います。
今回はgoogleが提供しているCloudEndpointsを使い、データを保存するバックエンドの導入方法について解説していきます。
テスト環境と必要なスキル
- OSX 10.10.3
- AndroidStudio:version 1.1.0を使用
- AndroidアプリをAndroidStudioで作ったことがある
- AsyncTaskを使った非同期処理が書ける
Android Studioでの準備
- 既存のプロジェクトを開く
- File→NewModuleを選択
- Google Cloud Moduleを選択してNext
- Module Typeは”App Engine Java Endpoints Moduleを選択
- package nameは既存アプリとそろえ、最後にmodule nameを追加する
- .vFinishをクリック
- ProjectTreeにbackendが追加されていれば成功です。
backendのサンプルコード
導入時、backendに追加されるコードは以下のとおりです。
ひとつのStringがあるシンプルなモデルです。
バックエンドの作成と動作確認
作成したバックエンドの動作を確認しましょう。
下図のようにプルダウンをbackendに変更し、Playボタンを押します。
ローカルにサーバーが立ち上がっているので、 http://localhost:8080/ に接続します。
中央のテキストボックスに文字を入力し、右の青いボタンを押すと結果が上部に表示されれば成功です。
アプリ内での使い方
下記のようにAsyncTaskをつかって取得します。
ApiClientでバックエンドを指定し、作成したバックエンドメソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class MyAsyncTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { try { MyApi myApiClient = new MyApi.Builder(AndroidHttp.newCompatibleTransport(), new AndroidJsonFactory(), null) //ipは自分のmacのipを入力して下さい。 .setRootUrl("http://10.1.1.11:8080/_ah/api/") .build(); MyBean response = myApiClient.sayHi(params[0]).execute(); return response.getData(); } catch (IOException e) { return e.getMessage(); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class MainActivity extends ActionBarActivity { TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView.findViewById(R.id.textView); new MyAsyncTask() { @Override protected void onPostExecute(String string) { textView.setText(string); } }.execute("Anysense"); } } |
TextViewに Hi,Anysenseと表示されれば完成です。
まとめ
CloudEndpointsの導入方法と簡単な使い方を解説してみました。
あとは本番のGoogle Developers Consoleプロジェクトを作成してチャレンジしてみましょう。
エニセンスでは、このようなツールを使い倒したいエンジニアやデザイナーを募集しています。ご興味がありましたら、こちらからご応募ください