読もうと思った動機
デザイナーではないものの,少なからず UI を作ることがあるので,その時の設計指針を持ちたいと思った。
独断的要約
いい UI とは:
- 人が対象を自由に触れる
- 人と一体化する
これらがなんのことなのか書いていきます。
人が対象を自由に触れる
オブジェクト指向 UI は,人が対象を使って自由にアクションする(触る)ことを促進します。 逆に,タスク指向 UI は,決められた手順・方法にしたがってアクションすることを強制します。
人はモードが嫌いである。モードは,人が自由にオブジェクトと相互作用することを阻害する。
「本の記録」アプリの UI を例に,これがどういうことなのか書いていきます。
「タスク指向」の UI は,まず本に対して行うタスクを選ばせる(図左)。これは直感的ではない。人は日常的に,まず物を手にとってタスクをするが,この UI の場合,タスク → 物
の順になる。
また,タスク指向を採用すると,人を束縛することになる。例えば,「本を閲覧する」モードのときは,その本を編集することができないので,一度「閲覧モード」
を抜けて「編集モード」
に入る必要がある。
このように,タスク指向は必然的に人をモードで縛って,人がオブジェクトを自在にコントロールすることを妨げる。
一方,「オブジェクト指向」の UI (右)は,まずこのアプリで一番の関心の対象である本を人に見せる。そして,本を選択したら,次にそれに対するアクションを選ばせる(物 → タスク
の順)。
また,オブジェクト指向はモードが無い。例えば,本を 1 つ選んだら,同じ画面でそれを閲覧できるし,編集することもできる。わざわざ「削除モード」
に入り直すことなく,同じ画面で本を削除することもできる。
タスク指向 UI では,動詞 → 名詞
的なパラダイムを持つ。これは,CLI が 動詞 名詞
の構文になっているのと同じ。名詞
はあくまで 動詞
に支配される。
1# README.md ファイルを,標準出力する2$ cat README.md
一方,オブジェクト指向 UI では 名詞 → 動詞
的なパラダイムを持つ。つまり,名詞
自体に可能な 動詞
が定義されているイメージ。
1# 本オブジェクト book 自体に動詞が定義される2book.set_title("Object Oriented UI Design");3book.set_author("Manabu Ueno");
Apple, "OS X Human Interface Guidelines"
優れた UI は人と一体化する
- 人が箸(UI)を自在に操って,食べ物(オブジェクト)を口へ運ぶ
- 人がヴァイオリン(UI)を自在に操って,自在に音(オブジェクト)を操る
このように,優れた道具というのは,オブジェクトと人を円滑に接続する。
このとき道具は,人とオブジェクトの滑らかな表面になる。UI も同じで,優れた UI というのは,人が,ソフトウェアで表現されたオブジェクトを自在に操れるようなものである。
お気持ち的には,以下の図のような具合になる。
ソフトウェアで表現された抽象的なオブジェクトを,あたかも手にとって自在に動かしているような感覚や,文書や写真などが,あたかも自分の脳味噌が拡張されたようにアクセスできるようなインタフェースが,オブジェクト指向 UI の目指すところである(おそらく)。
まとめ
- オブジェクト指向 UI は,人があたかも対象を好きに触っているような自然さを与える。オブジェクト指向は, GUI が生まれた当初から UI 設計における普遍の原理となっている。
- オブジェクト UI 指向は,
物 → アクション
のパラダイムを持つ。これは,モードによって人を束縛するのを避けるのに有効である。