図1

アップ確定、ダウン確定

ボタン動作のタイミングの話です。普段何気なくボタンを押していると思いますが、ボタンの動作は押した瞬間に動作するものと、ボタンを離した瞬間に動作するものがあります。

アップ確定とダウン確定


ボタンを押した瞬間に動作するものをダウン確定と言います。
ボタンを離した瞬間に動作するものをアップ確定と言います。
プログラム的にはmouseDown、mouseUpと書き分ける必要があるので、プログラミングをしている人には馴染みがあると思います。

アップ確定

スマートフォンなどのタッチパネルではミスタップ(押し間違い)がつきものです。押した瞬間に間違いに気づいた場合、指をずらしてボタンから離れたところで指を離すと入力されません。誤操作を回避するために有効です。
パソコンやスマートフォンののアプリケーションの操作ボタンはほとんどアップ確定になっているはずです。

指を離すまで文字入力は確定されません

ダウン確定

ダウン確定はボタンを押した瞬間に動作するものです。iPhoneで言えば電話アプリで使われています。(以前は計算機アプリもダウン確定でした)

数字ボタンを押した瞬間に入力されます


Androidでも同様にボタンを押した瞬間に動作するダウン確定です。

数字ボタンを押した瞬間に入力されます


何故、電話アプリではダウン確定が採用されているのでしょうか。


ダウン確定のメリット

ダウン確定ではボタンを押すとすぐに反応します。即座に反応して欲しい動作に有効です。ダウン確定が使われているものには他にも以下のものがあります。

・楽器アプリ
・アクションゲーム
・計算機(iOS6まで)

上記の例を見ると、即時性が求められる操作でダウン確定が使われている様です。

しかし、果たして電話アプリも即時性が求められているのでしょうか。
電話アプリは即時性というよりも、ボタンを押した時にプッシュ音がなるため、聴覚的なフィードバックとの整合性を取っていると言えます。

ストップウォッチアプリは時間を計測するために即時性が求められると思うのですがアップ確定になっています。アップ確定だとボタンを押してから離すまでのタイムラグがあるため微差が発生しそうなため、より正確な時間を測定するにはダウン確定にした方が良い様な気もします。

ボタンから指を離した時に動作します。


ボタンを押し続けている間、入力され続ける仕様をキーリピートと言います。連続入力したい時にボタンを連打するのは大変なため、キーリピートが使われます。
キーリピートはボタンを押し続けることにより動作を続けるので、ボタンを押した瞬間から動作するダウン確定によって動作開始されなければいけません。

キーリピートにはダウン確定が必要になる
キーリピートはキーボードで使われています。例えば、削除ボタンを押し続けている間は文字が消され続けます。削除ボタンはキーリピートが働くボタンなのでダウン確定になっています。

削除ボタンのみキーリピートが効くためダウン確定になっています

先ほどの電話アプリでは、ボタンを押し続けることでプッシュトーンが送信され続けるためアップ確定では不都合がありそうです。このため電話アプリではダウン確定を用いていると言えます。


参考:アップ確定とダウン確定(日系テクノロジーオンライン)

http://techon.nikkeibp.co.jp/article/NEWS/20080709/154585/?ST=SP&P=4


スキ / コメント / いいね / リツイート どれでも嬉しいです