2010-06-10(木) [長年日記]
■ iPhoneユーザが目の色を変えるAndroidの機能紹介(2) - 賢い「戻るボタン」
前回紹介したインテント、「マルチタスクOSならでは」的な書き方をしたけど実は嘘で、別にシングルタスクOSだって実装できる*1。だからまぁ、Appleはあえてアプリケーション間連携機能を削っているという見方は正しいだろうね。iOS4でその垣根は少し低くなるようだけど、それでもiPhoneのアプリ間に立ちはだかる塀は高い。
そんなアプリ間の行き来についても、Androidはとてもよくできている。インテントと並んで評価の高い機能が「戻るボタン」なので、今回はこれを取り上げる。「戻るボタン」は多くのAndroid端末に付いているハードウェアキーで、これがアプリケーションを跨いだ遷移を実に上手にさばいてくれるのだ。
ちょっと脱線するけど、iPhoneアプリが内蔵するブラウザで、「戻る」操作を間違えたことがないだろうか。おれはよくあった。ブラウザには「ページ遷移」を制御する「戻るボタン」が必要だが、アプリに組み込まれるとさらに「前の状態」に「戻るボタン」が必要になるため、画面内にふたつの「戻るボタン」が発生してしまうのだ(アプリによって表記をいろいろと工夫しているが、機能的に近いので迷ったり間違えたりすることに変わりはない)。
ちょっと自分のiPhoneに入っているいくつかのアプリの内蔵ブラウザを並べてみた:
こんど「iPhoneアプリは厳格な審査のもとにUIが統一されているから使い易いんだ」的なことを言うヤツがいたら首を締めてやる!
……閑話休題。
こんな内蔵ブラウザの乱用が起こるのも、標準ブラウザ(Safari)をアプリ内から立ち上げると、元のアプリに簡単に戻る手段がiPhoneにはないためだ。いったんホームに戻って前に使っていたアプリを探して(また探しもの!)、起動すると前の状態を忘れていてガックリなんて場面もよくある。
Androidの「戻るボタン」は、上記の問題を両方ともスマートに解決している(下の写真はHTC Desire。左矢印マークが「戻るボタン」)。
まず、ハードウェアキーなので、間違えるということがない。これはとても重要なことで、アプリケーションは個別に同じ「戻る」という機能のキーを狭い画面に押し込めることなく実装できるから、画面が広く使えるだけでなく、操作が統一できる。多くのアプリで共通の操作になる機能には、独立したキーを与えるべきなのだ*2。
さらに、アプリケーション間を遷移すると、その遷移状態も「戻って」くれる。例として、こんなシチュエーションを考えたよ:
1. たださんは趣味を同じくする知人から耳寄りな情報をメールで受け取ったようです。さっそく、メールに書かれていたURLをタップ。
2. Androidではブラウザを内蔵したアプリはめったにない。当然、デフォルトのブラウザ*3が立ち上がってWebページが表示される。おっと、知人が教えてくれたのはTwitterのURLかと思ったら、公式サイトのURLだったようです。右メニュー内にイカロスくんのTwitterアカウントを見つけてタップ。
3. twitter.comのURLを検知して、(ブラウザではなく)Twitter専用クライアントtwiccaが立ち上がる*4。さっそくフォロー。
さて、ここまで3つのアプリを渡り歩いてきたわけだが、このあと先ほどのメールに返事が書きたい。iPhoneではホームボタンを押して、アプリ一覧からメールアプリを「探して」立ち上げるか、iOS4ではホームボタンを二度押しして起動中のアプリを「探して」選ぶというところ。iPhoneはほんとうにこの「探す」作業が多いね。
Androidでは、「戻るボタンを2回押すだけ」。
しかも、途中に挟まったブラウザのページは、メールに戻る段階で閉じられるので、次回ブラウザを起動したときにも残ることはない。ユーザの「操作の歴史」をアプリケーション境界を超えてたどることで、メール/ブラウザ/Twitterクライアントがまさに渾然一体となった動作を実現してくれる。
この他にも、戻るボタンはあらゆる場面で最適な「戻る」動作をしてくれる。ポップアップを閉じるときも、通知バーを引き上げるときも、キーボードを一時的に隠したいときにも「戻るボタン」をクリックするだけで期待通りの動作をする。Androidの「戻るボタン」は、スマートフォンを名乗るからにはまさにこうあって欲しいという「スマートさ」を持っているのだ。
記事を読んでいるとAndroidをちょー使いたくなるのですが(not スマートフォン使い)肝心のHTC Desireが品切れで全然出回ってないのが残念ですねぇ
しかし、戻るボタンとホームボタンの配置は機種(メーカー)ごとに異なるという。。
それと、Desire/Legend 以降のHTC 機種(Nexus One, Incredible, EVO 4G) はそのボタンがハードウェアでなくてソフトウェアボタンでバイブレートフィードバックなんですよね。ハードウェアのほうがいいとおもうんですが、どうしてそうしたのか。。
> smbd
今月に入って、予約した人たちが入手しはじめてるようだから、そろそろ出回り始めるかも?
>miyagawa
想像ですけど、ちゃんとUIの勉強してないんじゃないかと思うんですよねー。ハードウェアキーの重要性は、UIについて少しでもかじればわかるはずなんで。もしくは「iPhoneみたいにすっきりデザインにしろ」という圧力があるのか……。
Nexus One でタッチボタンのバイブレートフィードバックを使ってると、最初は物足りなさがありましたが、案外慣れます。画面上をタッチするのと同じ感覚ですんなり戻る/メニューを押せるのは、むしろ無理がないとさえ思えます。
UI設計において「慣れ」の要素は最重要なので、ポイントは「慣れることができるか」でしょうね。常に同じ位置にあって手探りで操作できるようになるなら、タッチでも大丈夫なのかも。本文にあげた内蔵ブラウザはボタンの位置がみんな違うから、慣れることができないわけで。
ハードウェアボタンの重要性はPalmという先達がいるはずなんですが、あまり真似されてないのはちょっと不思議です。ハードウェアボタンだけでアプリをQuickに立ち上げるランチャがあのプラットフォームにいくつあったことか。逆に特許の縛りとかがあるのかしらん。
ところで「戻る」ですが、戻るのコンテキストとしては「元のアプリケーションに戻る」と「今行った処理を戻す(Undo)」の2種類ありうると思うんですが、Androidの場合の戻るボタンは前者限定になるんでしょうか。
ホント、「おまえらもっとPalmに学べよ」って思いますよ。iPhoneに限らず、Android使ってても。
Androidの「戻る」コンテキストは、両方混じってます。上の例で、もしブラウザ内でページ遷移があれば、最初の「戻る」は「ページを戻る」になります。戻る先がなくなったら「アプリを戻る」になります。混乱しそうに思えますが、ひとつのアプリの中での状態遷移が少ないので、直感には反することなくいい感じにおさまるという。
ハードウェアボタンを取れば、部品代やら品質テスト工数やら直接の原価を削減できる上に、故障する可能性も除去できて製品の信頼性も上がるから、ハード屋さんは毎日削れるボタンはないか考えてる。なのでボタンを無くせ圧力は相当なものがあるはず。
重箱の隅で恐縮ですが、iOS4のタスクスイッチは、ホームボタン長押しじゃなくて、ホームボタン2度押しですよ。
>pie
コストダウンや信頼性向上の圧力があるのはよくわかります。一方でハードウェアボタンはユーザビリティを高めるわけで、両者の綱引きがあるんでしょうね。上で触れたPalmは(たぶん)最後までハードウェアボタンを維持したわけで(それでいて故障は少なかったです)、なにがなんでもボタンをなくすという方向はやめて欲しいものですねぇ。
>robotti_500_1
記憶違いでしたか。直しておきました。しかし二度押しとはまたハードル高いですねぇ。操作できない人が多そう。
故あって Incredible を使い始めましたが、確かに「戻る」ボタンはよく出来てます。最初慣れるまでは画面上を「こっからどうやって戻るんだ?」と探してしまいましたが、慣れれば指が場所を覚えますね。ソフトボタン+バイブレーションフィードバックでもまあ、さほど問題なく使えます。
私はX10miniを使っているので、いっそう、画面の外にあるハードキーは重要ですw
あの3つ(もしくはそれ以上)のボタンの名称ってなんていうんでしょうね?
無知ですいませんw
メニューキー、ホームキー、バックキー?
直感で使えちゃうから困らないんですけどね←ここ重要かと。
Desireもiphoneもタッチパネル入力は入力ミスが多くなるからキーはハードウェアがモアベターだす。でなければ、5インチ以上のタブレットPCだね。片手操作出来んくて、メールしずらい。