第1章
Webの基本構造 — デザイナーのための技術リテラシー
レッスン 1-4 UX/UIデザインの基礎 ⏱ 所要時間:約60分
GOAL
このレッスンのゴール
  • URL入力からページ表示までの、リクエストとレスポンスの往復を説明できる
  • HTML・CSS・JavaScript の役割分担と、API・REST・SPA・CMS の役割を説明できる
  • 表示速度・レスポンシブ・実装可能性の制約をふまえてエンジニアと協業できる

あなたが仕上げた画面デザインをエンジニアに渡したところ、この数字はシステムがデータとして持っていないので出せない、この動きはこの作りでは表示が重くなる、と指摘され、作り直しになりました。見た目が良くても、そのままでは実装できないデザインは珍しくありません。このレッスンでやるのは、Webサービスが動く仕組みを、コードは書かずに概念として押さえ、実装者と正確に話せるようになることです。ブラウザとサーバの往復、画面をつくるHTML・CSS・JavaScript、サーバとデータをやり取りするAPIとREST、ページの切り替え方まで、順に見ます。表示速度や実装のしやすさはUIの作り方でも変わるので、仕組みを知っているデザイナーほど、実現できるデザインを提案できます。

Webが動く基本の流れ

普段使うWebサービスの裏側では、手元のブラウザ(クライアント)と、遠くにあるサーバが絶えずやり取りをしています。ブラウザが送る依頼をリクエスト、サーバが返す答えをレスポンスと呼び、この往復の共通ルールがHTTPです。

ブラウザ
(クライアント)
① URL入力 → ② リクエスト送信 →
← ④ レスポンス返却 → ⑤ ブラウザが描画
サーバ
③ 受け取って処理
リクエストとレスポンスの往復が1セット。この往復の共通ルールが HTTP。

この往復は、ページを開くたびに起きています。読み込みが遅い、表示されないといった不具合も、往復のどの段階でつまずいたのかという視点で捉えられるようになりましょう。不具合の報告を受けたときも、往復のどの段階の問題かを切り分けて、エンジニアに具体的に相談できます。

なお、このHTTPに通信の暗号化を加えた安全版がHTTPSで、アドレス欄の鍵マークが目印です。入力フォームや会員機能を扱う画面では、情報を安全に送れることが前提になります。仕組みの名前として押さえておけば十分です。

画面をつくる3つの言語(HTML・CSS・JavaScript)

サーバから届くのは、ページの中身を記した文字データです。ブラウザがそれを読み取って画面に組み立てる処理をレンダリングと呼び、その組み立ての材料になるのが次の3つの言語です。

HTML = 構造
何があるか。見出し・文章・画像・ボタンといった要素と、その骨組み。
CSS = 見た目
どう見せるか。色・余白・文字サイズ・レイアウトの指定。
JavaScript = 動き
操作への反応。押したときの開閉や送信など、動きの制御。
Figmaで作るデザインは、最終的にこの3層になる(色・余白=CSS、押したときの反応=JavaScript)。

本講座でコードを書くことはありません。ただしFigmaで作るデザインは、最終的にこの3つで実装されます。色や余白の指定はCSSに、押したときの反応はJavaScriptに置き換わります。デザインレビューで実装者と話すときも、構造・見た目・動きのどの層を直したいのかを言い分けられると、修正指示が正確に伝わります。

✓ Point !
どの層の話かを聞き分ける

打ち合わせで実装の話が出たら、構造・見た目・動きのどの層を指しているかを聞き分けましょう。層が分かると、修正の依頼も正確に伝わります。

Q
確認クイズ 1
デザインした画面で、文字の色と余白の見た目を細かく指定しました。この指定は、実装では主にどの言語に置き換わるでしょう?
正解です!
色や余白などの見た目の指定は、CSSが担当します。HTMLは何があるかという構造、JavaScriptは操作への反応、HTTPは言語ではなく通信の約束事でした。役割で切り分けると迷いません。
惜しい!
見た目(色・余白)はCSSの担当です。HTMLは構造、JavaScriptは操作への反応、HTTPは通信ルールで言語ではありません。まず役割を思い出して切り分けましょう。

サーバとデータをやり取りする(API・REST)

会員名や予約状況のように変わる情報を画面に出すには、その都度サーバへデータを取りに行きます。このとき、機能どうしがデータを決まった形式でやり取りする窓口をAPIと呼びます。

1
画面が要求
APIへデータを取りにいく
2
サーバ/DBが応答
該当データを返す
3
画面に表示
受け取ったデータを描画
… 読み込み中
応答が返るまでの待ち時間。その間に見せる表示も用意する。
該当なし(空)
データが0件のときの画面も設計しておく。
要求 → 応答 → 表示が基本。加えて「読み込み中」と「空(該当なし)」の状態表示まで設計が必要。

Webでよく使われるのがRESTという設計の考え方で、欲しいデータをURLで指定し、統一された形式でやり取りします。データが返るまでに時間がかかったり、そもそも該当データが無いこともあります。だから読み込み中の表示や、データが空のときの画面まで用意しておく必要があります。予約状況や在庫のように刻々と変わる情報を扱う画面では、この用意まで済ませておくと、抜け漏れのない設計になります。

このRESTでは、データへの操作を取得・作成・更新・削除の4種類に整理し、それぞれ決まった形式でやり取りします。共通ルールがあるおかげで、別々に作られた機能どうしでも噛み合います。予約サービスなら、予約一覧の取得、新規予約の作成、内容の更新、キャンセルによる削除が、この4操作に対応します。

ページ遷移の2つの作り方(SPAと従来型)

リンクを押したときの画面の切り替え方には、大きく2つの作り方があります。どちらで作るかによって、体感の速さや操作の感触が変わります。

従来型ページごとに読み直す
  • リンクを押すたびにサーバから全体を取得
  • 作りはシンプルで、初回は軽い
  • 遷移のたびに画面が一瞬白くなりやすい
SPA必要な部分だけ差し替え
  • 最初に一式を読み込む
  • 以降は変わる部分だけを差し替え
  • 遷移はなめらか、初回は重くなりがち
SPAは遷移がなめらかな反面、初回の読み込みが重くなりやすい(トレードオフ)。

従来型はページごとに全体を読み直し、SPA(シングルページアプリケーション)は最初に読み込んだあと必要な部分だけを差し替えます。SPAは画面遷移がなめらかな反面、初回の読み込みは重くなりがちです。予約フローのように画面を何度も行き来する体験では、この違いが操作感に直結します。設計するときは、SPAか従来型かをふまえて、遷移の見せ方や待ち時間の演出を選べます。

サイトを運用する仕組み(CMS)

公開後もお知らせやメニューを更新し続けるには、専門知識がなくても中身を書き換えられる仕組みが要ります。それがCMS(コンテンツ管理システム)です。

1
管理画面で編集
中身(文章・画像)を入力
2
テンプレートに流し込み
デザインの型に自動で当てはめ
3
公開ページに反映
組み上がったページを表示
デザインの型と中身が分離。中身の長さや画像の有無がばらつく前提でテンプレートを設計する。

CMSでは、デザインの型(テンプレート)と中身(文章や画像)が分かれています。運営者は管理画面から中身だけを差し替え、ページが自動で組み上がります。テンプレートを設計するときは、文章の長さや画像の有無が実際にはばらつく前提で、どんな中身が入っても崩れないレイアウトを意識しましょう。とくに更新頻度の高いお知らせやブログのページでは、運営者が管理画面から無理なく更新できるレイアウトを提案できます。

デザイナーが押さえる技術的制約

デザインの一つひとつには、実装の手間と表示への影響がついてきます。デザイナーが先に押さえておきたい制約は、大きく3つです。

1
表示速度
大きな画像や過剰な動きで低下し、離脱につながる。
対策:画像の重さ・動きの量を見積もる
2
レスポンシブ
同じHTMLをCSSが画面幅に合わせて組み替える。
対策:PCとスマホの両方を設計する
3
実装可能性
存在しないデータは出せず、凝った表現はコストが大きい。
対策:早めにエンジニアへ確認する
制約を先回りで確認できるデザイナーは、実装後の大きな手戻りを防げる。

表示速度は大きな画像や凝った動きで落ち、離脱の原因になります。レスポンシブは同じHTMLをCSSが画面幅に合わせて組み替える仕組みで、PCとスマホの両方の見え方を設計します。そして存在しないデータは画面に出せません。実現できるかを早めにエンジニアへ確認することが重要です。提案の段階で表示速度やレスポンシブを織り込めると、実装後の大きな作り直しを避けられ、エンジニアからの信頼につながります。

Q
確認クイズ 2
会員画面に、その人の累計予約回数を大きく見せるデザインを考えました。ただし、システムがその回数を記録しているかは分かりません。実装に渡す前に、デザイナーとして最初にすべきことはどれでしょう?
正解です!
画面に出せるのは、システムが持っているデータだけです。確定前に有無を確認すれば手戻りを防げます。無いと分かった場合も、そのデータを新しく持てるかをエンジニアと相談できます。
惜しい!
存在しないデータは画面に出せません。そのまま渡すと手戻りになり(A)、固定の数字は誤った情報の表示になります(C)。あきらめる前に、有無をエンジニアに確認する(B)のが適切です。
CHECK
理解度チェック
リクエストとレスポンスの往復を、5つのステップで説明できる
URL入力 → ブラウザがリクエストを送る → サーバが処理する → サーバがレスポンスを返す → ブラウザが描画する、の順です。この往復の共通ルールがHTTPで、暗号化した安全版がHTTPSだという点もあわせて押さえましょう。
HTML・CSS・JavaScript の役割分担を、一言ずつで言える
HTMLは構造(何があるか)、CSSは見た目(どう見せるか)、JavaScriptは動き(操作にどう反応するか)です。Figmaで作るデザインは、最終的にこの3つで実装されます。
API・REST の役割と、読み込み中・空状態を設計する理由を説明できる
APIは機能どうしがデータをやり取りする窓口で、Webではその設計にRESTが広く使われます。データが返るまでの待ち時間や、該当データが無い場合があるため、読み込み中と空状態の表示まで用意します。
SPAと従来型の違い、CMSの仕組みを説明できる
従来型はページごとに全体を読み直し、SPAは必要な部分だけを差し替えます(初回は重くなりがち)。CMSはデザインの型と中身を分け、管理画面から中身だけを更新できる仕組みです。
表示速度・レスポンシブ・実装可能性の3つの制約を挙げられる
表示速度は画像や動きの重さで変わる、レスポンシブは同じHTMLをCSSが画面幅で組み替えるためPCとスマホの両方を設計する、実装可能性は存在しないデータは出せず凝った表現はコストが大きい、の3つです。