🤖

オブジェクト指向UIデザインを読んだのでいくつか感想

2024/06/26に公開

デザインについて何かしらの根拠に基づいて議論できるようになりたくて、積んであったOOUI本を読んだ。面白かったところをいくつかピックアップして書いてみます。
本の内容をちゃんと紹介する記事ではなく、まだ読んでいない方・OOUIとは何かを知らない方は読者として想定していません。

書籍
https://gihyo.jp/book/2020/978-4-297-11351-3

道具の話について

「はじめに」に書いてあった道具の話。面白かった。

道具をうまく操り、それが自分の身体の一部のようになっている時、その自己帰属感と自己拡張感は道具の道具的存在性を露わにします。

(はじめに vより)

いくつか例示してみると、例えば自分はペンを持ったらその存在を意識することなく文字を書いている。他にもブラインドタッチだったり、ゲームやる時にいちいちコントローラーを見なくても目当てのボタンが押せるとか、自転車に乗れるとか。共通するのは、目的を果たすために道具を意識していないということ。

自分が作用を及ぼす対象が(意識として)道具なのかその先にある世界なのか。これは後にUI設計にも通ずる話になる。

もう一つ重要なのは、例えばペンはものを書く以外に装飾品としてや棒として、先の尖ったものとしても使える。紙だって書いたり折ったり切ったり、貼り合わせたりくしゃくしゃにして投げたりと、紙自身が用途を確定させることはない。ものに役割を課すのは人間側であり、もの自体ではないということ。

だからUIも道具側が在り方を制限するタスク指向UIではなくユーザーが自身の目当て(=目的、対象、的なオブジェクト)に直接アクセスできるオブジェクト指向UIが良い。

最終章 イデア論の話

戦略的DDDを学んだときに思ってたようなことが書いてあって面白かった。これもオブジェクト指向UIのベースとして重要な思想だと思う。書籍の中ではあまり大きくは取り上げられてないけど。

最終章にはオブジェクト指向UIのフィロソフィーとして、クラスとインスタンスから始まり、UIの歴史、モードレスについてなどが書かれている。中でもクラスとインスタンスに続く思想の話が面白かった。

前提として、オブジェクト指向プログラミングにおけるクラスとインスタンスの話がある。オブジェクトの型としてのクラスがあり、そこからオブジェクトの実体であるインスタンスを作成する。その一般から個別を作るという構図の補足でイデア論が紹介されている。

簡単に言えば理念と実体とか、真理と現象とか、抽象的で絶対的な概念と具体的で個別的な物体それぞれについて言及した話。我々は前者の定義それ自体を見ることはできないが、なんらかの方法でこの世界に具体化し触れることができる。

例としては数字や図形、文字や言葉などがあると思う。別に詳しいわけじゃないから話半分で読んでほしいけど。何をどうこねくり回しても1は1だし、どれだけ字体を崩して書いてもAはA。でも1の表現方法はいくらでもあるし、Aもどんなフォントでも大文字でも小文字でもAと認識できる。ものごとの定義・本当の姿はこの世界の外にあって、目の前には個別的にそれが姿を表しているという話。

そんなわけでクラスとインスタンスっぽい話だった。戦略的DDDも概略としては概念的に存在するシステム像を全員で共有して具体化していくものと理解しているので、近しいものだなあと思って面白かった。

OOUIとアンチパターン(タスク指向UI)について

序盤の章でOOUIと、その反対にあるタスク指向UIについて説明されている。

いくつかの注文UIがバッドプラクティスとして紹介されていた。頷くことしかできなかった。

最近だと、あるコンビニの支払いフローが微妙すぎるというポストを見かけてめちゃくちゃ頷いた。その後のフローの前提条件を確定させるなど実装側の都合があるんだとは思うけど本当に使いづらい。

読んでいて疑問だったのは、

  • オブジェクトはエンティティ・VOのような概念に相当するものなのか、figmaなどのデザインツール上で配置する個々のアイテムに相当するものなのか
    • オブジェクト指向UIでの設計フローとしてクラスを見出すステップがあるので、どちらかというと前者っぽい
    • タイトルなどのUI要素もオブジェクトとして表現されている箇所があったような気がするけど、後の章ではオブジェクトのプロパティとして扱われていた
  • モーダルに対してネガティブな主張がされているが、編集画面に遷移することはそのオブジェクトの編集モードに移っているのと同義なのでは?
    • については終盤のどこだかでモードレスエディットパターンについての話と同時に触れられていた
    • 上記の疑問はその通りで、編集モード・送信をもってモードが終了するモーダルなUIだった
    • そもそもの記載を見落としている・読み違えてる気がしないでもない

感想としては、画面上にボタンとしてアクションを置くと多くの場合はタスク指向になるような気がした。オブジェクトを選択せずタスクを選択するような、オブジェクトの振る舞いを呼び出すのではなくタスク=手続きを実行するようなメンタルモデルが作られそう。

ワークアウトについて

(全部はやってない)

応用編にあった、既存のアプリを改善するワークアウトが面白かった。オブジェクトが整理されておらず最悪なタスク指向UIになっているものをオブジェクト指向UIに書き直してみようというワークアウト。

前段としてオブジェクト指向UI構築ステップの説明があるので、その通りにオブジェクトの抽出から主従関係の整理、プロパティの整理などを行う。それらを元に画面設計をしていく。

このワークアウトが面白かったのは、オブジェクト指向UIの威力を実際に体感できた点だった。やっぱり体感しないとわからん。いや、タスク指向UIディスで十分わかってはいたけど、before / afterが劇的すぎて面白かった。

またワークアウトを通して本職のデザイナーにはどうしても追いつけない(きちんと時間を投資して身につけない限りアウトプットに反映できない)と感じたのが、レイアウトやビジュアルの使い方だった。テキストではなくレイアウトやビジュアル(アイコンなど)の工夫で表現したいことを適切に伝える力は経験や引き出しがものをいうところだと思った。

Discussion