draw.ioで画面仕様を作ろう

# 概要

draw.io（diagrams.net）を利用して、画面仕様を作成して、エンジニアたちと共有するメリットについてまとめてみました。

[Diagram Software and Flowchart Maker](https://www.diagrams.net/)
![Diagram Software and Flowchart Maker.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/baa52131-5f76-006d-53f1-887994a33dc0.png)

draw.ioって何？って方は下記の記事など参考にしてください。
[Draw.ioの導入方法と日本語化](https://qiita.com/Ota-T/items/4d202f4f9f05f09a6c26)


# 背景

顧客から提供される画面案、デザイナーから提供されるモックアップ（もしくはそれらを実現したHTML/CSS等）は、「デザイン・見た目・それらに対する想い」を理解するのには、大変有益なものですが、実際に実装しようとする場合には、情報が不足していることが多くあると思います。

画面の動きや表示条件に関すること、チェックすべき内容やサイズ・色に関することなど、上記の画面案・モックアップとは別に画面に関する仕様書を作成して、実際に手を動かすエンジニアと共有していく必要があります。

私も今までは、Googleスライド・スプレッドシートやAdobeXDなどを利用していたりしていましたが、最近はdraw.io一色になりました。

今回はそのメリットを中心に伝えていければと考えています。


# 想定する読者

- 要件定義・UI検討を行うプロジェクトリーダーやエンジニアの方

# draw.ioで画面仕様を作るメリット

- 方眼祇上で画面を作成できる
- サイズ・色など細かく指定可能
- 画面部品のライブラリも用意されている
- PDF・PNGなどにエクスポートできる
- Googleドライブで共有して作業しやすい
- インストール不要・無料で気軽に利用できる
- システム構成図・処理フローなどセットで作りやすい


### 方眼祇上で画面を作成できる

draw.ioを開くと、方眼紙が表示されます。
![drawio-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/5d4288f9-448d-8a2a-1a03-f013ae90bd7c.png)

その方眼紙上に基本図形（四角系、丸、三角形など）を配置していくことが簡単に画面レイアウトを作成していくことができます。方眼紙のブロックに合わせていくことで、簡単に部品の配置場所を揃えることもできます。

![drawio-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/35737d48-7139-c1a9-ec4c-24b0816281c0.png)

もちろんテキストや色を付けていくこともできます。
![drawio-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/3df01c27-508d-f863-8569-752e4b7a6e13.png)


また方眼紙自体の用紙サイズをA3、A4の縦横などを切り替えたり、カスタムでサイズ指定できるため、画面サイズを意識してレイアウトを作ることも簡単です。
![drawio-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/cb5080a9-2e44-f6cc-307c-d6744c218838.png)



### サイズ・色など細かく指定可能

実際に表現したいデザインに合わせて、サイズや色などを細かく指定することもできます。
変更したい部品を選択すると、右側に「スタイル」「テキスト」「配置」のタブがあるフォーマットパネルが表示され、そこで以下のような設定をすることができます。

- 塗りつぶしの色
- 線の色・太さ・種類
- テキストのフォント・色・縦横の表示位置、間隔
- 部品のサイズ（縦横比を維持したまま変更も可能）

![drawio-57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/b58debe6-d0f1-11c9-99c5-b94e20dbe3bf.png)

実際に適用してみました。
![drawio-8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/c4dad980-8bcf-9fa4-77ee-8803fe1a6794.png)



### 画面部品のライブラリも用意されている

画面を構成する部品では、プルダウンやラジオボタン、表などよく利用する部品があると思いますが、こちらはdraw.ioの部品で用意されていたり、外部のライブラリを読み込んで利用することができます。
![drawio-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/0cd3ce2f-68d6-1ee9-728d-8621e8fbc4cb.png)


fontawesomeなど、アイコンフォントも用意されていて、私もよく利用しています。
drawio-font-awesome
https://github.com/webketje/drawio-font-awesome
![drawio-9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/42c0b461-66e5-1dc4-9b9f-24afc2174833.png)

外部ライブラリのインポートの仕方は下記の記事が参考になります。
[draw.io で Font Awesome のアイコンを使いたい](https://qiita.com/high-u/items/b40fc69c95085bb314f2)


### PDF・PNGなどにエクスポートできる

作成したレイアウトは、PDFやPNGファイルにエクスポートできるので、
顧客に画面レイアウトの資料として提示するなど、資料でも利用しやすいのがありがたいです。

画面レイアウトをPNGにエクスポートして、顧客向けには
Googleスライド上で説明を追加して提出したりしています。
![drawio-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/bc4b77d8-3f84-deda-6b6f-1601d85c2869.png)

選択した範囲のみ画像にできるのもうれしいです。
![drawio-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/ec4e4f91-e6a2-71d9-d5f6-554825aa26e3.png)


### Googleドライブで共有して作業しやすい

エンジニアと共有する場合は、作成途中の場合はGoogleドライブ、確定したものはGithubで管理する等、
エンジニアと共有しやすいのもメリットです。

Googleドライブで共有する場合は、画面上に説明を追加したうえ、エンジニアからの確認・疑問があれば
直接、draw.io上に記載してもらっています。

![drawio-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/9342c13f-9002-337b-120f-f3332d300d85.png)
![drawio-14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/a34c7115-0256-6536-0a18-703317843b0b.png)


### インストール不要・無料で気軽に利用できる

draw.ioはブラウザがあればすぐに利用可能です。そして無料で利用できます。
この手軽さがありがたいです。
https://www.diagrams.net/

ブラウザではなく、デスクトップ版をダウンロードしてインストールして利用することもできます。

また作成したダイアグラムは先に紹介したGoogleドライブ以外にも、ローカルに保存したり、他のサービスに保存することもできます。
![drawio-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/f8f67967-5800-d9f9-0679-6b5a5a91ece4.png)


### システム構成図・処理フローなどセットで作りやすい

draw.ioはシステム構成図や処理フロー等々様々なダイアグラムを作成することができるツールです。
そのため画面仕様に加えて、画面イベントのフローや、関連する情報についても
同じファイル内にまとめて整理できるのもメリットです。

画面の仕様を考えていくと、どうしても画面でのイベントの動きも整理したくなりますので、ありがたく使わせてもらっています。

画面イベントのフロー例
![drawio-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498107/989bb887-4cd5-b15f-dfb3-4d81760706ce.png)


# まとめ

draw.ioを画面仕様として利用するメリット、いかがでしたでしょうか？

最近は実証事業やあいまいな要求の事案で、実現したいことはあるが、
どんなUIを利用してするか？それをどのようにシステムで実現するか？
をすり合わせていくために、draw.ioを重宝しています。

もちろんAdobe製品のようなツールを駆使して、高度なデザインを作成したり、
プロトタイピングを行うことで精度が上がることもあると思うのですが
そのツールの学習コストを必要以上にかけずに、さくっと画面仕様を作れるdraw.ioは優れモノだと思っています。

より便利な使い方を引き続きトライしていきたいと思います。
ぜひ皆様もよいなと思った点あったら、活用してみてください。