Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
Search
Naofumi Kagami
September 26, 2025
Programming
12k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
Naofumi Kagami
September 26, 2025
More Decks by Naofumi Kagami
See All by Naofumi Kagami
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1.1k
Other Decks in Programming
See All in Programming
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
250
Java 27新機能 / Java 27 new features
kishida
2
140
「新人AI禁止のその先へ ― 参加と協働のステップアップ」Vibe TOKYO, AI & CRAFT / 2026年8月21日
kentarowada
0
100
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
400
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
390
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
120
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
170
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
490
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
1k
FreeBSDでZabbixを動かす.pdf
kenkino
0
270
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
240
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
930
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
230
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
540
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Building AI with AI
inesmontani
PRO
1
1.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
390
WCS-LA-2024
lcolladotor
0
830
Mind Mapping
helmedeiros
1
360
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
460
Transcript
Ճʑඒ࢙!OBPGVNJ ,BJHJPO3BJMT ߴͳ6*69ͦ͜ )PUXJSFͰ࡞Ζ͏
(JUIVCOBPGVNJ ༀاۀͰόΠΦܥݚڀऀ όΠΦؔ࿈ϚʔέςΟϯά ʹόΠΦܥϝσΟΞ 3BJMT Ͱىۀ ΦϨΦϨ41"ϑϨʔϜϫʔΫ ,BNJTIJCBJKT όΠΦؔ࿈ηʔϧε όΠΦༀཧ
͔ΒϑϦʔϥϯε 3BJMT !OBPGVNJ
K2VFSZͰ;FOOͷ τοϓΛऔͬͨΓ ͍ͪૣ͘,BNBMΛਪͨ͠Γ
3FBDUΛ3BJMTʹ౷߹͢Δํ๏Λ HFNʹͨ͠Γ ϑϩϯτΤϯυϦϓϨΠεͷ ϓϩδΣΫτʹ͍ͭͯޠͬͨΓ
ϑϩϯτΤϯυ 3BJMT ΤϯδχΞ )PUXJSFਪ͠ͷ
/FYUKTΞϓϦΛ ,BNBMͰσϓϩΠ "1*SPVUFT্ͷ&+4Ͱ )PUXJSFΛՔಇ /FYUKT3FBDUͱ)PUXJSFͰ ಉ͡6*Λ࡞͠ɺσϞͱղઆ /FYUKTWT)PUXJSF IUUQTIPUXJSFOOFYUDBTUMFDPN
3BJMTΞϓϦΛ ,BNBMͰσϓϩΠ )PUXJSFʹ͍ͭͯࢥͬͨ͜ͱ ίʔυྫͱσϞ ߟ͑ํ )PUXJSFΑ· IUUQTIPUXJSFBOFDEPUBDBTUMFDPN
ͦͦ)PUXJSFͬͯͳʹʁ
ೆేཚΕΔ࣌ ేݱΔ 3FBDU )PUXJSF
None
)PUXJSF 4UJNVMVTΠϕϯτॲཧΛఆܕԽɾ؆ུԽ K2VFSZϕετϓϥΫςΟε ϥΠϑαΠΫϧΈ͍ͨͳײ͡ 5VSCPαʔό௨৴Λ؆ུԽɾ࠷దԽ
3FBDU ͑ͯεςʔτҰຊʹߜΔ 0OFXBZEBUBqPXΛڧ੍ εςʔτ%0.Λ࠷దԽ IUUQTKBSFBDUEFWMFBSOUIJOLJOHJOSFBDU 3FBDUͷྲّྀ
3FBDU ͑ͯεςʔτҰຊʹߜΔ 0OFXBZEBUBqPXΛڧ੍ εςʔτ%0.Λ࠷దԽ IUUQTKBSFBDUEFWMFBSOUIJOLJOHJOSFBDU 3FBDUͷྲّྀ ଞͷબࢶΛࣺͯͨ ͷ͕ಛ
)PUXJSF εςʔτΛ͍͍ͨ࣌ 4UJNVMVTͷWBMVFTUBUF͕ศར εςʔτߋ৽ εςʔτߋ৽ εςʔτߋ৽
IUUQTTUJNVMVTIPUXJSFEEFWSFGFSFODFWBMVFT
)PUXJSFϞʔμϧ +4ͳ͠ɺͦΕͱ͋Γ )PUXJSF5VSCP 4UJNVMVT ແཧʹ+BWB4DSJQUΛলུͤͣɺΉ͠Ζੵۃతʹ+BWB4DSJQUΛ׆༻͢Δ ͬ ͞ Γ ײ
ࠓͷຊ
ʮཧը໘)PUXJSFͰ࡞Γɺ ɹϢʔβը໘3FBDUͰ࡞Ζ͏ʯ ͳ ͥ ʁ Α͘ฉ͘ݴ༿
)PUXJSFߴ։ൃͰ͖Δ͔Β ཧը໘͖ ͰෳࡶͰߴͳ6*693FBDU ͡Όͳ͚Ε࡞Εͳ͍ ຊ ʁ +40/"1*͍ Β ͳ
͍ ͠ ͦ Γ Ό ͦ ͏ ͩ Ͷ
ࠓͷ * )PUXJSF༗໊αΠτͷϢʔβը໘Ͱ༻͞Ε͍ͯΔ ͱ͍͏ࣄ࣮ ** /FYUKTΑΓ)PUXJSFͷํ͕ྑ͍6*69͕࡞Γ͍͢ ͱ͍͏ࣄ࣮ *** )PUXJSFͰෳࡶͳ6*͕࡞ΕΔͱ͍͏ࣄ࣮ ࡞Γํͷίπ
3VCZPO3BJMTͷੜՈ w ΠϯϥΠϯฤूͳͲΛ༻ w ߴͳը໘ભҠ #BTFDBNQ
ແ ྉ ϓ ϥ ϯ ʂ IUUQTCBTFDBN QDPN
IUUQTUFDIMJGFDPPLQBEDPN FOUSZ )PUXJSF
ࠓͷ * )PUXJSF༗໊αΠτͷϢʔβը໘Ͱ༻͞Ε͍ͯΔ ͱ͍͏ࣄ࣮ ** /FYUKTΑΓ)PUXJSFͷํ͕ྑ͍6*69͕࡞Γ͍͢ ͱ͍͏ࣄ࣮ *** )PUXJSFͰෳࡶͳ6*͕࡞ΕΔͱ͍͏ࣄ࣮ ࡞Γํͷίπ
3FBDUͱ&3# K2VFSZͷݟ͚ͬͯͭ͘ʁ ϨΨγʔϑϩϯτΤϯυΛ/FYUKTʹϦϓϨΠε ʮ։ൃੜ࢈ੑͷ্ʯΛײͤͯ͘͡͞Εͨͭͷ͜ͱ IUUQTMPHNJKQNBJOUFDIOPMPHZ ͘ࡏ੶͍ͯ͠ΔਓͰ ʮͬͯ͜͜3FBDUͩͬͨΜͩʯ ʮͬͯ͜͜3BJMTͩͬͨΜͩʯ Έ͍ͨͳձ͕ग़ͯ͘Δ ݟ͚͔ͭͳ͍Β͍͠ʂ
3FBDUͷϖʔδͱ3BJMTͷϖʔδ ͷݟ͚ํ
ҙ⚠ ͔͜͜ΒϑϩϯτΤϯυ༻ޠ͕ ͨ͘͞Μग़͖ͯ·͢
/FYUKTQBHFTSPVUFSͷ443͕ ͬ͞Γ͢ΔͷΑ͋͘Δ՝ )PUXJSF5VSCP%SJWF σϑΥϧτͰରࡦࡁΈ σϑΥϧτͷϩʔσΟϯά6* 483ܕͷΩϟογϡ ϖʔδભҠ IUUQTIPUXJSFOOFYUDBTUMFDPNBQJIPUXJSFVTFST
None
483 4UBMF8IJMF3FWBMJEBUF ܕΩϟογϡ ΩϟογϡͷΛղফ͠ɺ ྑ͍ͱ͜औΓΛͯ͘͠ΕΔ
෦తͳը໘ͷॻ͖͑ 1SFGFUDIޮ͍ͯψϧαΫ 5VSCP'SBNFT λϒϝχϡʔ IUUQTIPUXJSFOOFYUDBTUMFDPNBQJIPUXJSFUBCCFE@TFHNFOUT@UVSCPGSBNFT
/FYUKT1BSBMMFM3PVUFTͰλϒΛ࣮
)PUXJSF5VSCP'SBNFTͰλϒΛ࣮
)PUXJSF5VSCP'SBNFTͰλϒΛ࣮ λϒΛඇಉظͰ ࠩ͠ସ͑ 63-Λಉظͯ͠ ϒοΫϚʔΫՄೳ
සൟʹ͏6*69Ͱ )PUXJSFͷํ͕༏Ε͍ͯΔ
࡞Γࠐ·ͳ͍ݶΓ )PUXJSFͷํ͕6*69͕ྑ͍
ຊʹ6*69ͷͨΊʹ 3FBDUΛ͍ͬͯΔͷʁ
ຊʹ6*69ͷͨΊʹ 3FBDUΛ͍ͬͯΔͷʁ ϑϩϯτΤϯυͷϦϓϨΠεʹɺ͍ͭ·Ͱ͔͚ΔΜͩʁ %9 ࠾༻ͷ͜ͱ͔Γݴͬͯͳ͍ʁ
3BJMTϑϩϯτΤϯυͷ%9ͱݴ͑ .BSDP3PUI͞Μ IUUQTLBJHJPOSBJMTPSHUBMLTNBSDPSPUIEBZ
ࠓͷ * )PUXJSF༗໊αΠτͷϢʔβը໘Ͱ༻͞Ε͍ͯΔ ͱ͍͏ࣄ࣮ ** /FYUKTΑΓ)PUXJSFͷํ͕ྑ͍6*69͕࡞Γ͍͢ ͱ͍͏ࣄ࣮ *** )PUXJSFͰෳࡶͳ6*͕࡞ΕΔͱ͍͏ࣄ࣮ ࡞Γํͷίπ
3FBDUʹ͔͠Ͱ͖ͳ͍ෳࡶͳ6*ͳΒ )PUXJSFʹຒΊࠐΊྑ͍ ͍͟ͱͳͬͨΒ
w DPOOFDU EJTDPOOFDU w AEBUB WBMVFATUBUF w 7BMVF$IBOHFE
DBMMCBDLT ຒΊࠐΈ4UJNVMVTͷΦϋί طଘ%0.ͱ+BWB4DSJQUίϯϙʔωϯτΛ ಉظͤ͞Δͷಘҙதͷಘҙ IUUQTIPUXJSFBOFDEPUBDBTUMFDPNPUIFS@MJCSBSJFTDIBSUKTTUJNVMVT
3FBDUຒΊࠐΈ༻ϥΠϒϥϦΛͬͯྑ͍ IUUQTHJUIVCDPNTLSZVLPWUVSCPNPVOU
%BJDIJ,6%0͞Μ 8FC$PNQPOFOUTͰ࣮ݱ͢Δ)PUXJSFͱ ϑϩϯτΤϯυϑϨʔϜϫʔΫͷڮ͠ IUUQTLBJHJPOSBJMTPSHUBMLTLVEPBTEBZ
Ͱ࣮ࡍɺ)PUXJSF͚ͩͰ ෳࡶͳ6*69શવ࡞ΕΔ
ͦͦෳࡶͳ6*ͱʁ
ʮ)PUXJSFͰ ɹ͜͜·ͰͰ͖ΔΑʂʯ
"3FBDUؔͳ͍͡ΌΜʂ جຊ͡ΌΜͦΕͬʂ
ෳࡶͬΆ͍͚Ͳ؆୯ʹ࡞ΕΔ6* %BUFQJDLFS DPMPSQJDLFS EJBMPH QPQPWFS➜ϒϥβσϑΥϧτ͋Γ υϥοάˍυϩοϓ➜7BOJMMB+4ͷϥΠϒϥϦ͋Γ ϝχϡʔɺυϩοϓμϯɺίϯϘϘοΫεɺπʔϧνοϓͳͲ ➜7BOJMMB+4ͷϥΠϒϥϦ͋Γ όϦσʔγϣϯ➜ϒϥβωΠςΟϒ͋Γ ෳࡶͳ6*Λ୳͢ͷ݁ߏେม
7BOJMMB+4)FBEMFTT6*ϥΠϒϥϦ 5BJMXJOE1MVT&MFNFOUT IUUQTUBJMXJOEDTTDPNCMPHWBOJMMBKTTVQQPSUGPSUBJMXJOEQMVT
7BOJMMB+4ʹΑΔ )FBEMFTT6*ϥΠϒϥϦ ͷ৽ைྲྀ
3FBDU͕ಘҙͱ͢Δෳࡶͳ 6*69ͱԿʁ
IUUQTXXXZPVUVCFDPNXBUDI WQ%R+7E/B
3FBDUϦΞϧλΠϜ μογϡϘʔυ༻ʹ ੜ·Εͨ
(P'.FEJBUPSύλʔϯ 3FBDUTUBUFͱPOFXBZEBUB qPXʹΑΔNFEJBUPSΛڧ੍ +49ʹΑΓɺTUBUF͔ΒྲྀΕΔ એݴత6*Λఏڙ 3FBDUͷڧΈ
IUUQTSFGBDUPSJOHHVSVEFTJHOQBUUFSOTNFEJBUPS # εύήοςΟ (P'.FEJBUPS1BUUFSO 0OFXBZEBUBqPX
3FBDUόʔδϣϯ εςʔτϑϩϯτͰཧ )PUXJSF5VSCPόʔδϣϯ εςʔταʔόͰཧ 4UJNVMVTόʔδϣϯ εςʔτϑϩϯτͰཧ "QQMF4UPSFࣸ IUUQTIPUXJSFBOFDEPUBDBTUMFDPNFYBNQMFTTUPSF
None
εύήοςΟԽ ͍͢͠
3FBDU POFXBZ EBUBqPX
αʔόαΠυ Σϒ.7$ αʔόαΠυ.7$ POFXBZEBUBqPXʹ ͳΔ͔͠ͳ͍ 5VSCPNPSQIJOH༻ 3FBDUͷࠩݕग़ॲཧͬΆ͍
4UJNVMVT POFXBZ EBUBqPX
Πϕϯτϋϯυϥ ࠶ϨϯμϦϯά એݴత6*ߋ৽
None
)PUXJSFͰTUBUF͓Αͼ POFXBZEBUBqPXΛ͏ͱ ෳࡶͳ6*͕࡞Γ͍͢
)PUXJSFͰάϩʔόϧεςʔτཧ ;VTUBOEΛͬͯΈΔ
7BOJMMB+4Ͱ͑Δ άϩʔόϧεςʔτཧ 1VC4VCػೳ ;VTUBOE
IUUQTIPUXJSFBOFDEPUBDBTUMFDPNFYBNQMFTESBXFS
None
;VTUBOEͷTUPSF TMJEF%SBXFS4UPSF
4UJNVMVT$POUSPMMFS 4MJEF%SBXFS$POUSPMMFS
άϩʔόϧεςʔτͰͰ͖Δ͜ͱ ΫϥΠΞϯταΠυ͚ͩͰʮԼॻ͖ʯʮอଘʯػೳ
άϩʔόϧεςʔτͰͰ͖Δ͜ͱ ΫϥΠΞϯταΠυ͚ͩͰϚϧνεςοϓͷϑΥʔϜ
ࠓͷ * )PUXJSF༗໊αΠτͷϢʔβը໘Ͱ༻͞Ε͍ͯΔ ͱ͍͏ࣄ࣮ ** /FYUKTΑΓ)PUXJSFͷํ͕ྑ͍6*69͕࡞Γ͍͢ ͱ͍͏ࣄ࣮ *** গͳ͘ͱ3FBDUఔʹ ෳࡶͳ6*͕࡞ΕΔͱ͍͏ࣄ࣮
࡞Γํͷίπ
)PUXJSFͷ·ͱΊ ༗໊αΠτͷϢʔβ͚ը໘ʹ༻͞Ε͍ͯΔ සൟʹ༻͢Δ6*69Ͱͱͯ༏Ε͍ͯΔ 3FBDUͳΒͰͷෳࡶͳ6*69Λ୳ͯ͠Έ͕ͨʜ )PUXJSF$IBSUKT3FBDUΛ؆୯ʹຒΊࠐΊΔ )PUXJSFͰTUBUFΛҙࣝ͠ɺPOFXBZEBUBqPXΛ͏ͱྑ͍ 4UJNVMVTͷWBMVFTUBUFศརʂ ;VTUBOE͑Δʂ
+40/ جૅࣄ $ ࣮͕͜͜ ݁ߏෳࡶ
ʮཧը໘)PUXJSFͰ࡞Γɺ ɹϢʔβը໘)PUXJSFͰ࡞Ζ͏ʯ