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
コードジェネレーターの威力を見てみる
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hirose yudai
January 28, 2017
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コードジェネレーターの威力を見てみる
https://love-swift.connpass.com/event/47486/
の談義資料です。
自作コードジェネレーターについての紹介です
hirose yudai
January 28, 2017
More Decks by hirose yudai
See All by hirose yudai
Write swift macros
bannzai
1
340
Figma => SwiftUI
bannzai
0
240
爆速でクソリプを送る技術
bannzai
1
90
Tsukimi
bannzai
0
100
iOSDC_Reject_Conference_Day1
bannzai
0
270
iOSDC-2019.pdf
bannzai
0
1.6k
ios-de-kanpai
bannzai
0
100
waiwai-swiftc.pdf
bannzai
0
200
iosdcrc-conv.pdf
bannzai
4
650
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
520
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
4 Signs Your Business is Dying
shpigford
187
23k
Code Review Best Practice
trishagee
74
20k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
GitHub's CSS Performance
jonrohan
1033
470k
Rails Girls Zürich Keynote
gr2m
96
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Tell your own story through comics
letsgokoyo
1
1.1k
Transcript
4XJGUѪձWPM%"/(* ίʔυδΣωϨʔλͷҖྗΛݟͯΈΔ
ࣗݾհ ໊લኍ༤େ 4XJGUѪձͰࣗ࡞044Λ࡞ͬͯհ͠ ͍ͯ·͢ɻ ໊͋ͩ4UBSޤ৯ 4UBS͍ͩ͘͞ HJUIVCIUUQHJUIVCDPNCBOO[BJ RJJUBIUUQRJJUBDPNCBOO[BJ
ຊ ࠓճࣗ࡞044ʹ͍ͭͯͷհʹͳΓ·͢ɻ ҎԼͷͭͷ044ʹ͍ͭͯ৮ΕͯͦͷಋೖϝϦοτͱ ͍ํʹ͍ͭͯൃද͍͖ͯ͠·͢ɻ IUUQTHJUIVCDPNCBOO[BJ3FTPVSDF,JU IUUQTHJUIVCDPNCBOO[BJ,VSJ ͲͪΒJ04։ൃͰඞཁͳίʔυΛੜͯ͘͠ΕΔϥΠ ϒϥϦʹͳ͍ͬͯ·͢ɻ
ελʔ͍ͩ͘͞
3FTPVSDF,JU ϓϩδΣΫτͷϦιʔεΛ҆શʹ༻͢ΔͨΊͷϥΠϒϥϦ 4UPSZCPBSE 9JC 4FHVF ʜFUD 9DPEFͷϏϧυͷͨͼʹϦιʔεΛ༻͢ΔͨΊͷϝιουΛ࡞ ͯ͘͠ΕΔ ྨࣅϥΠϒϥϦ3TXJGU IUUQTHJUIVCDPNNBDDBJO3TXJGU
Ͳ͏͍͏͜ͱ͔3&"%.&Λνϥݟ
ղܾͯ͘͠ΕΔ͜ͱ ಉ͡Α͏ͳίʔυΛॻ͔ͳͯ͘ େମॻ͍͍ͯΔ༰͕͍ͭҰॹ ϝιουͷ໋໊نଇ͑͞௫ΜͰ͠·ָ͑ ΠϯελϯεΛੜ͢Δͱ͖ʹจࣈྻͷϋʔυίʔυΛͳ͘ ͯ͘͠ΕΔ ิ͕ޮ͘ UZQPʹΑΔ3VOUJNFFSSPSΛ͙ Ϧιʔε͝ͱফͨ͠߹ؔফ͑ΔͷͰ$PNQJMFFSSPSͱͳ Γɺؾ͚ͮΔ
3TXJGUͱൺͯ Ϋϥε͕໌֬ʹΘ͔Δ A7JFX$POUSPMMFSJOJUJBM7JFX$POUSPMMFS A A3TUPSZCPBSEWJFX$POUSPMMFS*EFOUJpFS A ΫϥεϝιουͳͷͰͲͷΫϥε͔͕Θ͔Δ +VNQ͍͢͠
αϙʔτ͍ͯ͠Δ߲͕গͳ͍ $PMPS 'POUαϙʔτ͍ͯ͠ͳ͍ͷ͕͋Δ ͦͷͿΜίϯύΠϧʹ͔͔Δ͕͍࣌ؒ (FOFSBUF͢Δ߲ΛબΔ ඞཁͳϝιου͚ͩચ୕ͯ͠(FOFSBUFͰ͖Δ ͞ΒʹίϯύΠϧ࣌ؒΛ͘Ͱ͖Δ
ͪΐͬͱσϞ
ͪΐͬͱ ελʔ͍ͩ͘͞
J04ͷ $MFBO"SDIJUFDUVSF༻ͷ։ൃπʔϧ,VSJΛ ࡞ͬͨͷͰհ͠·͢ɻ ͜͜Ͱݴ͏$MFBO"SDIJUFDUVSFͪ͜ΒΛࢀߟʹͯ͠ߟ͑·͢ɻ <·ͩ.7$ .71 .77.Ͱফͯ͠ΔͷʁJ04$MFBO"SDIJUFDUVSFʹ͍ͭͯ> IUUQRJJUBDPNLPVUBMPVJUFNTBGDGBEFDED <J04$MFBO"SDIJUFDUVSFͷ͢͢Ί> IUUQTTQFBLFSEFDLDPNLPVUBMPVJPTDMFBOBSDIJUFDUVSFGBMTFTVTVNF
,VSJ
$MFBO"SDIJUFDUVSFͷಛ Λࡉ͔ͨ͘͠"SDIJUFDUVSFɻ ֤ϨΠϠʔͷׂ͕໌֬ʹͳΔɻ 1SPT ϏδωεϩδοΫ͕໌֬ʹͳΔ ϑϨʔϜϫʔΫʹґଘ͠ͳ͍ 6*ʹґଘ͠ͳ͍ %BUB4UPSFʹґଘ͠ͳ͍ ςετͷ༰қੑ $POT
ίʔυྔ͕ଟ͘ͳΔ
None
None
ͳΜ͔ྲྀߦ͍ͬͯΔ͔Βͪΐͬͱॻ͍ͯΈΑ͏ FH6TFSใ͕දࣔ͞Ε͍ͯΔը໘Λ࡞Δɻ ·ͣ"1*ܦ༝ͰใΛऔಘ GFUDI ͢Δ
TUSVDU6TFS&OUJUZʜ TUSVDU6TFS%BUB4UPSF*NQM6TFS%BUB4UPSF\ GVODGFUDI EPOF 6TFS&OUJUZ7PJE \ ʜ'FUDIGSPN8FC"1* ^ ^ TUSVDU6TFS3FQPTJUPSZ*NQM6TFS3FQPTJUPSZ\
MFUEBUB4UPSF6TFS%BUB4UPSF GVODGFUDI EPOF 6TFS&OUJUZ7PJE \ EBUB4UPSFGFUDI EPOF ^ ^ TUSVDU6TFS6TF$BTF*NQM6TFS6TF$BTF\ MFUUSBOTMBUPS6TFS5SBOTMBUPS GVODGFUDI EPOF 6TFS.PEFM7PJE \ SFQPTJUPSZGFUDI\ EPOF USBOTMBUPSUSBOTMBUF ^ ^ ^ TUSVDU6TFS.PEFMʜ TUSVDU6TFS5SBOTMBUPS*NQM6TFS5SBOTMBUPSʜ DMBTT6TFS1SFTFOUFS*NQM6TFS1SFTFOUFSʜ DMBTT6TFS7JFX$POUSPMMFS6TFS7JFXʜ
‧⛺è䡢 `Т` 䡢è⛺‧ ͏Θ͋͋͋͋͋͋͋͋͋͋͋͋͋
͠Β͘ॻ͍ͯΈͯͷؾ͖ͮ ͬͺΓॻ͘ྔ͕ଟ͍ ϑΝΠϧ͍ͬͺ͍/FX͢Δͷਏ͍ɻ ׂ͕ࡉׂ͔͘͞ΕΔ͜ͱʹΑΓಉ͡Α͏ͳॲཧΛॻ͘͜ͱ ͕ଟ͍ɻ
Presenter → DataStore·ͰEntityʹର͢Δ CRUDͷॲཧΛهड़͢Δ͜ͱ͕ଟ͍ Repository → Translator(Entity) → Model
ͪΐͬͱߟ͑ͨ ಉ͡Α͏ͳॲཧΛॻ͘͜ͱ͕ଟ͍ ˠςϯϓϨԽͯ͠ίʔυδΣωϨʔτͪ͠Ό͓͏ɻ ˠ͜ΕͰॻ͘ྔݮΔɻ ϑΝΠϧ͍ͬͺ͍/FX͢Δͷਏ͍ ˠׂ͝ͱʹϑΝΠϧΛ࡞Ζ͏ɻ ˠ͍ͭͰʹ9DPEFϓϩδΣΫτʹJNQPSU͢ΔΑ͏ʹ͠Α͏ɻ ࡞ͬͨˠ,VSJ
,VSJͷಛ ίϚϯυҰൃͰ֤ϨΠϠʔͷϑΝΠϧɾίʔυΛੜͯ͘͠ΕΔɻ͞Βʹ9DPEFϓϩ δΣΫτʹࣗಈͰNQPSU ੜ͢ΔίʔυϑΥʔϚοτʹԊͬͨςϯϓϨʔτΛ༻ҙ͢Δ͜ͱͰϓϩδΣΫτ ͷಛʹΑͬͯมߋՄೳɻ ZBNMϑΝΠϧʹ͍͔ͭ͘ઃఆ߲Λ༻ҙͯ͋͠ΓɺϓϩδΣΫτͷಛʹΑͬͯมߋ Մೳ ඞཁͳϨΠϠʔ͚ͩHFOFSBUF͢Δ͜ͱՄೳɻATPSJAৄ͘͠3&"%.&ݟͯͶ ಋೖ؆୯ ddd
CSFXUBQCBOO[BJIPNFCSFX,VSJ CSFXJOTUBMMLVSJ DE130+&$5@3005@%*3 LVSJTFUVQ MT ,VSJ5FNQMBUF,VSJZNMʜˡZBNMϑΝΠϧͱςϯϓϨʔτ͕Ͱ͖Δɻ ಋೖऴྃ ddd
ΊͬͪΌσϞ
ΊͬͪΌ ελʔ͍ͩ͘͞
ࣗͰ࡞ͬͯͬͯΈͯͷײ νʔϜ։ൃͩͱॻ͖ํͷ౷ҰΛଌΕΔ ϨϏϡʔ͍͢͠ ςϯϓϨͷΑ͏ͳॲཧΓॻ͔ͳ͍͍ͯ͘ͷָ͕ ίʔσΟϯά࣌ؒͷॖ ॻ͖ؒҧ͍͕ͳ͍ʹΑΔόάͩͬͨΓಡΈؒҧ͍ͷݮ
ऴΘΓʹ ࣮ࡍʹ৮͍͍ͬͯͨͩͯ 13 JTTVF 4UBS⭐͍͚ͨͩͨΒخ͍͠Ͱ͢ɻ 044ͳͷͰࣗͰ͖ʹ͍ͬͯ͡ಠࣗHFOFSBUFS࡞Δͷ ໘ന͍ͱࢥ͍·͢ɻ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ