デザインハンドオフを徹底解説!
デザインハンドオフ の時間は緊張が走ります。デザイナーとエンジニアは別々の言語を話し、異なる制約の中で仕事をしているため、連絡と連携が大変になるんです。
このギャップを埋めるための第一歩は、エンジニアが開発に何を必要としているかを明確にすることです。そのようなニーズをデザインプロセスの最初に伝えることで、デザイナーは適切な準備ができ、 デザインハンドオフ のプロセスが効率化されるのです。
そこで本記事では、ハンドオフ時にエンジニアがデザイナーに求めるものや、高機能なツールを使ったハンドオフの最適化方法などをご紹介します。
そのようなツールの1つにUXPin Mergeがあります。UXPin Mergeで、インタラクティブなコンポーネントという、デザインとエンジニアリングの間の『信頼できる唯一の情報源(Single souce of truth)』でのプロトタイプのデザインが可能になり、デザイナーはアプリのUI要素をUXPinに取り込んで、それをデベロッパーと共有することでデザインの引き継ぎが簡単になります。世界最先端のデザインツールで、あなたもシームレスなデザインハンドオフを実現しましょう。UXPin Merge のページをぜひご覧ください。
デベロッパーの視点から見たデザインハンドオフ
これまで、デザイナーとデベロッパーの連携や、より良いデザインハンドオフのプロセスの構築について、多くのことを話してきましたが、重要なのは、デザイナーとエンジニアは、デザインプロセスの早い段階でハンドオフを開始しなければならないという点です。
エンジニアは、最終製品の開発に必要なファイル、ドキュメント、アセット、スペックのリストをデザイナーに提供しなければならず、各チームは、すべてを簡単に探し出せるように、ファイル構造と命名規則を決めなければいけません。
プロジェクト開始時に技術者とデベロッパーのニーズを明確にすることで、デザインチームはツール、ワークフロー、インフラ(ファイル、プロジェクト管理ソフトウェアなど)の設定や、効率的なハンドオフのプロセスのサポートができるのです。
デベロッパーがデザイナーに求めるもの
デザインシステムの構築(製品がデザインシステムを使用していない場合も含む)
特にReactのようなコンポーネントベースのフロントエンドフレームワークでは、多くのエンジニアがコンポーネントを個別に構築し、フロントエンド開発用のプロジェクトファイルに取り込んでいます。プロジェクトのデザインシステムやスタイルガイドを作成することで、そのワークフローが円滑になり、最終的な製品の開発がしやすくなります。
多くのデザインツールはプラグインやエクステンションの追加が必要ですが、UXPinはデザインシステムの機能を全プランに標準搭載しています。なお、UXPinのデザインシステムには以下の4つのカテゴリーがあります:
- 色
- タイポグラフィ
- アセット
- コンポーネント
デザイナーは、デザインシステムの文書も含めることで、すべてを一ヶ所にまとめることができます。既存の製品ですでにデザインシステムの要素が使われている場合は、正しいファイル名を見つけ、エンジニアに通知して、重複作業を防止します。
整理されたコンポーネント
デザインシステムの構築だけでなく、デザイナーは、コンポーネントを体系的にコーディングしやすいように整理する必要があります。例えばこのマテリアルデザインでは、UI要素がタイプ別に整理されています。
また、デザイナーは、アトミックデザインの原理を用いてコンポーネントを以下のように分類することもできます:
- 原子:基礎となる要素
- 分子:UIのコンポーネント
- 生体:より大きなコンポーネントやパターン
ファイル構成と命名規則
エンジニアは、ワークフローと連携の成功のためにファイル構造と命名規則が不可欠なレポジトリで作業します。この慣習をデザインプロジェクトに反映させることで、デザイナーとエンジニアの間の「言葉の壁」を減らすことができるのです。
ドキュメント
デザイナーは、モックアップやプロトタイプのアノテーションをサポートするために、文書によるドキュメントの作成が必要です。文書化されたドキュメントは、「ユーザーが ”要素X” をクリックすると何が起こるのか?」「成功 / エラー / 警告のメッセージは何か?」「ユーザーがログインしていない場合はどうなるのか?」などの、インタラクション、インターフェース、ユーザーフローにコンテキストを提供するためのストーリーになります。
情報アーキテクチャ
プロトタイプやモックアップだけでは、Webサイトやデジタル製品の開発には不十分であり、エンジニアは、情報アーキテクチャを通じて、すべてがどのように組み合わされ、ユーザーフローがどこで始まり、どこで終わるのかの確認が必要です。
ワイヤーフレームやフローチャートは、情報アーキテクチャを表現するのに最適な方法です。デザイナーは、MiroやGoogle Jamboardのような無料のツールを使って、これらをエンジニアと共有することができ、UXPinでは、情報アーキテクチャのフローチャートを作成するためのUser Flows のライブラリが提供されています。
エンジニアは、この情報アーキテクチャを使って、ファイル構造を整理して各画面を準備してから開発に取りかかることができます。
モックアップとプロトタイプ
エンジニアは、モックアップを使って各UI(ユーザーインターフェース)を開発し、プロトタイプを使ってナビゲーションのポイント、インタラクション、アニメーションを作成します。プロトタイプの忠実度とインタラクティブ性が高ければ高いほど、エンジニアはより少ない文書と説明で解釈でき、再現しやすくなります。
大抵のデザインツールは美しいモックアップを作成しますが、インタラクティブなプロトタイプのための機能が不足しています。UXPinはコードによって駆動し、それによって最終製品のように見える、完全にインタラクティブなプロトタイプを構築するためのツールや機能がデザイナーにもたらされます。
UXPinのプロトタイプの主な機能には、以下のようなものがあります:
- ステート:1つの要素に複数の状態を適用し、それぞれに異なるプロパティ、インタラクション、アニメーションを設定できます。デザイナーは、ステートを使って、ボタンの状態のようなシンプルなインタラクティブ機能から、アコーディオン、マルチレベルナビゲーションなどの複雑なコンポーネントを作成できます。
- インタラクション:UXPinには、コードのようなインタラクティブ性を再現するためのトリガー、アクション、アニメーションの豊富なリストがあります。条件付きインタラクションにより、デザイナーはユーザーのアクションに基づいたダイナミックなエクスペリエンスを作成でき、エンジニアは開発のための正確なリファレンスを得ることができます。
- 変数:UXPinは、デザイナーがユーザーの入力を取得し、そのデータをプロトタイプの他の場所で使うために使用できる、完全な機能を備えたフォームを備えています。変数によって、ユーザーのタスク完了に必要なエラーメッセージなど、製品の入力がどのように機能すべきかをエンジニアが理解することができます。
- エクスプレッション:フォーム検証やショッピングカートのような複雑なインタラクティブ機能を作成するためのJavascriptのような関数です。エンジニアは、製品のJavascript関数を記述するための基礎として、このようなエクスプレッションを使うことができます。
仕様書(英:specifications)
仕様書は、間隔、フォントサイズ、高さ、幅など、インターフェースのCSSプロパティに関する詳細情報をエンジニアに提供するものであり、デザインツールには通常、このプロセスを自動化するためのプラグインや拡張機能が用意されています。
UXPinに搭載されたSpecモードでは、デベロッパーがUI要素を選択して、コピー&ペーストで自動的に生成される「スターターCSS」を含む仕様書を表示することができます。
チェックリスト
デザインハンドオフのチェックリストは、デザイナーがエンジニアに渡すものをすべて箇条書きにしたものです。このチェックリストにより、デザイナーは全部忘れずに確実に渡し、エンジニアは受け取ったものを確認することができるため、最も重要な文書のひとつとなります。
デベロッパーが必要としないもの
デザインハンドオフでデベロッパーが必要としないものは、必要とするものと同じくらい重要です。上記のように、エンジニアが最終製品の開発のために参照しなければならないアーティファクトや文書がたくさんありますが、情報が多すぎると、エンジニアが不要なドキュメントを選別している間に、混乱し、開発が遅れてしまいます。
エンジニアは、ユーザーペルソナ、ジャーニーマップ、競合分析など、UXリサーチのアーティファクトにアクセスする必要はなく、デザインによって解決される問題の概要を説明するには、ハイレベルな概要、レポート、まとめで十分です。
デベロッパーに優しいデザインハンドオフのツール選び
FigmaやSketchのような画像ベースのデザインツールを使うデザイナーは、デザインハンドオフのために追加のツールやプラグインに頼らざるを得ませんが、このような余分なものは、デザインコストを増やし、ミスを引き起こす可能性があります。
このようなツールを使っても、デザイナーは忠実度と機能性との戦いになり、プロトタイピングの範囲が制限されます。また、インタラクションのデモにビデオやGIFを使うこともあり、エンジニアリングチームやステークホルダーのためにコンテキストを追加して明確にする必要があります。
UXPinは、コンセプトから最終的なデザインのハンドオフまで、デザイナーが必要とするすべてを備えたエンドツーエンドのデザインツールです。デザイナーは、機能、ナビゲーション、インタラクション、アニメーションに関して曖昧さを残さず、最終的な製品体験を正確に再現するプロトタイプを作成することができます。
エンジニアは、プロトタイプ、モックアップ、ドキュメント、仕様書、コンポーネントを表示し、1つのインターフェースからアセットをダウンロードすることができます。さらに、UXPinのコメント機能により、ハンドオフ時の連携ができ、特定のチームメンバーへの質問をコメントに割り当てることもできます。
また、製品開発チームやステークホルダーはデザインのハンドオフやプロジェクトの状況を常に把握することができるように、UXPinにはSlackやJiraが統合されています。
アイデア出し、ワイヤーフレーム、モックアップ、プロトタイプ、テスト、ユーザーフロー、デザインシステム、ドキュメント、デザインハンドオフを1つのツールで行うことにより、デザイナーはプラットフォーム間を切り替える必要がなく、生産性の高い環境を構築することができます。UXPinの高品質なプロトタイプは、デザイナーが機能やインタラクティビティの説明に費やす時間を削減し、デザインからコードへのスムーズな移行を実現します。
UXPin Mergeによるシームレスな引き継ぎ
UXPinで デザインハンドオフ がしやすくなります。UXPinのMergeテクノロジーは、デザインもフロントエンドのコードも書かない、シームレスな(継ぎ目のない)引き継ぎのプロセスを促します!デザイナーはドラッグ&ドロップ、エンジニアはコピー&ペーストです。
UXPin Mergeはレポにホストされているデザインシステム(プライベートまたはオープンソース)をUXPinのデザインエディタに同期し、エンジニアが最終製品の開発に使うコンポーネントライブラリと同じものをデザイナーに提供します。この『信頼できる唯一の情報源(Singe source of truth)』は、デザイナーとエンジニアが同じ言語を話し、同じ制約の中で作業するということです。
コンポーネント ライブラリのレポジトリに変更があると、自動的に UXPin に同期され、デザイン チームに更新が通知されます。Merge のバージョン管理では、デザイナーは最新バージョンに切り替えるタイミングを選択でき、いつでもデザインシステムの初期バージョンに変更することができます。
Merge コンポーネントは完全にインタラクティブで、ステート、色、サイズなど、デザイン システムで確定されたプロパティが含まれています。デザイナーはそのプロパティをプロパティパネルで調整でき、UXPin はそれを JSX としてレンダリングし、エンジニアがデザインのハンドオフでコピーできるようにします。
Iressのデザインシステムプロダクトオーナー兼プロダクトデザインの地域責任者であるニック・エリオット氏は、Mergeが同社のハンドオフプロセスを効率化する大きな可能性を持っていると指摘します:
『エンジニアはもうゼロから始める必要はなく、どのコンポーネントや設定を使えばいいのかがすでに分かっており、それによって、よく見られる “デザインドリフト “を避けることができるようになるのです。間隔やタイポグラフィといったものは、すべて1つの場所から駆動されるため、整合性が取れているはずです。』
大変なデザインの引き継ぎから開放されませんか?UXPin Merge を使って、シームレスな(継ぎ目のない)製品開発プロセスを実現しましょう。詳細とアクセス権のリクエスト方法については、Merge ページぜひご覧ください。