$30 off During Our Annual Pro Sale. View Details »
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
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
110
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
2
570
AIコーディングエージェント(NotebookLM)
kondai24
0
230
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
120
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
890
TestingOsaka6_Ozono
o3
0
170
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
150
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
160
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.3k
Developing static sites with Ruby
okuramasafumi
0
320
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
410
Deno Tunnel を使ってみた話
kamekyame
0
240
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
13k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
850
How to build a perfect <img>
jonoalderson
0
4.7k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
190
Become a Pro
speakerdeck
PRO
31
5.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Paper Plane
katiecoart
PRO
0
44k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
1
860
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.4k
Site-Speed That Sticks
csswizardry
13
1k
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