連載:Azureモバイルサービスで作る簡単スマートフォン・アプリ
モバイル・サービスを活用するAndroidアプリを作ってみよう
Azureモバイル・サービスを使用してAndroidのアプリを作成する方法を説明。また、CLIを実際の開発で活用する。
今回は、Microsoft Azure(旧称:Windows Azure)モバイル・サービス(以降、モバイル・サービス)を使用してAndroidのアプリを作成する方法を説明する。今回はWindows上で開発を行う。
Android Developer Tools(ADT)をインストールする
ADTのダウンロード
Microsoft Azureポータルにアクセスし、モバイル・サービスのクイックスタート(次の画面)から[Android Developer Tools (ADT) をインストール]リンクをクリックして、リンク先を開く。
- 1クイックスタートをクリック。
- 2[Android]タブをクリック。
- 3[Android Developer Tools (ADT) をインストール]リンクをクリック。
ADTの起動
ダウンロード完了後、.zipファイルを解凍して、eclipseフォルダーの中の「eclipse.exe」ファイルをダブルクリックし、次のように起動することを確認する。
もし、何らかのエラーが発生して起動しない場合は、Javaがインストールされていないと思われるので、Java SE DownloadsからJava SE 7(JDK7)をダウンロードしてインストールすればよい。このとき、Java SE 8(JDK8)を選んでしまうと、Eclipseは起動できるが、ビルドができなくなってしまうので注意してほしい。
アプリケーションをダウンロードして実行する
Androidプロジェクトのダウンロード
AzureポータルからAndroidのプロジェクトをダウンロードして解凍する。
Eclipseへのプロジェクトのインポート
次にダウンロードしたプロジェクトをEclipseにインポートする。
[Existing Android Code Into Workspace]を選択して[Next]ボタンをクリック。
[Root Directory]にダウンロードしたプロジェクトを指定して、[Finish]ボタンをクリックする。
エミュレーターの設定
プロジェクトがインポートできたら、エミュレーターを設定する。
- 1[AVD Name]に「android」というような任意の名前を入力。
- 2[Device]で「Nexsus S」を選択。
- 3[Target]で「Android 4.4.2 - API Level 19」を選択。
- 4[CPU/ABI]で「ARM」を選択。
- 5[Skin]で「WVGA800」を選択。
- 6[Use Host GP]にチェックを入れる。
上記入力後、[OK]ボタンをクリックする。
エミュレーターの起動
エミュレーターの設定後、起動を行う。
Androidアプリのデバッグ
Eclipseからデバッグを行う。
このときエラーとなっているのは、第2回目でテーブルのアクセス許可を[認証されたユーザーのみ]に設定していたからだ。
テーブルのアクセス許可の変更
第3回で紹介したCLI(コマンドライン・インターフェース)を使って、以下のようにして「アプリケーションキーを持つユーザー」に変更してみよう。
azure mobile table update -p *=application [サービス名] [テーブル名]
azure mobile table show [サービス名] [テーブル名]
|
全て「application」と表示されていることを確認する。
アプリ実行: タスクの表示確認
エミュレーターの[Reflesh]ボタンを押して、タスクが表示されることを確認する。
認証機能を追加する
import文の追加
第2回のiOS版ではFacebookを用いて認証をしていたので、同様に追加していく。まずは次のimport文を「ToDoActivity.java」ファイルの先頭に追加する。
import com.microsoft.windowsazure.mobileservices.MobileServiceUser;
import com.microsoft.windowsazure.mobileservices.MobileServiceAuthenticationProvider;
import com.microsoft.windowsazure.mobileservices.UserAuthenticationCallback;
|
ログイン画面を表示する処理の追加
次にログイン画面を表示する次のコードを追加する。
private void authenticate() {
// Login using the facebook provider.
mClient.login(MobileServiceAuthenticationProvider.Facebook,
new UserAuthenticationCallback() {
@Override
public void onCompleted(MobileServiceUser user,
Exception exception, ServiceFilterResponse response) {
if (exception == null) {
createAndShowDialog(String.format(
"You are now logged in - %1$2s",
user.getUserId()), "Success");
createTable();
} else {
createAndShowDialog("You must log in. Login Required", "Error");
}
}
});
}
private void createTable() {
// Get the Mobile Service Table instance to use
mToDoTable = mClient.getTable(ToDoItem.class);
mTextNewToDo = (EditText) findViewById(R.id.textNewToDo);
// Create an adapter to bind the items with the view
mAdapter = new ToDoItemAdapter(this, R.layout.row_list_to_do);
ListView listViewToDo = (ListView) findViewById(R.id.listViewToDo);
listViewToDo.setAdapter(mAdapter);
// Load the items from the Mobile Service
refreshItemsFromTable();
}
|
ログイン画面を呼び出す処理の追加
最後にonCreate
メソッドを次のように書き換え、認証画面を呼び出す。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_do);
mProgressBar = (ProgressBar) findViewById(R.id.loadingProgressBar);
// Initialize the progress bar
mProgressBar.setVisibility(ProgressBar.GONE);
try {
// Create the Mobile Service Client instance, using the provided
// Mobile Service URL and key
mClient = new MobileServiceClient(
"https://nnasaki-bi.azure-mobile.net/",
"xxxxxxxxx",
this).withFilter(new ProgressFilter());
// 認証の呼び出しを追加する。
authenticate();
} catch (MalformedURLException e) {
createAndShowDialog(new Exception("There was an error creating the Mobile Service. Verify the URL"), "Error");
}
}
|
コードの修正は以上だ。
テーブルのアクセス許可を元に戻す
最後に、テーブルの認証設定を再び[認証されたユーザーのみ]に戻す。
azure mobile table update -p *=user [サービス名] [テーブル名]
azure mobile table show [サービス名] [テーブル名]
|
「user」に書き換わっていることを確認する。
アプリ実行:ログイン画面の表示確認
Eclipseから実行して、次のFacebookログイン画面が表示されれば成功だ。自分のアカウントでログインして表示できることを確かめてほしい。
まとめ
Androidもこのように簡単に開発ができることがお分かりいただけたと思う。また、CLIを実際の開発で使う方法をご説明した。
1. iOSアプリを5分で作ろう! Azureモバイルサービスで簡単開発
Azureモバイル・サービス(BaaS)を使用してiOSやAndroidなどのアプリを作成していくことで、その魅力を紹介する連載がスタート。今回はToDoリストを管理するiOSアプリのサンプルを作成して動かしてみる。
2. 認証機能とプッシュ通知をしよう!
iOSのサンプルでAzureモバイル・サービス(BaaS)の機能を紹介。Twitter、Facebook、Google、Microsoftなどの認証プロバイダーを使用した認証機能とプッシュ通知の実装方法を説明する。
3. モバイルサービス開発でコマンドラインを活用しよう!(Win/Mac/Linux対応)
Azure管理用のコマンドライン・インターフェース(CLI)を活用して、モバイル・サービス開発を効率化しよう。その活用方法を解説。