
タッチパネルを使ったアプリでは、従来のマウスを使ったアプリには無かった問題があります。
本エントリではタッチパネルを意識したアプリを作る為に考慮すべき点を確認します。
タッチパネルを使ったアプリの問題
Androidの乗る実機ではタッチパネルが多いでしょう。
タッチパネルをタップするのはマウスでクリックするのと似ています。
でも、些細な事ですが重大な違いがあります。
それは、タップをクリックと同様に扱うのが難しいのです。
すなわち、指でタップするということは、タッチは点ではなく面なのです。
面なので、ユーザはタップしたつもりでもタッチ点が動いてしまう事が考えられます。
アプリでTouchとMoveで別の動作を定義していると、ユーザがタップしたつもりでも、アプリはMoveの動作をしてしまいます。
では、実際にタッチパネルをタップしたとき、どれぐらいタッチ点がズレるのでしょうか?
今回は、そのズレを測定するアプリ「TouchRange」で実際のズレを測定してみます。
TouchRangeを使う
使い方

丸の中心あたりをタッチし続けて下さい。
初めにタッチした点を基点として、タッチ点が基点からどのように移動するかを計測します。
X方向とY方向のズレがグラフで表示されます。
計測結果
早速TouchRangeをArmadillo-500 FXにダウンロードして使ってみました。

丁寧にタッチしても4px程度のズレが出るようです。
すなわち、Androidアプリは4,5ピクセル程度のMoveはTouchとして動作させるようにプログラムしておくのが良さそうです。
(もしくは、ドライバでそれぐらいのズレを吸収するか…)
もちろん、指の大きさや触り方、パネルの大きさにも依存する結果ですので、もう少し余裕を持っていても良いかもしれません。
確実に言えるのは、これを意識せずにアプリを作成すると、アプリを使う時にTouchイベントを発生させる事が難しく、使いにくいアプリになってしまうでしょう。
タッチパネルだからこそ面白いアプリも作成できますが、こういう事もちゃんと考えておかないとユーザが使いにくいアプリになってしまいますよね。気をつけたいものです。
おまけ
Androidアプリ開発者で「TouchRange」のソースコードに興味のある方は私のblog「実機のタッチ誤差を調べるAndroidアプリ 「TouchRange」」をご参照下さい。