[音楽] GIBSON: この動画では、単純な Android アプリを取り上げ

[音楽]
GIBSON: この動画では、単純な Android アプリを取り上げ、そのアプリに Bluemix のサービスが提
供する機能を追加する方法を紹介します。具体的に言うと、基本的なリスト・アプリケーションから始め、
Mobile Data サービスを利用してクラウド・ストレージのサポートを追加します。これにより、このアプリはセッ
ションが切り替わったり、複数の端末を同時に使用したりしても、リストを維持することができます。
これを実現するには、最初に BlueListCloud という名前の Bluemix アプリを作成する必要があります。
このアプリはモバイル・アプリケーションのバックエンドとして機能し、ダウンロードする SDK を提供します。次
に、その SDK を既存の Android アプリに統合して、Mobile Data API を利用するようにコードを更新
します。
これらのステップを始める前に、このアプリを見てみましょう。現時点でこのアプリケーションが提供しているの
は、私たちがリスト・アプリに期待するような基本機能だけです。アプリを起動すると新しいリストが表示され、
私たちはそこに項目を入力することができます。この例では、食料品店で買う食材をメモとして入力するこ
とになります。
私たちはまた、項目を削除したり、変更したりすることもできますが、データはモバイル端末のメモリーにしか
存在しません。そのため、ご想像のとおり、アプリケーションを再起動するとデータがすべて失われてしまいま
す。
では、Bluemix を使用してこのアプリケーションを改善する作業に取り掛かりましょう。まず初めに、
Bluemix のランディング・ページを表示します。このページから、クラウドでホストされている私たちのソリュー
ションのすべてにアクセスすることができます。
ログインした後、「DASHBOARD (ダッシュボード)」をクリックすると、アプリケーションとサービスが表示されま
す。今の時点では何も表示されていませんが、この後すぐにこの状況を変えます。Bluemix に関する一般
的なドキュメントを読んで調べる必要がある場合には、「DOCUMENTATIONS (ドキュメント)」タブに一
連の資料が用意されています。クイック・スタート・ガイドやチュートリアルもここにあります。
ここでは、「STORE (ストア)」をクリックします。「STORE (ストア)」には、Bluemix が提供する各種のバン
ドル、アプリケーション、サービスのすべてが表示されます。
一番上に、モバイル・アプリケーション・サービスのオプションがあります。これは、モバイル・アプリケーションを
開発するには理想的なオファリングのバンドルです。このバンドルに含まれているサービスを調べて、各サービ
スに関するドキュメントを閲覧したら、アプリケーションの作成に取り掛かります。
このアプリケーションは、私たちの BlueList アプリケーションを改善するために必要なクラウド・データ・ストレ
ージ機能を提供してくれることから、BlueListCloud という名前を付けたことを思い出してください。
アプリケーションのステージングが完了すると、バックエンドのクラウドでホストされるバージョンのアプリケーショ
ンを表すパネルが表示されます。これらのタブから、私たちのクラウド・アプリケーションに関するさまざまな統
計や設定にアクセスすることができます。
「SERVICES (サービス)」タブでは、サービスのバンドルを管理することができます。オファリングを追加また
は削除できる他、各サービスに関連する構成オプション、ドキュメント、ダウンロード可能な成果物を表示
することができます。
「ENVIRONMENT VARIABLES (環境変数)」タブには、私たちのコードを Bluemix に接続する際に
使用される、読み取り専用の値が表示されています。私たちは、アプリケーション内部で使用する独自の
環境変数を作成して管理することもできます。「RESOURCES (リソース)」タブには、アプリケーションとす
べてのインスタンスに関する各種の統計が表示されます。これには、メモリー割り当てや CPU 使用率も
含まれます。
「FILES + LOGS (ファイルとログ)」は、この先で問題に突き当たったときにコードをデバッグするのに役立
ちます。そして最後に、「SDKS (SDK)」タブがあります。このタブでは、アプリケーション ID を確認したり、
Android 用 SDK をダウンロードしたりすることができます。このアーカイブには、コードから Mobile Data
サービスを利用するために必要な JAR ファイルが含まれています。
この時点で、BlueList アプリのバックエンドとして機能する BlueListCloud アプリケーションの作成が完
了します。また、Bluemix ダッシュボードから SDK もダウンロードしました。これで、私たちのアプリに機能
を追加する作業を始める準備が整いました。
最初のステップは、SDK を組み込んで構成し、初期化することです。次に、実際に Mobile Data API を
利用するようにコードを更新する作業に取り掛かります。SDK には、2 つの JAR ファイルが含まれてい
ます。それは、IBM コアと IBM データです。この 2 つの JAR ファイルを Android プロジェクトの Libs
フォルダーにドロップします。さらに、SDK に含まれている JSON 構成ファイルをインポートして、このファイ
ルを Bluemix ダッシュボードに表示されているアプリケーション ID で更新します。
作業がどれだけ進んだか確認しましょう。これまでに、バックエンド・サービスを作成し、SDK をダウンロード
し、SDK を私たちのプロジェクトに統合しました。これで、コードを扱い始める準備が整いました。
私たちは、このアプリケーションに対して、インターネットへアクセスできる権限を付与する必要があるかもし
れません。そのためには、Android マニフェストを更新し、必要なアクセス権を設定します。このチュートリア
ルでは、あらかじめそのように更新しておいたので、実際の Java コードに変更を加える作業に取り掛かり
ます。
エントリー・ポイントは、BlueList アプリケーション・クラス内にあります。ここで、単純な呼び出しを行って、
SDK を初期化します。これは、Activity に対して作成されたメソッドに含まれるたった 1 行の呼び出し
ですが、この呼び出しによって、モバイル・アプリケーション・サービス・バンドルに用意された広範な機能のす
べてを利用できるようになります。Mobile Data もその 1 つです。
このクラスには、もう 1 つのマイナーな変更が必要です。それは、item クラスを専用クラスとして登録する
ことです。その理由は、次のセクションでわかります。
今度は基本 item オブジェクトを Mobile Data サービスに統合する必要があります。アノテーションを使
用して、クラスを IBM データ・オブジェクトの専用クラスとして定義した後、そのクラス自体を継承します。
それが終わったら、あと必要なことは item の既存のゲッターおよびセッターを更新して、SDK のメソッドを
使用するようにすることのみです。
元のアプリケーションでの問題の 1 つは、アプリのセッション間でデータが失われてしまうことです。それを修
正するには、listItems という名前のメソッドを作成して、そのメソッドの呼び出しを追加します。このメソッド
によって、クラウド・ストレージにすでに維持されているすべての項目をリストに再び取り込みます。
このクラス内には、Mobile Data サービスとの接点が他にもいくつかあります。createItem メソッドは、
SDK の saveInBackground メ ソ ッ ド を 使 用 す る よ う に し ま す 。 deleteItem メ ソ ッ ド を 更 新 し て
Mobile Data サービスに対してバックグラウンドでの削除リクエストを発行するように更新します。
次のいくつかのステップでは再生速度を上げます。更新内容を理解できるように、動画を適当に一時停止
するか、このサンプルに関連して作成されたチュートリアルの資料を調べてください。
基本的に、BlueList アプリケーションでは、呼び出しおよびコールバック・システムを実装することが必要な
モデル・ビュー・コントローラーを使用しています。Bluemix でホストされている Mobile Data クラウド・サー
ビスとやりとりするには、単純に saveInBackground や deleteInBackground などの API を呼び出
すだけです。これらの API は、前にプロジェクトに統合した SDK JAR ファイルに用意されています。また、
SDK には、これらの API 呼び出しに引数として渡せる結果オブジェクトも用意されています。
残る作業は、Mobile Data サービスが結果またはエラーを返したときの動作を定義することだけです。ここ
でもまた、アプリケーションの既存の createItem メソッドと deleteItem メソッドを更新して、Mobile
Data サービスから維持されているデータをロードする新しいリスト項目メソッドを実装します。
このクラスの処理が終わったら、finishedEdit メソッドを更新して SDK の同じ saveInBackground
API メソッドを使用するように、EditActivity クラスに切り替える必要があります。
これまでに行った作業を振り返ってみましょう。まず Bluemix ダッシュボードにログインして、ストアのモバイ
ル・アプリケーション・サービス・オプションを使用して BlueListCloud アプリケーションを作成しました。この
アプリケーションは、私たちのモバイル・アプリのバックエンドとして機能し、Mobile Data クラウド・サービスと、
開発に必要な SDK の両方を提供します。
次に、SDK をインポートして、メイン・アクティビティーとともに初期化しました。そして最後に、基本的な作
成、編集、削除メソッドを更新して、SDK が提供するクラウド・ストレージ API を利用するようにしまし
た。
ここに、改善後のアプリケーションの 2 つのインスタンスを並べて実行します。今ではアプリケーションを閉じ
てもリストは失われません。そして、リストに対して行なった変更内容は、もう一方の端末に引き継がれま
す。
これで、私たちのアプリケーションはクラウド・ストレージと連動するようになったので、Bluemix ダッシュボード
に戻ってデータ・ビューアーを確認します。それには、BlueListCloud バックエンド・アプリケーションがバンド
ルされた Mobile Data サービスをクリックするだけです。すると、BlueList アプリ内部で作成したすべての
オブジェクトを確認することができます。
オブジェクトを削除することも、Item クラス全体を削除することさえもできます。データ・ビューアーでは、ファ
イルのオブジェクトを新しいクラスまたは既存のクラスにインポートすることも可能です。Bluemix を使用して、
このモバイル・アプリケーションをさらに改善することもできます。例えば、プッシュ通知を追加すれば、即時に
更新を通知できます。それについては、今後の動画で詳しく取り上げます。