Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
React-Redux-Redux-Saga-Workshop04
Search
tashxii
August 13, 2019
Programming
0
50
React-Redux-Redux-Saga-Workshop04
From TIS internal workshop at 2019/8/13
tashxii
August 13, 2019
Tweet
Share
More Decks by tashxii
See All by tashxii
React-Redux-Redux-Saga-Workshop03
tashxii
0
170
React-Redux-Redux-Saga-Workshop02
tashxii
0
120
React-Redux-Redux-Saga-Workshop01
tashxii
0
100
Other Decks in Programming
See All in Programming
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
660
Python札幌 LT資料
t3tra
7
1.1k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
190
Implementation Patterns
denyspoltorak
0
130
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
600
GoLab2025 Recap
kuro_kurorrr
0
780
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
190
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
900
Go コードベースの構成と AI コンテキスト定義
andpad
0
140
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
140
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
200
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
37
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
380
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Mind Mapping
helmedeiros
PRO
0
40
The SEO Collaboration Effect
kristinabergwall1
0
310
How to Talk to Developers About Accessibility
jct
1
87
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
44k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
38
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
97
Unsuck your backbone
ammeep
671
58k
Transcript
React + Redux + Redux-Saga 勉強会 ④ UI/UX編 2019/8/13 tashxii@tis
https://fintan.jp/
React / Redux / Redux-Saga • React … UIライブラリ •
Redux … React の状態管理ライブラリ • Redux-Saga … 非同期処理を扱うReduxのミドルウェア 2 https://ja.reactjs.org/ https://Redux-Saga.js.org/ https://redux.js.org/ Skip可:前回と同じスライド
題材に使うアプリケーション • タスク管理アプリ • イメージ(gif) • 機能 • サインアップ •
ログイン • ボード管理 • ユーザー管理 • タスク管理 • ドラッグ&ドロップ • Push通知 3 Skip可:前回と同じスライド
題材に使うアプリケーション • Websocketを使ったPush通知 • イメージ(gif) • 他のクライアントの 操作をサーバー 経由で伝達 4
Skip可:前回と同じスライド
題材のアプリで使用しているライブラリ • Redux 状態管理ライブラリ • Redux-Saga 非同期処理用ライブラリ • styled-component コンポーネントのスタイル管理
• Ant design コンポーネントライブラリ • react-beautiful-dnd ドラッグ&ドロップコンポーネント • react-router-dom URL遷移 • Font awesome アイコンライブラリ 5 Skip可:前回と同じスライド
ソースコード • Front-end (React) https://github.com/tashxii/taskboard-react • Back-end (Go) https://github.com/tashxii/taskboard-api-go git
clone https://github.com/tashxii/taskboard-react.git cd taskboard-react yarn install git clone https://github.com/tashxii/taskboard-api-go.git cd taskboard-api-go dep ensure go build 6 Skip可:前回と同じスライド
ユーザビリティ 7
ユーザビリティとは? • 一言でいうと「使いやすさ」 • 「ユーザビリティエンジニアリング原論」(Usability Engineering (Interactive Technologies) では Jakob
Nielsen によって以下の5原則 が定義されている 1. 学習しやすさ (Learnability) 2. 効率性 (Efficiency) 3. 記憶しやすさ (Memorability) 4. 間違えにくさ (Errors) 5. 主観的満足度 (Satisfaction) 8 学習しやすさ: システムは、ユーザがそれを使ってすぐ作業を始められるよう、簡単に学習でき るようにしなければならない。 効率性: システムは、一度ユーザがそれについて学習すれば、後は高い生産性を上げら れるよう、効率的な使用を可能にすべきである。 記憶しやすさ: システムは、不定期利用のユーザがしばらく使わなくても、再び使うときに覚え直 さないで使えるよう、覚えやすくしなければならない。 エラー: システムはエラー発生率を低くし、ユーザがシステム使用中にエラーを起こしにく く、もしエラーが発生しても簡単に回復できるようにしなければならない。また、致 命的なエラーが起こってはいけない。 主観的満足度: システムは、ユーザが個人的に満足できるよう、また好きになるよう楽しく利用で きるようにしなければならない。
デザインの原則のまとめ 9 https://uxxinspiration.com/2014/ 02/design-principles/
たとえば、「視線、手の動き」の分析 • グーテンベルグ・ ダイアグラム (伝統的な分類法) • Zパターン (紙媒体、モバイルなど) • Fパターン
(ブラウザなど) 10 https://www.domore.co.jp/mobilelab/design/visual_-guidance
F-パターン(Webコンテンツの視線分析) • Webコンテンツでは、縦の長さが不定となり、Fパターンの適用が多くなる 研究結果が出ている。 • 細部まで見てもらえないことを前提とすること 11 https://www.nngroup.com/articles/ f-shaped-pattern-reading-web-content/ https://www.genius-web.co.jp/
blog/cat-104/design_04.html
ベストプラクティス 12
ボタンやラベルの配置のプラクティス • ボタンのラベルや配置順序のベストプラクティスとは(日本語訳) • https://uxmilk.jp/56527 • Primary & Secondary Action
Buttons(英語の原文) • http://babich.biz/primary-secondary-action-buttons/ 13 NG 色を 変える ラベルを 動詞にする 操作できないとき は無効にする Cancelでは 何が起こるか 分からない ラベルを 動詞にする
その他のベストプラクティス • サイトやアプリのユーザビリティを向上させる35のポイント • https://baigie.me/sogitani/2014/04/usability/ • Boosting Your UX With
Usability Best Practices • https://uxtricks.design/blogs/ux-design/usability-tips/ • UIデザインにおけるナビゲーションのデザインパターンまとめ • https://baigie.me/sogitani/2014/08/navigation-design-type/ 14
サンプルでの取り組み 15
ボタン • 有効なボタンカラーの統一 • 無効な場合のグレーアウト • 実行中の際のハンドル 16 有効ボタンの 色の統一
実行中 操作有効 操作無効
ドラッグ&ドロップ • ドラッグする領域でのマウスカーソル • ドラッグ可能であることを示す • ドロップ可能領域でのカラーリング • ドロップ可能であることを示す •
ドロップ後の描画 • 半透明のカードを残す • スピナーを出す 17
フィードバック • ボタンのローディング • 描画領域のスピナー 18
ツールチップ・Popconfirm • 操作可能なアイコンのツールチップ表示 • 削除操作の確認 19
覚えていてほしいこと • ユーザビリティの5原則 1. 学習しやすさ (Learnability) 2. 効率性 (Efficiency) 3.
記憶しやすさ (Memorability) 4. 間違えにくさ (Errors) 5. 主観的満足度 (Satisfaction) • レイアウトの3パターン • グーテンベルクダイアグラム、Zパターン、Fパターン • 普遍性と個性のバランス • 他のアプリケーションとの差のない普遍性 • アプリケーション全体での統一性 • 視覚的フィードバック 20