モバイルアプリケーションにおけるデータソースとしてのRESTサービス
MobileTogetherは、開発者が、外部ソースから取得した情報をモバイルアプリケーションに組み込むことを可能にするツールです RESTとSOAPのWebサービス, そして、受信したデータ(XML、JSON、HTMLなど)を処理・利用することができます。MobileTogetherは、RESTとSOAPの両方をサポートしており、モバイルアプリケーション開発者は、幅広い用途に対応するための、膨大なオンラインデータリソースにアクセスできます。

MobileTogether Designerの「ソースの追加」オプションを使用すると、REST、SOAP、およびHTTPリクエストの詳細情報を入力するための専用ダイアログにアクセスできます。本ブログ記事では、緯度と経度で指定された座標に対して、標高データを取得するためのRESTリクエストを実装する方法について説明します。
課題:
GPSデータは、便利であると同時に、時に不便さも伴います。モバイルアプリがGPS追跡を継続的に行う場合、ユーザーは数秒ごとに大量のデータを受け取り、デバイスのバッテリーが急速に消耗する可能性があります。また、GPSシステムはX/Y座標の記録には非常に正確ですが、標高の報告には精度が低いという欠点があります。例えば、ある丘の麓から頂上まで標高の変化を記録したい場合、より優れた解決策が必要です。
MobileTogether Designerを使用することで、クロスプラットフォームのモバイルアプリケーションを開発し、エンドユーザーが特定の場所で必要なデータを収集できるようにすることができます。また、各地点の座標を抽出し、USGSのウェブサイトで説明されているUSGSのポイント照会ウェブサービスを利用して、正確な標高データを取得することも可能です。
まず、ウェブブラウザを使って、以下のURL(http://ned.usgs.gov/epqs)でウェブサービスを試してみることができます

私たちは、座標を入力し、単位と出力データ形式を選択した後、「標高を取得」ボタンをクリックします。すると、標高データ取得サービスが以下の結果を返します

この結果の興味深い点は、まず結果ウィンドウに表示されるURLです。このURLをテンプレートとして利用することで、MobileTogetherでRESTサービスデータソースを指定できます。また、結果の本文にはXML構造が表示されています。以下に、展開されたURLを示します

モバイルアプリでRESTサービスをページソースとして利用する場合、RESTful APIリクエストのダイアログにURLを貼り付け、x座標とy座標のパラメータを適切な値に置き換えます。また、単位(フィートまたはメートル)を選択できるように、単位に関するパラメータも使用します。

弊社のアプリでは、アクショングループが座標を読み取り、永続的なデータとして定義された変数に、経度と緯度の値が更新されます。

これらの値は、次に、パラメータテーブルの「値」列に定義されたXPath式に基づいて、GETリクエストのパラメータとして提供されます。MobileTogether Designerに統合されたヘルプシステムには、RESTサービスに関する豊富なドキュメントが含まれており、HTTPヘッダーフィールドや、一部のサービスで必要となるHTTPマルチパートコンテンツなど、さまざまなオプションと設定がサポートされています。
ダイアログを閉じると、RESTリクエストに対応する新しいデータソースが、自動的にページソースウィンドウに追加されます。新しく追加されたデータソースを右クリックすると、コンテキストメニューが表示され、その中に「XMLから構造をインポート」というオプションがあります。このオプションを選択すると、ファイル選択ダイアログが表示され、ここで物理的なファイルを選択するか、または元のサンプルURL(パラメータ値を含む)を貼り付けて、RESTサービスから直接構造を取得することができます。いずれの場合でも、ページソースの構造が更新され、クエリ結果に対応するノードが追加されます

XMLの代わりにJSONデータを使用したい場合は、RESTful APIリクエストのダイアログでJSONを選択し、URLを修正して、WebサービスからJSONデータを選択してください。コンテキストメニューには「JSONから構造をインポート」という項目が表示され、それ以外はMobileTogether Designerの操作方法も同様です。
以下に、完成したアプリのメイン画面の画像を示します。左側の画面では、アプリが起動したばかりで、ユーザーがラジオボタンのいずれかをクリックしてGPS追跡機能を有効にするのを待っています。右側の画面では、GPSがオンになっており、「位置情報の更新」ボタンが表示されています。ユーザーはこのボタンをクリックすると、座標が取得され、アプリはRESTリクエストを実行して、対応する標高値を取得します。

その後、アプリはGPSの追跡機能を停止し、消費電力を削減するとともに、画面表示を更新して新しい位置情報を表示します

「住所と地図を表示」と表示されたボタンをクリックすると、最新の座標に関する詳細情報が表示されます。設定画面では、ユーザーが好みを設定したり、座標データをGPXファイルとして保存したりできます。また、このアプリケーションには、最新に記録された地点の生データを表示する「詳細」ページも含まれています。
もしご自身でこのアプリを試してみたい場合は、まずMobileTogether Designerをダウンロードしてください。これは無料で利用できます。次に、GitHubにあるhttps://github.com/altova/MobileTogether-geolocation-exampleから、この位置情報アプリと関連ファイルをダウンロードしてください。MobileTogether Designerに組み込まれているシミュレーターで実行し、Android、iOS、Windows Phoneなど、さまざまな環境でのアプリの動作を確認できます。さらに、アプリの動作をシミュレートするために、座標データを含むファイルも用意しました。このファイルを使用することで、アプリが動作している間、移動中のモバイルデバイスを模倣できます。