UI起点で考えるアプリケーション設計 / UI‑Driven Application Design


はじめに

アプリケーション設計の議論では、いまだに DB・バックエンド主体 の考え方が中心に語られることが多い。ER図、API、ドメインモデル、レイヤー構成──それらは確かに重要だ。しかし、UIが語られていない設計は本当にプロダクトの設計と言えるのだろうか

本ドキュメントは、次の前提から出発する。

アプリケーションにおいて、ユーザーが触るのは UI だけである。

DBもAPIもドメインも、ユーザーから見れば存在しない。ユーザーが現実として認識するのは、表示され、操作できる UI だけだ。本稿では、この前提に立った「UI起点の設計思想」を整理する。


1. UIは要件である

要件定義書に UI が書かれていないケースは少なくない。しかし、それは本質的に ユーザー要件を定義していない

UIが存在して初めて、次の問いが定義できる。

これらはすべて UI の問題であり、UI を書かずに裏側だけ定義しても、現実の利用状況は固定されない。

UIはデザインではなく、要件の可視化された完成形である。


2. UI仕様書と機能仕様書は往復する

正しい設計の流れは一方向ではない。

  1. UI仕様書を書く
  2. そのUIを成立させるために必要な処理を考える
  3. 機能仕様書を書く
  4. 機能制約により UI が成立しない箇所に気づく
  5. UI仕様書に戻って修正する

この UI ↔ 機能 の往復 こそが設計である。

機能仕様書だけを書いている場合、UIは暗黙知や実装者の解釈に委ねられ、結果として「想定外」が量産される。


3. DB中心設計が古くなった理由

DB中心設計は、次の前提のもとでは合理的だった。

しかし現代のアプリケーションでは、

もはや 事実の発生源は DB ではなく UI である。

DBは「最終的な記録係」に過ぎず、現実は UI 上で発生している。


4. 常時サーバー前提モデルへの違和感

従来のクライアント・サーバーモデルは、

という前提に依存している。

しかしモバイル・Webアプリの現実は異なる。

そのため、

という UI主権モデル が自然に導かれる。


5. ペルソナではなくコンテキスト

アプリ設計において、趣味や性格を含むペルソナはほとんど役に立たない。

必要なのは「誰か」ではなく「どんな状況か」である。

例:

産後ママが育児の合間に使うアプリ

この一文には、

といった UI制約 が含まれている。

有効なのは、

といった 設計に変換可能な情報 だけである。


6. なぜ設計本はUIを扱わないのか

設計本の多くは、UIを「実装詳細」として切り捨てている。一方、UI/UX本は実装や制約をブラックボックス化する。

結果として、

を同時に扱う書籍が存在しない。

このドキュメントは、その空白を埋める試みである。


7. 結論

UIは要件であり、 設計はその翻訳である。

UIが書かれていない要件定義やアーキテクチャは、ユーザー不在の設計であり、現代のアプリケーションでは信頼できない。


UI‑Driven Application Design (English)

Introduction

In many discussions about application architecture, design is still centered around databases and backend systems. While these elements are important, they are not what users interact with.

In an application, the only thing users actually touch is the UI.

Databases, APIs, and domains are invisible to users. The UI defines reality.


1. UI Is a Requirement

A requirement specification without UI does not define user requirements.

Only with UI can we define:

UI is not decoration. It is the finalized form of requirements.


2. UI and Functional Specifications Must Iterate

Correct design is iterative:

This back-and-forth is design itself.


3. Why Database‑Centric Design Is Outdated

Modern applications assume:

The database is no longer the origin of reality. The UI is.


4. Rethinking Always‑On Server Models

Clients must be autonomous.


5. Context Over Personas

Personas based on hobbies or personalities are ineffective.

What matters is context:


Architecture books ignore UI. UI/UX books ignore implementation.

This document argues that UI is the foundation of application design.


Conclusion

UI is the requirement. Architecture is its translation.