Geb's Moon Logo

Geb's Lab

使いやすいUIを作る最強の方法「オブジェクト指向UIデザイン」

4/11/2026

この記事は、書籍「オブジェクト指向UIデザイン」で提唱されている「オブジェクト指向UI」の簡単な解説です。 https://gihyo.jp/book/2020/978-4-297-11351-3

最近、モンスターをハントする有名ゲームがセールしていたので、買いました。 10

ただ、プレイする中で、1箇所だけ不便だと感じるUIがあるんですよね。

「アイテムのマイセット」という機能のUIです。

この画面構成はこうなっています。

マイセットトップメニュー

どれかを選ぶと、さらにその操作の対象となるマイセットを選びます。

マイセット選択

一番最初に感じた違和感は、「初手何を選べば良いかわからない」でした。

もう一つ初見で迷ったのは「マイセットの名前を変える方法」です。

マイセット選択

さらに、この「名称変更」、「マイセット解除」の時のマイセット一覧画面にもあるのです。

加えて、使い慣れてもずっと残っている不便さは、「途中で操作を切り替えられないこと」です。 使

そもそも、一覧を見る前に「移動」を選ばせること自体が無理があるように思います。 便

この機能はゲームの本筋ではないので、ここがどれだけ使いにくかろうともう100時間以上プレイしているのですが、気にはなります。

では、どういうUIであれば、使いやすいのでしょうか?

UIを改善する

どういうUIが良いか、一言で言えば、「タスク → オブジェクトではなくオブジェクト → タスクの順で選ばせる」です。

まず、マイセットメニューを選ぶと、先にマイセット一覧が表示されます。

マイセット一覧

マイセットを選ぶと操作が表示され、操作を選ぶと実行されます。

マイセットアクション

これで私が感じた不便さは全て解消されます。

まず「初手何を選べば良いかわからない」はもうありませんね。 1

「名称変更」も他の操作と同じ位置に収まりました。

「途中で操作を切り替えられない」ももうありません。

オブジェクト指向UI

このような「オブジェクトをまず見せ、それを手がかりにタスクを行わせる」UIのことを、「オブジェクト指向UI」と言います。

書籍「オブジェクト指向UIデザイン」では、オブジェクト指向UIの原則として以下4つを挙げています。

オブジェクトを知覚でき直接的に働きかけられる

オブジェクトを知覚でき直接的に働きかけられる

ユーザーがオブジェクトを画面上で見ることができ、それをPCならマウスカーソルや上下キー、スマホならタッチ等で操作できることです。 A

オブジェクトは自身の性質と状態を体現する

オブジェクトは自身の性質と状態を体現する

そのオブジェクトが何で、どういう状態なのかをユーザーが理解するのに必要十分な情報が表示されているということです。

オブジェクト選択 → アクション選択 の操作順序

オブジェクト選択 → アクション選択 の操作順序

これは先ほど説明した通りです。

全てのオブジェクトが互いに協調しながらUIを構成する

全てのオブジェクトが互いに協調しながらUIを構成する

これは少し難しいですが、オブジェクトの位置関係等からユーザーがオブジェクト同士の概念関係を理解できるということです。


オブジェクト指向でUIをデザインすることであらゆるUIが使いやすくなります。 UI

デザインはトレードオフの集合であり、常に有効なメソッドというものはほとんどありませんが、「タスク指向からオブジェクト指向への転回」だけは、半ば機械的に行えることでもあり、もう銀の弾丸と言っていいほど汎用的で強力なUI 改善方法なのです。

では、なぜ「オブジェクト指向」にすることであらゆるUIが使いやすくなるのでしょうか?

オブジェクト指向UIが使いやすい理由

オブジェクト指向UIが使いやすいのは、それが人間の本能的な行動原理に即しているからです。

それを確かめるために、一旦システム・アプリ・UIという文脈を離れて、物理世界の我々の行動、例えばレストランで料理を食べるという行動がどのように行われるか見てみましょう。

あくまで私の例ですが、まずはレジの様子を見て注文方法を確認します。 /

注文する際も、メニューを見て料理を選んでから、注文します。

料理が来たら来た料理を見て、注文と合っていれば食べ、合っていなければ店員さんに言って替えてもらいます。

このように、人間の行動とそれを決める指向は、ほぼ全て「オブジェクトを見て、それを手掛かりにタスクを行う」というオブジェクト指向の順序で行われます。

そのため、UI上での操作も、同じようにオブジェクト指向の順序でできると、使いやすいのです。

先ほどのオブジェクト指向UIの4原則も、要は「現実世界での人間の認知の仕方に、UIを合わせましょう」ということだと思います(これは書籍にはない私の解釈です)。

  • オブジェクトを知覚でき直接的に働きかけられる → 人間は五感のいずれかで知覚でき、触るなど働きかけられるものだけを「モノ」とみなす
  • オブジェクトは自身の性質と状態を体現する → 人間はそのモノ自体が体現しているものを、そのモノの性質・状態と捉える
  • オブジェクト選択 → アクション選択 の操作順序 → 人間はモノを見てからアクションを選択する
  • 全てのオブジェクトが互いに協調しながらUIを構成する → 人間はモノ同士の位置関係から概念的な関係を捉える(e.g., 箱の中におもちゃが入っている状態を「箱が親・おもちゃが子」のような関係として捉える)

オブジェクト指向UIの作り方

オブジェクト指向UIの作り方は、実は標準的なシステム設計プロセスとほぼ同じです。 UI

まずは、そのシステムで行いたいタスクを洗い出します。

  • マイセットを作成する
  • マイセットにアイテムを追加する
  • マイセットからアイテムを取り除く
  • マイセットを手持ちに入れる
  • マイセットの順番を変更する
  • マイセットを削除する
  • マイセットの名前を変える

ここで察しがつくと思いますが、このタスクをそのままUIに起こした結果として、タスク指向UIが生まれるのです。

ですので、ここから、少し工夫をしてオブジェクト指向UIに持っていきます。 33 3

まずは各タスクをオブジェクト(マイセット・アイテムなどの名詞)とアクション(作成・所持などの動詞)に分解して、それぞれの関係をモデルにします。

マイセットのORM

次に画面とその遷移の検討ですが、まずは機械的に、オブジェクト指向で使う2種類の画面「一覧画面」と「詳細画面」を全オブジェクトに割り当てます。 UI 沿

画面と遷移図

次に各画面をデザインします。

画面レイアウト

ここで「マイセット詳細とマイセット内アイテム詳細、いらなくない?」という問題に気づきます。 11

解消のため、画面遷移図を修正します。

修正したナビゲーション

これで必要十分になりました。

完成!と思ったら最後に、最初に洗い出したタスクが、この画面構成で通せるかをテストします。

テストが落ちたので、修正しましょう。 1

修正画面レイアウト

これで、全部のタスクができるUIになりました。

こんな感じで、オブジェクト抽出・画面と遷移・画面レイアウト を行ったり来たりしながら考え、最後にタスク全てが通せることを確認したら、完成です。

今回は割と簡単でしたが、オブジェクトが多かったり関係が複雑だったりすると、一筋縄ではいかないことも多いです。

書籍「オブジェクト指向UIデザイン」には、この手の練習問題が豊富に載っています。

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

終わりに

本記事では、使いやすいUIを作る最強の方法「オブジェクト指向UIデザイン」を簡単にご紹介しました。

書籍「オブジェクト指向UIデザイン」も全人類読んでほしいです。 UI UIUI

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

今回はユーザーから見た使いやすさという観点で解説しましたが、エンジニアの視点で見ると、実装面でも良いことがたくさんあります。