![見出し画像](https://assets.st-note.com/production/uploads/images/123039518/rectangle_large_type_2_53a66ebc3db5d05e6f7b0af9f653a163.png?width=800)
名詞を先にするとうまくいく?オブジェクト指向UI
今回は「オブジェクト指向UIデザイン」についてまとめていきたいと思います⭕️
オブジェクト指向とタスク指向
オブジェクト指向UIって?
オブジェクトを起点に構成されたUIのこと。
操作する上で、ユーザーはまずはオブジェクト(対象物)を選び、その後そのオブジェクトに対するアクション(操作)を選ぶようにする。
「名詞→動詞」の順番で操作できるUIのこと。
![](https://assets.st-note.com/img/1700641465134-7LoVhS4SgL.png?width=800)
タスク思考UIについて
一方、ユーザーがまずタスク(やること)を選び、その後でオブジェクト(対象物)を指定する、つまり「動詞→名詞」の順番で操作するUIはタスク指向UIと呼びます。
![](https://assets.st-note.com/img/1700642385854-nmfqTQ96oL.png?width=800)
身近なものをで例えると自動販売機がタスク指向で設計されています。
自販機で飲み物を買う際は以下のように操作するからです↓
お金を入れる(アクション)→飲み物(オブジェクト)を選ぶ
![](https://assets.st-note.com/img/1700643148574-RaA5cLgGrC.png)
最近だと商品を選んでから電子マネーなどで払う、オブジェクト指向の設計のものも多いですね!
タスク指向の問題点🤔
問題点1️⃣
通常、物を買う時は
商品を選ぶ→お金を払う
という流れで買い物をします。
なので自動販売機の
お金を払う→商品を選ぶ
という流れはそもそも不自然なのです。
問題点2️⃣
自販機に先にお金を入れたことで、
「やっぱり買うのやめよう」と思ったらお金を取り戻すために返却レバーを押さないといけなくなります。
![](https://assets.st-note.com/img/1700647744962-VE4PnEmrAx.png?width=800)
先に商品を選ぶオブジェクト指向で設計されていれば
「やっぱり買うのやめよう」と思ったら、その場から立ち去るだけでOKです。
「商品選択モード」にしてしまうと、操作の自由度を奪い、余計な操作を求めることになってしまうということです。
でもタスク指向を使ってはいけないというわけじゃない
ATMのようにオブジェクトが限定的で選択の必要がない場合は、タスク思考で設計しても使いづらいUIにはなりづらいです🙆♀️
![](https://assets.st-note.com/img/1700803013566-h7WrBdVRkJ.png?width=800)
オブジェクト指向UIのメリット🙌
タスク指向UIの問題点で
通常、物を買う時は
商品を選ぶ→お金を払う
という流れで買い物をします。
と記載しましたが、このように日常生活では「名詞」→「動詞」の流れで行動することのほうが多いです。
オブジェクト指向で作成されたUIは日常生活で馴染みのある順番で操作できるため直感的に操作できることがメリットとなります。
また、オブジェクト指向で設計されたUIのほうが構造がシンプルになるケースが多いため画面数の減少など開発側にもメリットがあります🫶
オブジェクト指向UIの設計プロセス
実際、オブジェクト指向で設計するためには以下のプロセスで設計していきます!説明だけだと分かりづらいので本書のワークアウトを用いながら説明します📝
1.オブジェクトを抽出する
2.ビューとナビゲーションの検討
3.レイアウトパターンの適用
今回の要件について
今回はワークアウト基礎編のレベル3「イベント店舗管理アプリケーション」を用いて説明します🙌
![](https://assets.st-note.com/img/1701078497066-B4A3HpUmhM.png?width=800)
1.オブジェクトを抽出する
まずは、要件よりオブジェクトを抽出します。
💡オブジェクトとは?
・数えられる名詞として表せる
・同種の集合として管理されうる
・共通のアクションを持っている
![](https://assets.st-note.com/img/1701079154466-IpdS0izTLy.png?width=800)
先ほどの要件の中で「名詞」だと思われるものを太字にしました。
次に、名詞を汎化してつながりを考えます。
👉例えば今回は「ブース」は「会場」として統一しています。
![](https://assets.st-note.com/img/1701079531376-JM8snu8exH.png?width=800)
次に、名詞同士を繋げてオブジェクトを整理します。
![](https://assets.st-note.com/img/1701079728068-uZph1k0zaR.png?width=800)
次に「メインオブジェクト」になるものを特定する
今回は「会場」「店舗」をメインオブジェクトとして扱います。今回グレーになっているものは「サブオブジェクト」として扱います。
![](https://assets.st-note.com/img/1701079858756-ZD6YsgYy8W.png?width=800)
また、1つの会場に対していくつも店舗があるので、店舗側に*をつけています。
メインオブジェクトに付随するオブジェクトをプロパティとしましょう
![](https://assets.st-note.com/img/1701080263672-fztc9Izqm8.png?width=800)
先ほどの図を見ながら、メインオブジェクトに付随するサブオブジェクトをまとめます。
「店舗」には「名前」「電話番号」「紹介文」「メニュー」「場所」「写真」が付随する情報として挙げられます。
「会場」は「名称」のみですね!
以上でオブジェクトの抽出は終わりです🙌
2.ビューとナビゲーションの検討
次にコレクションビューとシングルビューの呼び出し関係を検討します。
💡コレクションビューとは
オブジェクトの一覧を見ることができる画面のことです。Appleのポッドキャストだと以下の画面がコレクションビューです。
![](https://assets.st-note.com/img/1701081283211-Nfdw7OTXep.png?width=800)
💡シングルビューとは
1つのオブジェクトの詳細を示した画面のことです。
![](https://assets.st-note.com/img/1701081360516-XwROXqkHmj.png?width=800)
今回のワークアウトで考えるとこうなります。
1つの店舗に対して会場は1つだと仮定し、店のシングルビューからは会場のシングルビューに遷移できるようにします。
また、そうすると会場のシングルビューからは店舗のコレクションビューが見られるはずです。
![](https://assets.st-note.com/img/1701081407466-DwSrHwM7tr.png?width=800)
3.レイアウトパターンの適用
コレクションの性質に合わせて表示形式を選択します。
今回は店舗と会場のコレクションビューはリスト表示、会場のシングルビューはマッピング表示にします。
店舗のコレクションビュー
リスト表示にして、1画面で多くの店舗を表示しています
![](https://assets.st-note.com/img/1701245812716-k75vchcD3s.png?width=800)
店舗のシングルビュー
リストをクリックすると店舗のより詳細な画面がわかるように👌
![](https://assets.st-note.com/img/1701245876838-yNhAbbzRKV.png?width=800)
会場のコレクションビュー
今回は2会場と仮定して、写真を使って1つ1つを大きめに見せています🏞️
![](https://assets.st-note.com/img/1701245927960-YGeErZNrUs.png?width=800)
会場のシングルビュー
今回は、「場所」という性質上マッピングで表示にしました🗾
![](https://assets.st-note.com/img/1701246039995-VdJ6fmjRPH.png?width=800)
まとめ
今回はオブジェクト指向UIについてまとめましたが、これができるようになると設計がかなりしっかりできそう…!と思いました😉
身につけるためには、まだまだ練習や実践を通して経験を積むことが必要そうなので頑張ります🔥
広野さん(社長)が解説している動画もわかりやすいのでぜひ😌
この記事が気に入ったらサポートをしてみませんか?