モバイルアプリにおけるWebサービスのエラー処理
スマートフォンは、私たちの指先で世界中の情報にアクセスできる便利なツールですが、最高のモバイルアプリであっても、外部サーバーとの通信中に発生するウェブサービスの不具合によって、その機能が損なわれることがあります。また、遠隔地での不安定な携帯電話回線も、データ検索などの際にアプリのパフォーマンスを低下させる可能性があります。
MobileTogetherは、 ローコードで、クロスプラットフォーム対応のモバイルアプリケーション開発ツール Altova社の製品には、モバイルアプリケーションにおいて、開発者がWebサービスのエラーを適切に処理できる機能が搭載されており、これにより、予期せぬアプリケーションの停止や、意味不明なエラーメッセージによってユーザーに不便をかけることを回避できます。
以前の記事では、MapForceにおけるデータマッピングにおけるHTTPエラー処理について説明しました。今回は、同じWebサービスをモバイルアプリで扱い、MobileTogetherにおけるエラー処理について解説します。

MapForceにおけるAirportStatusのサンプルデータマッピングでは、3文字の空港コードを入力として受け取り、FAA(アメリカ連邦航空局)が提供するWebサービスを呼び出します。このWebサービスは、空港の状況と、現在発生している遅延に関する説明を含むJSONファイルを返します。モバイルアプリでは、ユーザーが空港を選択するためのドロップダウンリストを提供し、同じWebサービスを呼び出して結果を表示することができます。以下は、Androidスマートフォンでの表示例です

Airport Statusアプリの画面下部にあるボタンは、FAA(アメリカ連邦航空局)のウェブページに直接アクセスするためのもので、これらのページにはさらに詳しい情報が掲載されていますが、モバイル端末での表示に最適化されていません。
このモバイルアプリは、MobileTogether Designerを使用して開発されました。ウェブサービスは、RESTful APIリクエストに基づいて、ページデータソースとして追加されています。MobileTogetherのAPIリクエストダイアログは、MapForceのダイアログと非常に似ており、空港コードのパラメータ定義や、JSON形式のレスポンスのためのヘッダーフィールドが含まれています

このアプリの操作フローは非常にシンプルです。ユーザーはドロップダウンリストから空港を選択し、REST Getリクエストが実行され、表示が更新されます。これらの操作は、モバイルアプリにおけるWebサービスのエラー処理機能を備えたアクショングループによって行われます

このアプリケーションの実行中にHTTPエラーが発生した場合、エラーメッセージを表示するダイアログを表示します。開発者は、個々のアプリケーションの要件に応じて、エラー処理方法を以下の3つのオプションから選択できます
** スクリプトの中止:** エラーが発生した場合、アクショングループのそれ以降のすべての処理が停止します。エラーが発生した場合、これがデフォルトの動作です。エラーが発生しても処理を続行するには、「続行」または「エラーを発生」のいずれかを選択してください。
継続: 処理が終了することはありません。代わりに、開発者は2つの処理経路を定義し、エラーが発生しない場合(成功時)にどちらの経路を実行するか、またはエラーが発生した場合(エラー時)にどちらの経路を実行するかを選択できます。
エラー発生時: このオプションを選択すると、エラーが検出された場合に、例外が発生し、その例外がTry/Catchアクションの変数に格納されます。Try/Catchアクションの「Catch」部分では、エラーが発生した場合に実行する処理を指定します。エラーが発生しない場合は、次のアクションが処理されます。MobileTogether Designerのオンラインヘルプには、Try/Catchの詳細な説明が記載されています。また、Try/Catchについては、以前のブログ記事でも解説しています。
アプリ内での情報表示の制御
このアプリの画面表示は、一連のテーブルで構成されており、以下に示すのは、MobileTogetherのページデザインウィンドウの一部を表示したものです

画像の上部には、空港を選択するためのドロップダウンメニューがあり、選択がされた際に実行される制御操作の説明が記載されています。これは、アクショングループのトリガーとなる部分です。


各要素の表示設定は、リクエストから返されたデータに基づいて、表示内容をカスタマイズすることができます。
モバイルアプリにおけるWebサービスのエラー処理のテスト
以前の記事で、MapForceのエラー処理について、エラーを意図的に発生させ、その結果を検証するための代替的なデータマッピング方法を紹介しました。実は、有効な空港コードの代わりに空の文字列を送信することで、FAAのWebサービスにエラーを発生させることが可能です。コンボボックスの選択肢の最後の項目が空の文字列を送信し、エラーを発生させます。以下は、この動作がiPhoneアプリの横向き表示で確認できる様子です

ユーザーはその後、「OK」ボタンをクリックしてメッセージを閉じ、別の空港の状況を確認することができます

MobileTogetherを初めてご利用になる場合は、以下の情報を参考にしてください その他のサンプルとビデオデモンストレーション 導入部分をご参照ください。または、ダウンロードして、モバイルアプリにおける独自のWebサービスエラー処理機能を構築することから始めることもできます 自由に使えるMobileTogether Designer.