画面の内側で描くか、外側で描くか: UI設計に潜む“配置”の思想
Hatched by John Smith
Jun 02, 2026
1 min read
1 views
72%
画面は、完成してから描くものではない
UI開発で本当に難しいのは、見た目を作ることではない。どの要素が、どの責務を持ち、どの順番で、どの層に配置されるべきかを決めることだ。多くの開発者は「描画」と「設計」を別々の問題として扱うが、実際にはこの二つは密接に結びついている。画面の中に何を置くかだけでなく、どこでそれを生成し、どこで重ね、どこで再利用するかまで含めて、UIは設計される。
この視点で見ると、一見まったく別物に見える二つの実践が、同じ問いに向かっていることが分かる。ひとつは、画面を構成する断片をその断片自身の近くに置く発想。もうひとつは、ポストエフェクトの後にメッシュを描く発想だ。前者は情報の責務配置、後者は描画順序の責務配置である。どちらも本質は同じで、「見えているもの」は最後に現れるが、その前に決めておくべき構造があるという事実に向き合っている。
UI設計とは、見た目を飾る作業ではない。意味の単位を、正しい場所に、正しい順序で、正しい境界の内側に置く作業である。
断片を近くに置くと、設計はなぜ強くなるのか
Fragment Colocation の直感はとてもシンプルだ。ある画面の一部を構成するデータやロジックは、その画面から遠ざけるほど、関係が見えにくくなる。逆に、画面の断片と、その断片が必要とするデータを近接配置すると、コードは読みやすくなるだけでなく、変更に強くなる。これは単なる整理整頓ではない。変更の波紋を局所化する戦略だ。
たとえば、ログイン画面に「メールアドレス」「パスワード」「エラーメッセージ」「送信ボタン」があるとする。これらを一つの巨大なViewModelやPresenterに押し込むと、画面の変更はすぐに他の領域へ飛び火する。エラー表示のルールを少し変えただけで、ボタン制御や入力検証まで影響する。これは、意味の異なる責務が同じ引き出しに放り込まれている状態だ。
Fragment Colocation は、この混線をほどく。入力欄のルールは入力欄の近くに、エラー表示はエラー表示の近くに、送信操作は送信操作の近くに置く。すると、コードは「縦に長くなる」のではなく、意味単位ごとに分割された局所的な完結性を持つようになる。大事なのは分割そのものではない。分割した結果、断片の意図が見えることだ。
これは、建築で言えば配管を壁の中に隠すのとは逆の発想に近い。配管を隠すのは見た目のためだが、UIの断片配置は保守性のためだ。見えないようにするのではなく、関係がたどれるようにする。画面のどこを直せばよいかが、構造から自然に分かるようになる。
ポストエフェクトの後に描くことが教える、順序の力
一方で、ポストエフェクトの後にメッシュを描く話は、別の種類の配置問題を扱っている。ここで問われるのは「何を描くか」ではなく、**「いつ描くか」**だ。描画の世界では、同じオブジェクトでも順序が違うだけで意味が変わる。画面全体にかかった効果の上に置くのか、効果の前に沈めるのかで、視覚的な役割はまったく別物になる。
この順序感覚は、UI設計にもそのまま通じる。ユーザーが見るのは完成品だが、システムが扱うのは段階的な合成物だ。背景、カード、モーダル、エラー、トースト、アニメーション。これらは単に同じキャンバスに並んでいるのではなく、異なるレイヤーの上に積まれている。だからこそ、順序を間違えると意味が壊れる。重要な通知がフィルターの下に隠れたり、操作対象が演出に埋もれたりする。
ここで重要なのは、順序は見た目の問題ではなく、認知の優先順位の問題だということだ。人間は画面のすべてを同時に理解できない。だからシステムは、何を先に見せ、何を後から重ねるかで、注意の流れを設計する必要がある。ポストエフェクトの後にメッシュを描くという操作は、その注意の流れを意図的に逆転させたり、補正したりする技術である。
順序は実装の細部ではない。ユーザーの認知に対する、最も静かな指示である。
たとえば、暗い背景にかすかな残像演出を入れた後、その上にくっきりしたボタンを描くと、ボタンは「操作の確実性」を担う。逆に、ボタンが演出に溶けると、ユーザーは迷う。ここで起きているのは単純な描画順の話ではなく、情報の階層化だ。後から描くものは前のものを打ち消すこともできるし、強調することもできる。
共通する問い: 責務はどこに住むべきか
二つの話を重ねると、より深い問いが浮かび上がる。責務はどこに住むべきか。UIであれレンダリングであれ、失敗はたいてい「責務が不適切な場所に住んでいる」ことから始まる。遠すぎる場所にあると理解しづらくなり、近すぎる場所に詰め込むと境界が壊れる。つまり問題は、単なる分割か統合かではない。責務の位置決めなのだ。
このとき役立つのが、三つの配置レベルで考えることだ。
- 意味の配置: その要素は何のために存在するのか。
- 構造の配置: その要素はどの断片と一緒にあるべきか。
- 時間の配置: その要素はいつ現れるべきか。
Fragment Colocation は主に意味の配置と構造の配置を整える。ポストエフェクト後の描画は、時間の配置を整える。両者は別々のテクニックに見えるが、どちらも「ユーザーに見える瞬間の品質」を支えるために、裏側の秩序を作っている。
この三層で考えると、設計の議論が少し明瞭になる。たとえば、あるUI部品を共通コンポーネント化したいとき、再利用しやすさだけを見て抽象化を進めると、意味の配置が崩れることがある。逆に、局所性だけを重視しすぎると、同じようなロジックが散らばりすぎて時間の配置が見えなくなる。良い設計は、意味、構造、時間の三つが一致している。
これは開発現場でよくある「結局どこに置くべきか分からない」という悩みにも答えを与える。迷ったら、まずその責務が答えるべき問いを一つに絞る。すると、配置先はかなり自然に決まる。データ取得なら意味の近く、表示ルールなら構造の近く、演出や重なり順なら時間の近く、という具合だ。
画面設計は、編集可能な世界を作ること
ここまでの話を一つにまとめると、優れたUI設計とは、完成した絵を作ることではなく、編集可能な世界を作ることだと言える。編集可能であるとは、後から新しい要素を加えても、全体の秩序が崩れないことだ。どこを変えればよいかが局所的に分かり、変えた結果が予測しやすいことだ。
この意味で、Fragment Colocation は「近くに置く」技術であり、ポストエフェクト後の描画は「上に置く」技術だ。前者は関係性を見えるようにし、後者は優先順位を見えるようにする。どちらも、最終的にユーザーが接する画面を、偶然の集積ではなく、意図の積層として成立させる。
具体例を考えてみよう。たとえば、認証画面でエラーが出たとき、エラーメッセージは入力欄の近くにあるべきだし、必要ならフォーム全体の上に注意喚起として再掲されるべきかもしれない。ここでは意味の近接と時間的な強調が両方働いている。あるいは、ゲームやインタラクティブな演出で残像やフィルターをかけた後に、操作ボタンだけを最後に描くことで、世界観は保ちながら操作性を損なわない。これもまた、責務の配置が正しいから成立する。
優れたUIは、すべてを一か所に集めるのではなく、関係を壊さない距離と順序を見つけている。
この視点を持つと、設計レビューの見方も変わる。まず「このコンポーネントは何を担当しているか」と問う。そして次に「その担当は、近くに置かれているか」と問う。最後に「表示の順序は、その意味を守っているか」と問う。この三つが揃ったとき、コードも画面も静かになる。静かというのは退屈という意味ではない。余計な争いが起きていない状態のことだ。
Key Takeaways
- 責務は抽象度だけでなく配置で考える。 何を持つかより、どこに置くかのほうが設計品質を左右することが多い。
- 近接は保守性を上げる。 画面の断片と必要なロジックを近くに置くと、変更の影響範囲が小さくなる。
- 順序は認知を設計する。 何を先に見せ、何を後から重ねるかで、ユーザーの理解速度と迷いの少なさが変わる。
- 意味、構造、時間の三層で判断する。 迷ったときは、その責務がどの層に属するかを見極める。
- 良いUIは編集可能である。 後から機能や演出を足しても、局所的に直せて全体の秩序が保てる状態を目指す。
画面を作るのではなく、秩序を配置する
UI設計を見た目の問題として扱うと、どうしても「きれいに見えるか」「再利用できるか」に議論が寄ってしまう。しかし本当に重要なのは、画面の中で何が近く、何が上で、何が先かという秩序の設計だ。断片を近くに置くことも、ポストエフェクトの後に描くことも、表面上は違う技術に見える。けれどどちらも、ユーザーに届く最終形を支えるために、裏側の関係を正しく整えている。
だから、次にUIを設計するときは、こう自問してみるといい。これは何を表示するかではなく、どの責務を、どの距離で、どの順序で見せるべきかの問題ではないか。そう考えた瞬間、設計は部品の寄せ集めではなくなる。画面は、単に描かれるものではなく、意味の配置として成立するものへと変わる。
Sources
Hatch New Ideas with Glasp AI 🐣
Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)
Start Hatching 🐣