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
1人月で最高のUXを作り上げるまで DJ7誕生秘話
Search
Takaya Imagawa
March 18, 2020
Programming
3
1.3k
1人月で最高のUXを作り上げるまで DJ7誕生秘話
PWA Night 3/18
Takaya Imagawa
March 18, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
130
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
170
XP, Testing and ninja testing
m_seki
3
220
技術同人誌をMCP Serverにしてみた
74th
1
450
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
580
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
240
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
880
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
330
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
470
ReadMoreTextView
fornewid
1
490
Java on Azure で LangGraph!
kohei3110
0
170
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
What's in a price? How to price your products and services
michaelherold
246
12k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
230
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
680
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
How STYLIGHT went responsive
nonsquared
100
5.6k
The Cult of Friendly URLs
andyhume
79
6.5k
Transcript
1ਓ݄Ͱ࠷ߴͷUXΛ࡞Γ্͛Δ·Ͱ DJ7ੜൿ 5BLBZB*NBHBXB PWA Night 3/18
Takaya Imagawa • ͷITاۀۈ • SairiLabॴଐ • ඇσβΠφʔ ࣭ਵ࣌ϚγϡϚϩͰ ड͚͚͍ͯ·͢ʂ
marshmallow-qa.com/imataka7 @imataka7
DJ7ͱʁ
None
DJ7ͱʁ dj7.io • YouTubeΛಉ࣌ࢹௌ͢ΔαʔϏε ◦ ෳਓͰಉ͡ಈըΛಉ͡λΠϛϯάͰΈΔ • Qiitaͷհهࣄ 700͍͍Ͷ ◦
ެ։ޙ3ؒτϨϯυ1Ґ
ࠓճ͓͢Δ͜ͱ
͢͜ͱ • DJ7ͷ։ൃఔ • 1ϲ݄Ͱඞཁ࠷ݶͷUXΛ උ͑ΔʹͲ͏͢Δ͔ ͞ͳ͍͜ͱ • UI/UXͷࡉ͔͍ཧͷ
ΞδΣϯμ • DJ7ͷ։ൃఔ ◦ ։ൃલ ◦ ։ൃ1ि ʙ ։ൃ5ि ◦
ެ։ • ಘΒΕͨԠ • ·ͱΊ • ࠓޙͷల
։ൃલ
طଘͷಉظ࠶ੜαʔϏεͱͦͷ 1. MusicBot 2. CyTube 3. Vynchronize ͳͲ... ։ൃલ
MusicBot • DiscordͰ༻Ͱ͖Δπʔϧ (Discord ≒ Slack + Ի௨) • Ի௨தʹYouTubeΛBGMͱͯ͠ྲྀ͢͜ͱ͕Ͱ͖Δ
։ൃલ / ͍··Ͱͷಉ࣌ࢹௌ νϟοτཝΛλʔϛφϧͷΑ͏ʹ ༻ͯ͠ۂΛՃ͢Δ
CyTube, Vynchronize • WebͰYouTubeΛಉظ࠶ੜͰ͖ΔαʔϏε • 2, 3΄Ͳલ͔Β͋Δ • CyTubeຊޠ൛͋ΓɺҰఆͷϢʔβ͕ډΔ ։ൃલ
• ͍ํ͕ײత͡Όͳ͍ ◦ ಈըͷෳՃ͢Βग़དྷͳ͍ ◦ ࠶ੜͪۂͷฒͼସ͑͢Βࠔ • ͍Βͳ͍ػೳ͋Δ ◦
νϟοτ΄Μͱ͏ʹඞཁʁ ։ൃલ ͳͲɺڍ͛ͨΒຕڍʹ͍ͱ·͕ͳ͍ɾɾɾ
ຬͰ͖Δͷ͕ͳ͍
ຬͰ͖Δͷ͕ͳ͍ ➔ ͳΒɺࣗͰͭ͘Ζ͏
࣮ݱ͍ͨ͠ͷ • WebͰ༻Մೳ • Իָͷಉظ࠶ੜ ◦ YouTubeΛಉ࣌ʹݟΒΕΕྑ͍ • طଘαΠτͷෆຬΛղফɺ͍͘͢ •
PWAʹରԠ͢Δʂ • 1ϲ݄Ͱͭ͘Δʂʂ ◦ Ϣʔβ͕͔ͭ͘Ͳ͏͔खΛ͔͚ͯ࡞ΔલʹΘ͔Δ ։ൃલ
࣮ݱ͍ͨ͠ͷ • WebͰ༻Մೳ • Իָͷಉظ࠶ੜ ◦ YouTubeΛಉ࣌ʹݟΒΕΕྑ͍ • MusicBot /
طଘαΠτͷෆຬΛղফ • PWAʹରԠ͢Δʂ • 1ϲ݄Ͱͭ͘Δʂʂ ◦ Ϣʔβ͕͔ͭ͘Ͳ͏͔खΛ͔͚ͯ࡞ΔલʹΘ͔Δ ։ൃલ ಉظ࠶ੜΛΑΓۙʹʂʂ
։ൃεέδϡʔϧ 2020/01 ։ൃલ 1ि 2ि 3ि 4ि 5ि ɾٕज़બఆ ɾߏΛߟ͑Δ
ɾϓϩτλΠϓ ࡞ ɾඞཁͳػೳ ચ͍ग़͠ ɾػೳ࣮ ɾಈըՃ ɾׂΓࠐΈ ɾͳͲ... ɾσβΠϯ ɾϓϨΠϠʔ ɾΩϡʔ ɾཤྺ ɾͳͲ... ɾσβΠϯ ɾϞόΠϧ ɾτοϓϖʔδ ࡞ ɾಡΈࠐΈૣ͘ ͢Δௐ ɾ໊લܾΊΔ ɾυϝΠϯऔಘ ɾϩΰ࡞ ɾΞυηϯε ɾQiitaهࣄࣥච x 2 PoC ػೳͷ࡞ UI࡞ UIҎ֎ͰUXڧԽ ެ։
։ൃ1ि
։ൃεέδϡʔϧ 1週目 2週目 3週目 4週目 5週目 ・技術選定 ・構成を考える ・プロトタイプ 作成
・必要な機能 洗い出し ・必要な機能 洗い出し ・機能実装 ・動画追加 ・割り込み ・など... ・デザイン ・プレイヤー ・キュー ・履歴 ・など... ・デザイン ・モバイル ・トップページ 作成 ・読み込み早く する調整 ・名前決める ・ドメイン取得 ・ロゴ作成 ・アドセンス ・Qiita記事執筆 x 2 1週目 ・技術選定 ・構成を考える ・プロトタイプ 作成
PoC; αʔϏείϯηϓτʹՁ͋Δ͔ʁ
ϓϩτλΠϓ࡞ͷత ։ൃ1ि ΄Μͱ͏ʹधཁ͋Δͷ͔ʁ ಉظ࠶ੜͷ֓೦Λ͍͑ͨʂ
ٕज़બఆ • PWA ◦ WebΛΞϓϦͷΑ͏ͳ༻ײʹͯ͘͠ΕΔ ◦ ΫϩεϓϥοτϑΥʔϜͷରԠ͕ΊͬͪΌϥΫ • Vue.js ◦
HTML + TypeScript + CSSͰ͔͚Δͷ͕ྑ͍ ◦ ެࣜͷπʔϧΛ༻͢ΔͱPWAͷରԠ͕ϥΫ • Firebase ◦ FirestoreͷϦΞϧλΠϜ௨ػೳ͕ ಉظ࠶ੜͱ૬ੑ͕ྑ͍ ։ൃ1ि
None
ϙδςΟϒͳײΛΒ͑ͨ ➔ धཁͷ֬৴ ͬͯΒ͍ͳ͕Β ։ൃΛ͢͢ΊΔ͖͔͚ͬʹ
։ൃ2ि
։ൃεέδϡʔϧ 1週目 2週目 3週目 4週目 5週目 ・技術選定 ・構成を考える ・プロトタイプ 作成
・必要な機能 洗い出し ・必要な機能 洗い出し ・機能実装 ・動画追加 ・割り込み ・など... ・デザイン ・プレイヤー ・キュー ・履歴 ・など... ・デザイン ・モバイル ・トップページ 作成 ・読み込み早く する調整 ・名前決める ・ドメイン取得 ・ロゴ作成 ・アドセンス ・Qiita記事執筆 x 2 2週目 ・必要な機能 洗い出し ・機能実装 ・動画追加 ・割り込み ・など...
࠷ݶඞཁͳػೳͳʹ͔ʁ
ඞཁͳػೳΛચ͍ग़͠ • ͕࣌ؒͳ͍ɺͲΕ͜Ε࣮Ͱ͖ͳ͍ • Ͱɺ࠷ݶඞཁಧ͚Δ͖ػೳɾମݧͱʁ • αʔϏεͷझࢫ͔ΒͣΕͳ͍Α͏ͳػೳ • ࣮ࡍʹͬͯΒͬͯɺͳ͍ͱෆศʹײͨ͡Β࣮ ։ൃ2ि
ιϑτΣΞҰͭͷ͜ͱΛ্ख͘Δ • UNIXֶͱͯ͠༗໊ ͜ΕΛDJ7Ͱஔ͖͑Δͱɺ • αʔϏεͷझࢫಉظ࠶ੜ • ͜Ε͔Β֎ΕΔػೳͷ࣮͠ͳ͍ ◦ 例えば、コミュニケーションの機能は実装しない
◦ Discord, Slack, Spectrum, Line, Twitter.... ։ൃ2ि
࣮ͨ͠ػೳ • ࠶ੜঢ়ଶͷಉظ • Ұ࣌ఀࢭ • εΩοϓ • Իྔௐ •
Ωϡʔ ◦ Ճ ◦ আ ◦ ࠶ੜ͞Ε͍ͯΔۂͷೖΕସ͑ • γʔΫόʔૢ࡞ • ׂΓࠐΈ • ಈըͷݕࡧɾՃ ◦ ΩʔϫʔυɾURL ◦ ϓϨΠϦετ ◦ ෳՃՄೳ • ཤྺ ◦ ཤྺ͔ΒͷՃ • ෦ͷ࡞ • ϩάΠϯ ։ൃ2ि
ࢄγεςϜ • Firestore͕Ͱ͖Δͷσʔλͷอ࣋ͱߋ৽ͷ௨ͷΈ • Ϣʔβ͕ओମతʹߋ৽Λ͠ʹߦ͘Έ͕ඞཁ • αʔϏεͷߏΛখ͘͢͞Δ͜ͱʹޭͨ͠ ։ൃ2ि ঢ়ଶߋ৽ มߋ௨
ϦΞϧλΠϜੑΛߴΊΔ • Ͱ͖Δ͚ͩݟ͍ͯΔͷΛҰॹʹ͢Δ • γʔΫόʔͷಉظ ◦ ΄͔ͷαΠτͰ෦ͷϗετ͚ͩͩͬͨΓɺͦͦग़དྷͳ͔ͬͨΓ ◦ ͯ͢ͷϢʔβ͕ฏʹߦ͑Δͷࠓճ͕ॳΊͯʁ •
࣌ࠁͷζϨΛิਖ਼͢Δ ◦ PCͷதͷ࣌ࠁࢥ͍ͬͯΔΑΓζϨ͍ͯΔ ◦ ϦΞϧλΠϜੑ֬อҎ֎ʹɺෆ۩߹ͷࢭʹͳͬͨ ։ൃ2ि
։ൃ3ि
։ൃεέδϡʔϧ 1ि 2ि 3ि 4ि 5ि ɾٕज़બఆ ɾߏΛߟ͑Δ ɾϓϩτλΠϓ ࡞
ɾඞཁͳػೳ ચ͍ग़͠ ɾඞཁͳػೳ ચ͍ग़͠ ɾػೳ࣮ ɾಈըՃ ɾׂΓࠐΈ ɾͳͲ... ɾσβΠϯ ɾϓϨΠϠʔ ɾΩϡʔ ɾཤྺ ɾͳͲ... ɾσβΠϯ ɾϞόΠϧ ɾτοϓϖʔδ ࡞ ɾಡΈࠐΈૣ͘ ͢Δௐ ɾ໊લܾΊΔ ɾυϝΠϯऔಘ ɾϩΰ࡞ ɾΞυηϯε ɾQiitaهࣄࣥච x 2 3ि ɾσβΠϯ ɾϓϨΠϠʔ ɾΩϡʔ ɾཤྺ ɾͳͲ...
UXΛϢʔβʹϦʔν͢Δʹʁ
σβΠϯͷํ ։ൃ3ि ࣮ࡍʹ༻ͯ͠Βͬͯ ͲͷػೳඞཁͰ͋Δ͜ͱ࣮ূࡁΈ ݟͨΛ՚͔ʹ͢ΔͷͰͳͯ͘ɺ Ϣʔβ͕֤ػೳʹΞΫηε͍͢͠Α͏ʹ͢Δ
ᶅ ը໘Λ͘͏ ᶃ ػೳͷத৺Ωϡʔ ΞΫηε͘͢͢͠Δʹʁ ։ൃ3ि ᶆ ΫϦοΫΛগͳ͘ ᶄ ػೳΛ͍ۙॴʹ
։ൃ3ि
։ൃ3ि ݕࡧ ཤྺ Ωϡʔ ϓϨΠϠʔ
։ൃ3ि ݕࡧ ཤྺ Ωϡʔ த৺ʹஔ ϓϨΠϠʔ
։ൃ3ि ݕࡧ ཤྺ Ωϡʔ Ճ Ճ ಈըͷՃΛ͍ۙॴʹ ϓϨΠϠʔ
։ൃ3ि φϏήʔγϣϯόʔΛ ஔ͢ΔͷԼ͚ͩ ͜ͷ෦Λ࠷େݶ͘ ϓϨΠϠʔ
։ൃ3ि φϏήʔγϣϯόʔΛ ஔ͢ΔͷԼ͚ͩ ͜ͷ෦Λ࠷େݶ͘ ڱ͗͢ʂʂʂ
։ൃ3ि φϏήʔγϣϯόʔΛ ஔ͢ΔͷԼ͚ͩ ͜ͷ෦Λ࠷େݶ͘ ϓϨΠϠʔ
։ൃ3ि ͋ΒΏΔػೳΛ 1ΫϦοΫͰߦ͑ΔΑ͏ʹ
࣮ݱ͍ͨ͠ͷ • WebͰ༻Մೳ • Իָͷಉظ࠶ੜ ◦ YouTubeΛಉ࣌ʹݟΒΕΕྑ͍ • MusicBot /
طଘαΠτͷෆຬΛղফ • PWAʹରԠ͢Δʂ • 1ϲ݄Ͱͭ͘Δʂʂ ◦ Ϣʔβ͕͔ͭ͘Ͳ͏͔खΛ͔͚ͯ࡞ΔલʹΘ͔Δ ։ൃલ ࠶ܝ
ಈըΛͨ͠ཧ༝ • Ұ൪ͷ͖͔͚͕ͬMusicBot͔ͩͬͨΒԻָͷಉظ࠶ੜ͕ Ͱ͖ΕΑ͍ͱߟ͍͑ͯͨɻ • ͔͠͠։ൃΛ͍ͯͯ͠ɺҰॹʹ͍ͬͯΔ͏ͪʹ ಈըΛҙݟΛަΘ͠ͳ͕ΒݟΔ͜ͱͷָ͠͞Λͬͨɻ ◦ ͬͯΒ͍ͳ͕Β։ൃ͢Δྑ͕͞ग़ͨ •
ͰͬͺΓಈըΑΓɺԻָͷ࠶ੜ ◦ ࣮ࡍʹɺDJ7Ͱ࠷ॳ͔Βಈը͕࠶ੜ͞Ε͍ͯΔΘ͚Ͱͳ͍ ◦ ࠷ॳʹΞΫηε͢ΔͷԻָͷࢹௌɺΩϡʔͷૢ࡞ ։ൃ3ि
։ൃ4ि
։ൃεέδϡʔϧ 1ि 2ि 3ि 4ि 5ि ɾٕज़બఆ ɾߏΛߟ͑Δ ɾϓϩτλΠϓ ࡞
ɾඞཁͳػೳ ચ͍ग़͠ ɾඞཁͳػೳ ચ͍ग़͠ ɾػೳ࣮ ɾಈըՃ ɾׂΓࠐΈ ɾͳͲ... ɾσβΠϯ ɾϓϨΠϠʔ ɾΩϡʔ ɾཤྺ ɾͳͲ... ɾσβΠϯ ɾϞόΠϧ ɾτοϓϖʔδ ࡞ ɾಡΈࠐΈૣ͘ ͢Δௐ ɾ໊લܾΊΔ ɾυϝΠϯऔಘ ɾϩΰ࡞ ɾΞυηϯε ɾQiitaهࣄࣥච x 2 4ि ɾσβΠϯ ɾϞόΠϧ ɾτοϓϖʔδ ࡞ ɾಡΈࠐΈૣ͘ ͢Δௐ
UIҎ֎ͰUXΛߴΊΔʹʁ
ಉظ࠶ੜ·ͰͷಋઢΛ͘ • ग़ձͬͯ3ඵͰಉظ࠶ੜ • αΠτΛ։͘Ҏ֎ʹඞཁͳखଓ͖͕ͳ͍ ։ൃ4ि
ಡΈࠐΈͷ࣌ؒΛ͘ • ඞཁͳDOMͷੜΛগͳ͘ • Service Workerͷઃఆ ◦ ΩϟογϡͷϙϦγʔ ◦ όʔδϣϯΞοϓ
όοΫάϥϯυͰΔΑ͏ʹ ։ൃ4ि º 2000
։ൃ5ि
։ൃεέδϡʔϧ 1ि 2ि 3ि 4ि 5ि ɾٕज़બఆ ɾߏΛߟ͑Δ ɾϓϩτλΠϓ ࡞
ɾඞཁͳػೳ ચ͍ग़͠ ɾඞཁͳػೳ ચ͍ग़͠ ɾػೳ࣮ ɾಈըՃ ɾׂΓࠐΈ ɾͳͲ... ɾσβΠϯ ɾϓϨΠϠʔ ɾΩϡʔ ɾཤྺ ɾͳͲ... ɾσβΠϯ ɾϞόΠϧ ɾτοϓϖʔδ ࡞ ɾಡΈࠐΈૣ͘ ͢Δௐ ɾ໊લܾΊΔ ɾυϝΠϯऔಘ ɾϩΰ࡞ ɾΞυηϯε ɾQiitaهࣄࣥච x 2 5ि ɾ໊લܾΊΔ ɾυϝΠϯऔಘ ɾϩΰ࡞ ɾΞυηϯε ɾQiitaهࣄࣥච x 2
Ϣʔβʹҹ͚ΔͨΊʹʁ
αʔϏε໊ɺυϝΠϯɺϩΰ • ͲΕαΠτʹΞΫηε͢ΔલʹݟΔͷ ◦ ୈҰҹΛࠨӈ͢Δ • Α͘͏αʔϏεͳΒ໊લ͘ɺ؆ܿʹ ։ൃ5ि dj7.io
Qiitaͷهࣄࣥච (1ຊ) • 2݄ೖ͙ͬͯ͢ʹߘ • จࣈଟΊͰαʔϏεͷղઆΛॻ͍ͨ • ؾ࣋ͪτϨϯυ1ҐऔΔؾຬʑ 1ܦͬͨ݁Ռ... ͍͍Ͷ4ͭɺɺɺ
։ൃ5ि
Qiitaͷهࣄࣥච (2ຊ) • 1ຊͷهࣄͰαʔϏεͷՁ͕ΘΒͳ͔ͬͨ • ը૾ଟΊɺݴ༿ݣ͍Θ͔Γ͢͞ॏࢹ • TwitterͰએ ݁Ռ... ։ൃ5ि
Qiitaͷهࣄࣥච (2ຊ) ։ൃ5ि
ެ։ޙ
ಘΒΕͨԠ • ಉظ࠶ੜʹର͢Δ ◦ ໘ന͍ ◦ ͍ΖΜͳ༻్ʹ͑ͦ͏ ◦ ΄͍͠ͱࢥͬͯͨ ◦
طଘͷͭͱҧͬͯγϯϓϧ͔ͩΒ ଞͷਓʹનΊ͍͢ • ͍ΖΜͳ༻్Λߟ͑ͯ͘Εͨ ◦ ήʔϜͷϓϨΠͷৼΓฦΓ ◦ ͓٬͞Μͱͷଧͪ߹Θͤ ◦ VTuberͷհ ◦ ৽͍͠ۂɺಈըΛΔ͜ͱ͕ Ͱ͖Δॴʹ ެ։
;Γ͔͑Γ • ಉظ࠶ੜͷधཁʹؒҧ͍ͳ͔ͬͨ ◦ ࣮ࡍʹͬͯΒ͍ͳ͕Β։ൃͨ͠ͷ͕ޭΛͨ͠ • γϯϓϧʹಉظ࠶ੜΛָ͠ΜͰΒ͑ͨ ◦ ඞཁͳͷΛͪΌΜͱݫબ͔ͨ͠Β ◦
γϯϓϧʹͨ͜͠ͱʹΑͬͯझࢫʹϒϨ͕ͳ͔ͬͨ ެ։
;Γ͔͑Γ • ಉظ࠶ੜͷधཁʹݟޡΓͳ͔ͬͨ ◦ ࣮ࡍʹͬͯΒ͍ͳ͕Βͬͨͷ͕ޭΛͨ͠ • γϯϓϧʹಉظ࠶ੜΛָ͠ΜͰΒ͑ͨ ◦ ඞཁͳͷΛͪΌΜͱݫબ͔ͨ͠Β ◦
γϯϓϧʹͨ͜͠ͱʹΑͬͯझࢫʹϒϨ͕ͳ͔ͬͨ ◦ ͍ΖΜͳ༻్Λߟ͑ͯΒ͑ͨ ެ։ తΛਾ͑ͯ։ൃΛ͢͢ΊΔ͜ͱͷ ॏཁ͞Λ࠶֬ೝͰ͖ͨ ಉظ࠶ੜΛۙʹͰ͖ͨ
·ͱΊ 1. ΞΠσΞͷՁΛূ໌͠Α͏ 2. ඞཁͳػೳΛߟ͑Α͏ 3. ਓʹͬͯΒ͓͏ 4. UI࣮ͨ͠ػೳʹΞΫηε͍͢͠ͷΛ࡞Ζ͏ 5.
αʔϏεͷଘࡏΛप͠Α͏ + 1ਓ݄Ͱ࡞͠Α͏ ެ։ޙ
https://trello.com/b/NRLsPQ4Z/sairilab-dj7
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ dj7.io @imataka7 Special Thanks: SairiLab Members
SairiLabͱʁ ݸਓ։ൃऀ͕ू·ΔίϛϡχςΟ 2020ʮ1ਓ݄1ͭҎ্ͷαʔϏεϩʔϯνʯͱ͍͏աࠅͳඪ https://discord.gg/hNWjDBd ܾࢉΧϨϯμʔ DJ7 ;Ή;Ή܅ Violets ג୳֦ு Sairi
Stalk