blogTitle.png
p < .05 公式ブログ
【β】状況報告ボタンの仕様について再考:TouchUpOutsideの使いみち
アンノッティングの考察 | comments(0)

初期の仕様

状況報告機能がまだそれほど重要では無かった初期バージョンのでは、

 

  1. 状況報告ボタンをタップすると状況報告が始まる。
  2. もう一度タップすると状況報告が終わる。

 

という仕様となっていた。iOSアプリではよく見かける典型的なトグルスイッチ型のUIである。

 

現在の仕様

状況報告機能は基本的に一定の時間間隔で機械的に反復されるが、すぐに次の状況報告内容を聞きたくなることもある。交差点に近づいて来たとき直ちに進路を確認したくなる、といった場合はその一例である。

 

そこで、現在は状況報告を任意のタイミングで行わせるためのボタンが別途設置されている。状況報告ボタンの右下にある小さなボタンがそれである。また、このボタンは円形のプログレスバーを内部に持っており、次の状況報告が開始されるまでのタイミングを表示してもいる。

 

 

小さすぎるボタンが押しづらい

このような小さなボタンが押しづらいことは言うまでもないが、他に良いデザインが思いつかなかった。私が使っていたメインデバイスが画面の小さなiPhone5だったこともあり、地図の一部を覆い隠してしまうUIを新規に配置したくないという制約条件も、ボタンを小型のものにするという意思決定に影響していたと思う。

 

しかしやはり使いづらい。状況報告を行わせるつもりでメインのボタンをタップしてしまい、状況報告機能を誤って停止させてしまうことがよくある。

 

改善案その1

そこで思いついたのが、次のような仕様であった。

 

  1. 状況報告を行っていない状態でボタンをタップすると、状況報告が始まる。
  2. もう一度タップすると、そのタイミングで状況報告がすぐに行われる。

 

つまり、従来のトグルスイッチ型の仕様を廃止して、ボタンをタップするとひたすら状況報告が行われるようにしたのである。では状況報告を終了させたい場合にはどうするかと言うと、右下の小さなボタンをタップするのである。

 

状況報告を即時行わせたいという必要性が生じるのは主に移動中であるから、非常に小さなボタンを押すという作業は繁雑に感じる。できればそんな作業は避けたいわけで、この要求は上記の仕様においてクリアされている。そして、状況報告を終了させたいという必要性が生じるのは、主に目的地までの移動を完了させて一息ついている場合であろうから、小さなボタンを操作するという作業がそれほど苦にはならないだろうと考えた。

 

しかし、小さなボタンは押しづらい、という事実に変わりはない。

 

改善案その2

状況報告ボタンの機能を従来のトグルスイッチ型に戻す。タップして状況報告開始、もう一度タップして終了、となる。また、あまりにも小さなボタンに実用性は無いと判断し、これを廃止する。状況報告ボタン右下にあるのは、ボタンではなく、単なる円形プログレスバーということになった。

 

そして、状況報告を任意のタイミングで繰り返させるための方法として、3Dタッチを使うことを思いついた。地図全体に3Dタッチのレコグナイザを仕込んでおき、地図上の任意の場所をぐっと押し込んだら状況報告が即時行われる、という仕組みである。

 

地図はこのアプリで最も大きな要素であるから、小さくて押しづらいというこれまでの問題は完全にクリアされる。しかし、3Dタッチとしての操作のつもりが、単なる長押しとして認識されてしまう可能性が非常に高く、また、地図の機能に干渉してしまう可能性もあった。これらの問題点は、小さなボタンは押しづらい、というレベルのものではなく、論外レベルの大問題である。

 

従ってこの案は却下とした。

 

改善案その3

状況報告ボタンは、

 

  1. ボタン上をタップして、
  2. そのままボタン上で指を放すと、
  3. タップしたことが認識される。

 

という仕組みになっている。タップが認識されると、その都度状況報告機能のオンオフが行われるわけである。iOSの仕様としては、touchUpInsideという設定を使っているが、このアプリに限らず、ほとんどのアプリのほとんどのボタンがtouchUpInsideの設定になっていることと思う。

 

iOSのボタンにはtouchUpInside以外にも様々な設定が用意されているが、そういった他の設定の使い途を私はほとんど思いつかなかった。特に、

 

  1. ボタンをタップし、
  2. 指をボタンからそのままずらし、
  3. ボタンの外側に出てから指を放す。

 

という動作を認識するためのtouchUpOutsideという設定は、その存在意義が理解できなかった。

 

しかしこの設定を利用すれば、ボタン上をスワイプするような動き(スワイプの認識機能は別途存在するのだが)で使うことが可能だと気づいた。ポケモンGo!のプレイヤーがよくやっている、下から上に向かって指をはじくような動きを状況報告ボタンの上で行うと、そのことを認識させられるのである。実際には下から上ではなく、横方向でも斜め方向でも良いのだが、他のUIに触れること無く自然な動作で行うとしたら、下から上へのスワイプになると思う。

 

現在は、この動作が認識されたときに状況報告が即時開始されるような仕組みをテストしている。なにか問題があるとすれば、スワイプ(的な動き)を行うつもりだったのが、実際には普通のtouchUpInsideの動作となってしまい、状況報告機能を意図せず停止させてしまう可能性があることぐらいであろうか。