エンジニア・デザイナー間のコミュニケーションを円滑にするデザインデータ作り

## はじめに
みなさんは、エンジニア・デザイナー間のコミュニケーションに困ってないですか？

エンジニア・デザイナー間のコミュニケーションで以下のような課題をよく聞きます。

+ 「デザイナーが作成したモックアップが、エンジニアの実装時に再現できない」
+ 「デザイナーが技術的制約を十分に理解できてない」
+ 「エンジニアがデザインの意図を正確に汲み取れない」

このような課題を解決するため、解決方法はいろいろあると思います。
この記事では、このような課題を解決するためのデザインデータの作り方について解説しようと思います。

## この記事を読む上で前提となるもの
### ◯ 前提知識

+ [オブジェクト指向UIデザイン](https://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91UI%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E2%94%80%E2%94%80%E4%BD%BF%E3%81%84%E3%82%84%E3%81%99%E3%81%84%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E5%8E%9F%E7%90%86-WEB-DB-PRESS-plus%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4297113511)
+ [UI Stack]()

この記事では、[オブジェクト指向UIデザイン](https://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91UI%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E2%94%80%E2%94%80%E4%BD%BF%E3%81%84%E3%82%84%E3%81%99%E3%81%84%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E5%8E%9F%E7%90%86-WEB-DB-PRESS-plus%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4297113511) をベースに、エンジニア・デザイナー間のコミュニケーションを円滑にするデザインデータ作りについて解説します。


### ◯ 解説するUIデザイン
この記事では、「**メールアプリ**」を例にデザインデータの作り方について解説しようと思います。


## デザインデータを作る
### Step.1 オブジェクトの抽出
#### 1 - 1. タスクを言語化する
デザインデータを作るために、はじめにやることは、アプリケーションでやりたいタスク（小さな目的）を言語化することです。

タスクを言語化する時には、以下のようにします。

```html
<!-- 誰 --> が <!-- 何 --> を <!-- どうする -->
```

メールアプリのタスクはこのようになります。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/390720/e5d01bba-f0fa-7480-c57b-9b0a32294609.png)


#### 1 - 2. タスクの名詞を整理する
タスクの中から名詞を抽出し、メインオブジェクトを決め、メインオブジェクトに紐ずくプロパティを決めます！


上記の画像で名詞は、こちらになります。

- 「**ユーザー**」
- 「**新規メール**」
- 「**送信メール**」
- 「**受信メール**」
- 「**未読メール**」

これらの名詞を整理し、メインオブジェクトとプロパティはこのようになります。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/390720/00ef32d2-7b81-b575-72b2-f4d040fea344.png)


#### 1 - 3. アクションを見つける
次は、メインオブジェクトとプロパティに紐ずくアクションを見つけていきます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/390720/f89afa8b-4957-4f65-6f14-a50c52582321.png)


### Step.2 ビュー・ナビゲーションを検討する

オブジェクトの抽出したら、次は、ビュー・ナビゲーションを検討していきます。

#### 2 - 1. 基本構成を考える
基本構成を考えるために、メインオブジェクトにコレクションビュー（一覧）とシングル（詳細）を考えます！

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/390720/ca72410e-d623-6227-450b-69c6c626a437.png)


#### 2 - 2. 呼び出し関係を考える
コレクションビュー（一覧）とシングル（詳細)の呼び出し関係を考えます。

![スクリーンショット 2024-12-14 15.43.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/390720/21f06fca-e33b-a03e-ef4b-e6612c6ab3d2.png)


#### 2 - 3. ナビゲーションを考える
呼び出し関係が決まったら、ナビゲーションを決めていきます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/390720/d50e798c-8c00-85b6-0d27-2ff5d09a3ee8.png)


### Step.3 デザインを詰めていく
#### 3 - 1. レイアウトを考える
ナビゲーションが決まったら、レイアウトを考えていきます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/390720/17515a9d-3b32-b537-f146-b94caa5daf56.png)

#### 3 - 2. デザインを作る
レイアウトが決まったら、デザインを詰めていきます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/390720/de97a182-ee86-651a-64e5-058a70c664d3.png)
（適当に作りすぎてますが、許してください...）


### Step.4 状態変化を作っていく
Step.3 で作ったデザインをもとに、 UI Stackを考えます。

考える 5つの状態はこちらです

- Blank State（空っぽの状態）
- Loading State（ローディング状態）
- Partial State（部分達成状態）
- Error State（エラー状態）
- Ideal State（理想状態）


状態変化のデザインが完成したらデザインデータの完成です！

## まとめ
この記事では、このような課題を解決するためのデザインデータの作り方について解説しました。

オブジェクト指向UIデザインx UI Stack を意識することで、

エンジニア・デザイナー間のコミュニケーションはだいぶ改善すると思います！

デザインデータの作成の仕方は、こちらの記事を参考にしてみてください！

https://qiita.com/degudegu2510/items/b2c6ed2bc7278841f470

---

最後まで読んでくださってありがとうございます！

普段はデザインやフロントエンドを中心にQiitaで記事を投稿しているので、ぜひQiitaのフォローとX(Twitter)のフォローをお願いします。

https://twitter.com/degudegu2510