アプリケーションの動作パターン

#wpdev_jp

以前からよくあることで、お客様とのやり取りでもよくお願いすることがあるのが検証結果の確認。正確なやり取りをしないと問題の絞り込みができなくなってしまいます。特にメールやSNSなどテキストのみでやり取りしている場合ですね。最近もあったのでちょっとまとめてみましょう。

Windwos Phone アプリケーションの実行パターン

アプリケーションを開発中にテストする場合様々なモードで動作します。

  • 実行方法:VSからF5ないしF6でリモート実行 もしくは インストール済みのアプリを直接実行
  • コンパイル方法(モード):Debugコンパイル もしくは Release コンパイル
  • 実行環境: エミュレーターか実機か

表にするとこうなる。ちなみに、記号は通常テストをする頻度を想像して入れてみただけ。通常はVSからのリモートデバッグでDebugコンパイルで検証しているので絞り込みがしやすい。後は実機検証。

アプリ 実行方法 VSから実行 アプリを直接実行
コンパイル(モード) Debug Release Debug Release
実行環境 WP8エミュレーター
WP7.8エミュレーター
WP7.5エミュレーター
デバイス

 

通常はエミュレーターでリモードデバッグし、さらにデバイスでも検証する。最後にReleaseコンパイルしたものをアプリから直接起動して検証もするだろう。表の黄色い部分は通常よくやる検証パターン(Windows Phone 8 アプリの場合)である。

状況の違いによって結果が異なる(問題が発生する)ケース

で、アプリケーション自体は問題なさそうなのに、この実行方法や環境の違いによって問題が発生したりしなかったりすることがある。

たとえばこんなケース

  • 実行環境の違い エミュレーターで動作するのに実機では問題が出る
  • 実行方法の違い VSから実行すると動作するのに、アプリ単体で起動すると問題が出る
  • コンパイルの違い Debugモードでは問題ないのに、Releaseモードでは問題が出る

問題解決のためには

こういう状況は実際一番面倒なパターンである。で、とにかく問題解決にはこれらの比較が重要。その際あたりまえだが、実行方法、コンパイル、実行環境 のそれぞれの項目の違いのみで比較検討をすべき。2つ以上のぱらーメータをいじると発散するw

VSからエミュレーターで実行すると大丈夫だけど、デバイスでアプリを実行するとうまくいかない。エミュレーターと実機の違いなのか、リモートデバッグと直接実行の違いによるものなのか問題が絞れない。かならず比較するのは 実行方法、コンパイル、実行環境のいずれかの違いで検討する必要がある。

正確に把握し伝えることが重要

実はよくあるのが本人はそうやって確認しているのだが、それがテキストで伝わらないことがあります。(実際お客様に確認を求めたことは何度もありました)実行方法の違いで問題が出ているのか、コンパイルの違いで問題が出ているのか、確認することはよくあります。結局再度検証して、原因がわかったりすることも何度かありましたけどね。