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
Kotlinで簡単なDSLを作ってみる
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shun Miyazaki
July 19, 2024
64
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kotlinで簡単なDSLを作ってみる
Shun Miyazaki
July 19, 2024
More Decks by Shun Miyazaki
See All by Shun Miyazaki
DroidKaigi2025アプリのスクリーンショットテストが失敗していた原因を調べてみた
shunm
0
240
DroidKaigi アプリに初コントリビュートしました
shunm
0
110
Google I/O 2024 - Gemeni API on Androidの解説
shunm
0
880
Google I/O 2023 - Debugging Jetpack Composeについて
shunm
0
1.1k
Jetpack Compose で SharedElementTransitionっぽい挙動をやってみる
shunm
0
190
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
Writing Fast Ruby
sferik
630
63k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
320
Practical Orchestrator
shlominoach
191
11k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
200
Git: the NoSQL Database
bkeepers
PRO
432
67k
The Spectacular Lies of Maps
axbom
PRO
1
790
Design in an AI World
tapps
1
220
GitHub's CSS Performance
jonrohan
1033
470k
How to Talk to Developers About Accessibility
jct
2
220
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
Transcript
,PUMJOͰ؆୯ͳ%4-࡞ͬͯΈΔ ٶ㟒ॠ
࣍ w %4-ͱԿ͔ w ,PUMJO͕%4-ʹ͍͍ͯΔཧ༝ w ؆୯ͳ%4-ͷ࣮ྫ w ·ͱΊ
ࣗݾհ ໊લٶ㟒ॠ ॴଐαΠϘζ"OESPJEΤϯδχΞ ࠷ۙษڧ͍ͯ͠Δ͜ͱ3VTUɺ5ZQF4DSJQU झຯΞχϝɺອըɺΧϥΦέ
%4-ͱԿ͔ʁ %4-ͱɺ%PNBJO4QFDJ fi D-BOHVBHFͷུͰɺ ༁͢ΔͱɺυϝΠϯݻ༗ݴޠͰ͢ɻ ಛఆͷྖҬΛޮతʹղܾ͢ΔͨΊʹઃܭ͞Ε·͢ɻ %4-ʹΑͬͯɺυϝΠϯͷઐݴޠߏΛͦͷ··ίʔυʹөͰ͖ΔͷͰɺ Մಡੑ͕ߴ·Γ·͢ɻ
,PUMJO%4- CVJMEHSBEMFLUT࣮%4-ɻ BOESPJE\ OBNFTQBDFDPNTIVONLPUMJO@WBMJEBUPS DPNQJMF4EL ^ GVOPSHHSBEMFBQJ1SPKFDUABOESPJEA DPO fi HVSF
"DUJPODPNBOESPJECVJMEHSBEMF-JCSBSZ&YUFOTJPO 6OJU UIJTBTPSHHSBEMFBQJQMVHJOT&YUFOTJPO"XBSF FYUFOTJPOTDPO fi HVSF BOESPJE DPO fi HVSF
,PUMJO͕%4-ʹ͍͍ͯΔཧ༝
ߴ֊ؔͱϥϜμࣜ GVOCVJME4USJOH CVJMEFS"DUJPO4USJOH#VJMEFS 6OJU 4USJOH\ WBMTC4USJOH#VJMEFS TCCVJMEFS"DUJPO SFUVSOTCUP4USJOH
^ WBMTCVJME4USJOH\ BQQFOE )FMMP BQQFOE 8PSME ^
֦ுؔ GVO4USJOH#VJMEFSCPME CMPDL4USJOH#VJMEFS 6OJU \ BQQFOE C CMPDL
BQQFOE C ^ WBMTCVJME4USJOH\ CPME\ BQQFOE )FMMP 8PSME ^ ^
ԋࢉࢠΦʔόʔϩʔυ PQFSBUPSGVO*OUUJNFT TUS4USJOH TUSSFQFBU UIJT WBMT )FMMP QSJOUMO T
)FMMP)FMMP)FMMP
؆୯ͳ%4-ͷ࣮ྫΛհ
͠Α͏ͱࢥ͚ͬͨͲɺͥΜͥΜࢥ ͍͔ͭͳ͍ɺɺ
$IBU(15 ؆୯ͳ%4-ͷ࣮ྫΛհ͍ͨ͠ͷͰ͕͢ɺ ͳΜ͔͍͍ͷͳ͍͔͢ʁ
$IBU(15 7BMJEBUPSͱ͔ɺ͓͢͢ΊͰ͢Α ͓͚·Δ
ͷΠϝʔδ -PHJOը໘ͷ7BMJEBUPSɻ
࡞ΔϦετ w 7BMJEBUPS$POUFYUશମͷόϦσʔγϣϯϓϩηεΛཧ w 'JFME7BMJEBUPS֤ϑΟʔϧυόϦσʔλͷڞ௨ػೳΛఆٛ͢Δ w /VNCFS'JFME7BMJEBUPSϑΟʔϧυʹؔ͢ΔόϦσʔγϣϯΛఆٛ͢Δ w 4USJOH'JFME7BMJEBUPSจࣈྻϑΟʔϧυʹؔ͢ΔόϦσʔγϣϯΛఆٛ͢Δ w
7BMJEBUJPO3FTVMUόϦσʔγϣϯ݁ՌͷܕΛఆٛ͢Δ w 7BMJEBUJPO&SSPSόϦσʔγϣϯΤϥʔͷৄࡉΛهड़͢Δ
EBUBDMBTT7BMJEBUJPO&SSPS WBMFSSPS.FTTBHF4USJOH TFBMFEJOUFSGBDF7BMJEBUJPO3FTVMU\ EBUBPCKFDU4VDDFTT7BMJEBUJPO3FTVMU EBUBDMBTT'BJMVSF WBMFSSPST-JTU7BMJEBUJPO&SSPS 7BMJEBUJPO3FTVMU\
DPOTUSVDUPS FSSPS7BMJEBUJPO&SSPS UIJT MJTU0G FSSPS ^ ^ όϦσʔγϣϯͷ݁ՌΛ֨ೲ͢ΔΫϥε
QSJWBUFTFBMFEJOUFSGBDF'JFME7BMJEBUPS\ WBMSVMFT.VUBCMF-JTU 7BMJEBUJPO3FTVMU GVOSVMF FSSPS.FTTBHF4USJOH QSFEJDBUF #PPMFBO \ SVMFTBEE\ JG
QSFEJDBUF \ 7BMJEBUJPO3FTVMU4VDDFTT ^FMTF\ 7BMJEBUJPO3FTVMU'BJMVSF 7BMJEBUJPO&SSPS FSSPS.FTTBHF ^ ^ ^ ^ ֤ϑΟʔϧυόϦσʔλͷڞ௨ػೳΛఆٛ SVMFTʹϥϜμࣜΛ֨ೲ ͜ͷ࣌Ͱ࣮ߦ͞Εͳ͍ QSFEJDBUF͕ຬͨ͞ΕΕɺ4VDDFTT ຬͨ͞Εͳ͚Εɺ'BJMVSF
QSJWBUFTFBMFEJOUFSGBDF'JFME7BMJEBUPS\ WBMSVMFT.VUBCMF-JTU 7BMJEBUJPO3FTVMU GVOWBMJEBUF 7BMJEBUJPO3FTVMU\ WBMSFTVMUT-JTU7BMJEBUJPO3FTVMUSVMFTNBQ\JU ^ WBMFSSPST-JTU7BMJEBUJPO&SSPSSFTVMUT fi MUFS*T*OTUBODF7BMJEBUJPO3FTVMU'BJMVSF
fl BU.BQ\JUFSSPST^ SFUVSOJG FSSPSTJT&NQUZ \ 7BMJEBUJPO3FTVMU4VDDFTT ^FMTF\ 7BMJEBUJPO3FTVMU'BJMVSF FSSPST ^ ^ GVOSVMF FSSPS.FTTBHF4USJOH QSFEJDBUF #PPMFBO \ʜ^ ^ SVMFTʹ֨ೲ͞Εͨ7BMJEBUPSΛ࣮ߦ ҰͭFSSPS͕ͳ͍ͱ͖ɺ4VDDFTT ҰͭͰFSSPS͕͋Δͱ͖ɺ'BJMVSF
DMBTT4USJOH'JFME7BMJEBUPS QSJWBUFWBMWBMVF4USJOH 'JFME7BMJEBUPS\ DPNQBOJPOPCKFDU\ QSJWBUFWBM&."*-@3&(&9?<B[";@ > !<B[";> aa<B[";>\ ^aUP3FHFY
^ PWFSSJEFWBMSVMFT.VUBCMF-JTU 7BMJEBUJPO3FTVMUNVUBCMF-JTU0G GVOOPU&NQUZ FSSPS.FTTBHF4USJOH \ SVMF FSSPS.FTTBHF \ WBMVFJT/PU&NQUZ ^ ^ GVOFNBJM FSSPS.FTTBHF4USJOH \ SVMF FSSPS.FTTBHF \ WBMVFNBUDIFT &."*-@3&(&9 ^ ^ ^ \^ͷத͕ɺWBMJEBUFͷλΠϛϯάͰ࣮ߦ͞ ΕΔ
DMBTT7BMJEBUPS$POUFYU\ QSJWBUFWBMWBMJEBUPSTNVUBCMF-JTU0G 7BMJEBUJPO3FTVMU GVO fi FME WBMVF4USJOH BDUJPO4USJOH'JFME7BMJEBUPS 6OJU
\ WBMWBMJEBUPS4USJOH'JFME7BMJEBUPS WBMVF BDUJPO WBMJEBUPS WBMJEBUPSTBEE\ WBMJEBUPSWBMJEBUF ^ ^ ^ fi FMEͰɺ7BMJEBUPSΛՃ
DMBTT7BMJEBUPS$POUFYU\ QSJWBUFWBMWBMJEBUPSTNVUBCMF-JTU0G 7BMJEBUJPO3FTVMU GVOWBMJEBUF BDUJPO7BMJEBUPS$POUFYU 6OJU 7BMJEBUJPO3FTVMU\ BDUJPO
WBMSFTVMUT-JTU7BMJEBUJPO3FTVMUWBMJEBUPSTNBQ\JU ^ WBMFSSPST-JTU7BMJEBUJPO&SSPSSFTVMUT fi MUFS*T*OTUBODF7BMJEBUJPO3FTVMU'BJMVSF fl BU.BQ\JUFSSPST^ SFUVSOJG FSSPSTJT&NQUZ \ 7BMJEBUJPO3FTVMU4VDDFTT ^FMTF\ 7BMJEBUJPO3FTVMU'BJMVSF FSSPST ^ ^ GVO fi FME WBMVF4USJOH BDUJPO4USJOH'JFME7BMJEBUPS 6OJU \ʜ^ ^ WBMJEBUFͰόϦσʔγϣϯΛ࣮ߦ
!$PNQPTBCMF QSJWBUFGVO-PHJO'PSN NPEJ fi FS.PEJ fi FS.PEJ fi FS
\ WBSVTFSOBNFCZSFNFNCFS\NVUBCMF4UBUF0G ^ WBSFNBJMCZSFNFNCFS\NVUBCMF4UBUF0G ^ WBSWBMJEBUJPO&SSPSTCZSFNFNCFS\NVUBCMF4UBUF0G MJTU0G4USJOH ^ #PY NPEJ fi FSNPEJ fi FS fi MM.BY4J[F DPOUFOU"MJHONFOU"MJHONFOU$FOUFS \ $PMVNO WFSUJDBM"SSBOHFNFOU"SSBOHFNFOUTQBDFE#Z EQ IPSJ[POUBM"MJHONFOU"MJHONFOU$FOUFS)PSJ[POUBMMZ \ 0VUMJOFE5FYU'JFME ʜ 0VUMJOFE5FYU'JFME ʜ #VUUPO PO$MJDL\50%0^ \ 5FYU UFYU4VCNJU ^ 6TFS/BNF 1BTTXPSE 4VCNJU#VUUPO
#VUUPO PO$MJDL\ WBMWBMJEBUJPO$POUFYU7BMJEBUPS$POUFYU WBMSFTVMUWBMJEBUJPO$POUFYUWBMJEBUF\ fi FME VTFSOBNF \
OPU&NQUZ 6TFSOBNFJTSFRVJSFE NJO-FOHUI 6TFSOBNFNVTUCFBUMFBTUDIBSBDUFSTMPOH ^ fi FME FNBJM \ OPU&NQUZ &NBJMJTSFRVJSFE FNBJM 1MFBTFFOUFSBWBMJEFNBJMBEESFTT ^ ^ WBMJEBUJPO&SSPSTXIFO SFTVMU \ JT7BMJEBUJPO3FTVMU4VDDFTTFNQUZ-JTU JT7BMJEBUJPO3FTVMU'BJMVSFSFTVMUFSSPSTNBQ\JUFSSPS.FTTBHF^ ^ ^ \ 5FYU UFYU4VCNJU ^
σϞ
ຊ͝հͨ͠ίʔυ LPUJMOWBMJEBUPS IUUQTHJUIVCDPNTIVONLPUMJOWBMJEBUPS
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ