毎日更新

41日目 オブジェクト指向UIデザイン

こんにちは。

知人の勧めで読み始めた「オブジェクト指向UIデザイン」がおもしろいので、まだ1章までしか読んでませんがここまで読んでみた僕なりのまとめと気づきについて書いてみようと思います。

まず「オブジェクト指向UIデザイン」とは、「『オブジェクト指向』な『UIデザイン』」とのことですが(そりゃそうだろう)、じゃあオブジェクト指向なUIってなんぞってことです。

この本によれば「オブジェクト = 目当てのもの」という説明ですが、たとえば読んだ本を管理する「蔵書アプリ」だったら目当てのものは「本」です。メルカリだったら、出品された「商品」です。

このオブジェクトを基準にUIを組もうという話です。本書内では、オブジェクト指向UIの対照として「タスク指向UI」という言葉がでてきます。タスクとは、「登録する」とか、「買う」といったユーザーのアクションのことを指します。

オブジェクトとタスクの違いがわかったところで、オブジェクト指向UIになっていない「よくない具体例」として、牛丼屋の券売機の事例が紹介されていました。(この本の著者が体験した話なので、今は券売機の仕様も変わってるかも。あくまで当時の話。)

牛丼屋の券売機では、まず「店内 or 持ち帰り」を選び、そのあと商品のカテゴリーを選ぶと、商品一覧画面が表示されます。そこで買いたい商品を選ぶと、「お金を先に投入してください!」と怒られたそうです。選べる商品が表示されているのに押すと怒られるというのは明らかにユーザーの期待する動きと反してますね。

基本的に人間がものを買うとき、商品を選んでからレジにもっていき、お金を払いますよね。先にお金払ってから商品を選ぶことってほぼないはずなんです。なのに、例の牛丼屋の券売機はお金が先になっている。著者が観察してみると、10人中8人が同じように先に商品を選んで怒られていたそうです。

オブジェクト指向ではなくタスク指向になっている典型的な例として牛丼券売機が紹介されていました。

この話を読んだ直後、録画したTV番組を見ようとHDDレコーダーを操作していました。録画一覧を眺めていると、すでに前クールで終わってしまったドラマの毎週録画がまだ残ってて。

「あーもうこの毎週予約はいらないや」ってことで予約解除をしようとしました。

そして、録画一覧にある該当番組のメニューから「予約設定」みたいなとこに飛べるかなと思ってメニューを見てみたが、ない。

そう、録画一覧の画面からは、予約録画の設定を行うことはできないのです。予約の設定を行うには、「予約一覧」のページに行かないといけないのです。

録画一覧の画面で「この番組の予約設定を変えたい」と思ったら、一度予約一覧画面にいき、その中から該当番組の予約設定を見つけ出し、そこで変更を行わないといけないです。まじで使いづらい。。

この瞬間、「これだ!!!!こいつが使いにくいのはオブジェクト指向UIじゃないからだ!!!」と思いました。もう完全に、それ。

話は変わりますが、過去何度かwebサービスのWFを描いたことがあります。WF作成にあたり、既存のサイトをいくつも巡り、参考にしました。

その中で、「おしゃれだな」「今っぽいな」と感じたサイト(メルカリとか、noteとか)のほとんどはオブジェクト指向UIだったなと。

出品された商品をベースにUIが組まれていて、さらに商品の詳細ページにいくと出品者ユーザーの情報もあります。そこでユーザーのアイコンとか名前をクリックしたらそのユーザーのプロフィールページに飛びますよね。

わざわざ「ユーザー一覧ページ」にとんで、そこでユーザー名を検索しないとプロフィールページにたどりつけないとかないですよね。

普段使っていて当たり前のように触れているUIデザインの多くが、オブジェクト指向ベースで組まれていたんだということが分かりました。今まで言語化できなかった部分が言語化されてとても気持ちがいい。

ちなみに、業務がタスクによって紐づいている業務用アプリや、オブジェクトが1つしか存在しない「ATM」などは、タスク指向でも問題がないそうです。業務アプリをオブジェクト指向UIにするには、アプリの設計ではなく業務の設計から見直しが必要とのこと。

オブジェクト指向UIとはなんなのか、どれくらい重要なのかってことが分かりました。

関係ないけど、この記事のボリュームあったらそのまま社内LTで使えるな。
インプットしたらここで軽めにアウトプットして、それをそのまま社内LTでしゃべるというサイクルにすれば無限ネタ供給状態に入れるわ。いいこと思いついちゃった。

6連休終わりですね。今週はあと3日、さくっと切り抜けましょう。

おわり。

  • この記事を書いた人

きわっち

元食品メーカー製造マンが未経験からwebエンジニアになりました。 エンジニアとして0から成長していく過程を発信していきたいと思っています。