モバイルアプリのデバッグ

MobileTogetherは、非常に複雑で洗練された、クロスプラットフォーム対応のソリューションを構築するためのツールです。開発者は、開発中のモバイルアプリのデバッグツールを使用して、問題の特定やアプリの動作の理解を行う必要があります。MobileTogether Designerは、アクションツリー内でアプリの実行フローを詳細にデバッグできる、豊富な機能を備えています XPath/XQuery関数のデバッグ. これらの機能は、単一のツールに統合された2つのモバイルアプリのデバッグビューとして提供されています。

アクションデバッガービューを使用すると、コントロールイベントやページイベントに関連するアクションをデバッグできます。このビューは、処理中にデバッグ対象として選択されたアクションに遭遇した場合に利用可能です。XPathデバッガービューは、XPath/XQuery評価ウィンドウを開き、式を詳細に追跡およびデバッグすることができます。

開発者は、プログラムの様々な箇所にブレークポイントを設定し、アプリをステップごとに実行することができます。また、いずれの画面でも一時停止させることができ、実行環境全体を詳細に調査することができます。

それでは、モバイルアプリのデバッグを実際に見ていきましょう

以前の記事で、モバイル開発のためのプログラミング手法について解説した際、空気質アプリを使って、モバイルアプリにおけるサブルーチンの例を紹介しました。このサブルーチンは、MobileTogetherのアクショングループとして実装されており、APIから返されたデータ(協定世界時(GMT)の時間と調整値)に基づいて、その地域の空気質データの取得時刻を計算しています。このサブルーチンをデバッグすることで、計算結果が正しいことを確認できます。

まず、Calcのローカル時間アクショングループの先頭にブレークポイントを設定し、サブルーチンが呼び出された際にプログラムの実行を一時停止させます

必要な数だけブレークポイントを追加できます。また、後でそれらを見つける心配もありません。ブレークポイントは、メインのデバッグメニューから管理できます

また、メニューを使って「次のブレークポイントで停止」オプションを設定しました。これで、アプリをシミュレーターで実行できます。アプリは通常通りに動作し、"Calc local time"というアクショングループが呼び出されるまで実行されます。

以下の画像は、アプリケーションがブレークポイントで一時停止した際のシミュレーターの表示画面です。ユーザーはロンドンの都市に関するレポートを選択し、アプリケーションがAPIを呼び出した結果、現在、返されたデータから現地時間(ロンドンの時間)を計算しようとしています

画面の左側には、2つのデバッガーのウィンドウが開いています。一番上には、これから実行される処理が表示されており、赤いブレークポイントと緑色の矢印が現在のステップを示しています。その下のウィンドウには、アクショングループに至るまでの処理の呼び出し履歴が表示されています。

コールスタックの表示にある「+」ボタンは、アクショングループが呼び出された際に渡されたパラメータの値を表示します。 画面上部にある「ステップ実行」ボタンをクリックすると、処理を1ステップずつ進めることができます

ちょっと待ってください、ロンドンはイギリスのグリーンウィッチと同じタイムゾーンにあるはずですよね? それなら、GMTからの調整は必要ないはずです。 私は全てのスマートアシスタントと検索エンジンに質問したところ、それらは全て「ロンドンとグリーンウィッチはどちらもブリティッシュ・サマータイムを使用しており、これはGMTより1時間進んでいる」と答えました。

いずれにしても、APIから提供されたデータがこれなので、引き続き作業を進めることができます。コメントを一つずつ確認していくと、最初の「更新ノード」アクションが見えてきます

localDateTimeノードには、$timeパラメータの値が設定されます。

次のステップ:

日付と時刻の間に「T」という文字を挿入することで、add-hours-to-dateTime()関数に必要な構文に合わせます。

次のステップ:

調整時間が増加します。

次のステップ:

調整が必要な箇所はありますか? いいえ。

次のステップ:

「T」をスペースに置き換えてください。

次のステップ:

コメント行は、アクショングループの終了を示します。これで、画面上部の緑色の「実行」ボタンを使って、アプリケーションの通常の動作を再開できます。次に、大気質指数を表示するサブページが開きます

その結果、モバイルアプリのデバッグにおいて、アクションビューを使用することで、私たちのロジックが正しいことを確認できました。

しかし、各ステップで中間結果を保存するのは、非常に手間がかかり、不必要です。そこで、これらのステップをまとめて、一つの式にすることができます

元の3つの操作は無効化され、代わりに、複雑な式を含む1つの操作に置き換えられます。この式をテストするには、XPathデバッガーのビューを使用できます。

ビューをスムーズに切り替えることも可能でしたが、最初のデバッグセッションを一時停止し、式を修正しました。今、この新しいバージョンをシミュレーターで実行します。今回、ブレークポイントで停止した際に、XPath/XQuery デバッガー ビューで、「Step into XPath」ボタンを使用して、モバイルアプリのデバッグを開始します

XPath/XQuery評価ウィンドウが開かれ、デバッガーが式を評価し始めます

それでは、XPathウィンドウにある「ステップ実行」ボタンを使用し、式を一つずつ確認していきましょう

画像の下部にあるパネルには、アクショングループが呼び出された際に提供されたパラメータの内容が表示されています。変数 $time の値は、APIから返された文字列データを含むJSONノード s から取得されました。

次のステップ:

式の中で、変数Tは依然として、add-hours-to dateTime()関数が持つ構文規則に従う必要があります。

次のステップ:

今、いよいよ本番に入り、処理が完了しました。今回の実行において、元の $time パラメータは 2020-08-03 07:00:00 で、調整に使用された $adj の値は -07:00 でした。その結果、最終的な結果は 2020-08-03T00:00:00 となりました。

次のステップは、分単位での調整が必要かどうかを確認するためのテストです。$adjパラメータは「00」で終わるため、このテストは失敗し、"T"が置き換えられ、サブページが表示されます

もしクロスプラットフォーム開発を行っているのであれば、モバイルアプリのデバッグ機能を持つツールが必要です。ぜひ、弊社のMobileTogetherをお試しください ビデオデモンストレーション, もっと サンプルアプリケーション, または、さらにその オンラインマニュアル 詳細な情報については、ぜひこちらをご覧ください。そして、もしあなたが、最も短い時間でクロスプラットフォームのモバイルアプリを開発したいとお考えなら、ぜひこちらから始めてください MobileTogether Designerをダウンロードしてください 始めるために。