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
Source Editor Extensionと SwiftSyntaxでコード自動生成ツール...
Search
kazuhiro4949
September 18, 2021
Technology
2
4k
Source Editor Extensionと SwiftSyntaxでコード自動生成ツール を作る
iosdc 2021
https://iosdc.jp/2021/
kazuhiro4949
September 18, 2021
Tweet
Share
More Decks by kazuhiro4949
See All by kazuhiro4949
SwiftUIをUIKitのライフサイクルで拡張するTips
kazuhiro4949
4
2.7k
iOS15でプッシュ通知のテストが大変だった話
kazuhiro4949
0
610
iOS 12サポート終了で使えるAPIおさらい
kazuhiro4949
2
350
Source Editor ExtensionとSwiftSyntaxでコード自動生成
kazuhiro4949
0
97
大企業の最前線でコードを書き続けるためにやってきたこと
kazuhiro4949
28
19k
10分で振り返るここ数年のWWDCの技術トレンド
kazuhiro4949
0
310
コードを書きながら同時に設計していくためのiOSアプリ開発方針
kazuhiro4949
6
2.6k
身近な技術的課題から始めるOSSプロジェクト
kazuhiro4949
0
320
WWDC 2019 AR・ML・その他Apple プラットフォームのアップデート
kazuhiro4949
0
250
Other Decks in Technology
See All in Technology
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
240
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
4
570
Practical Agentic AI in Software Engineering
uzyn
0
110
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
930
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
450
AI開発ツールCreateがAnythingになったよ
tendasato
0
130
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
410
dbt開発 with Claude Codeのためのガードレール設計
10xinc
2
1.2k
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
260
いま注目のAIエージェントを作ってみよう
supermarimobros
0
270
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
220
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
270
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Docker and Python
trallard
45
3.6k
BBQ
matthewcrist
89
9.8k
Embracing the Ebb and Flow
colly
87
4.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Visualization
eitanlees
148
16k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Building an army of robots
kneath
306
46k
Designing Experiences People Love
moore
142
24k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
112
20k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Transcript
ྛ߂ !LB[VIJSP 4PVSDF&EJUPS&YUFOTJPOͱ 4XJGU4ZOUBYͰίʔυࣗಈੜπʔϧ Λ࡞Δ J04%$+BQBO
w ֓ཁ w ࣄྫ%*)FMQFSGPS4XJGU w ࣄྫ"DDFTT-FWFM$IBOHFSGPS9DPEF w ٕज़ղઆ w ଞͷख๏ͱͷൺֱ
w ·ͱΊ
w ֓ཁ w ࣄྫ%*)FMQFSGPS4XJGU w ࣄྫ"DDFTT-FWFM$IBOHFSGPS9DPEF w ٕज़ղઆ w ଞͷख๏ͱͷൺֱ
w ·ͱΊ
֓ཁ w ίʔυࣗಈੜख๏ͱͯ͠4PVSDF&EJUPS&YUFOTJPO 4XJGU4ZOUBYΛఏҊ w ࣮ࡍʹ։ൃͰ׆༻͍ͯ͠Δ w ϝϦοτɾσϝϦοτ͕͋ΔͷͰଞͷํ๏ͱซ༻͢Δͷ͕ྑ͍
w ֓ཁ w ࣄྫ%*)FMQFSGPS4XJGU w ࣄྫ"DDFTT-FWFM$IBOHFSGPS9DPEF w ٕज़ղઆ w ଞͷख๏ͱͷൺֱ
w ·ͱΊ
എܠͱͳΔ՝ w ػೳ࣮ͨ͠ޙͰϦϑΝΫλϦϯά ͠ͳ͕ΒςετΛॻ͖͍ͨ w %*ͷͨΊʹϓϩτίϧ࡞ɾϞοΫ ࡞͢Δͷ͕໘ ᶃػೳ࣮ ᶅґଘΫϥεΛϓϩτίϧԽ ᶄςετ࣮
ᶆϞοΫ࡞ ᶇ%*Ͱ͖ΔΑ͏ʹͯ͠ςετΛ௨͢
എܠͱͳΔ՝ w ػೳ࣮ͨ͠ޙͰϦϑΝΫλϦϯά ͠ͳ͕ΒςετΛॻ͖͍ͨ w %*ͷͨΊʹϓϩτίϧ࡞ɾϞοΫ ࡞͢Δͷ͕໘ ᶃػೳ࣮ ᶅґଘΫϥεΛϓϩτίϧԽ ᶄςετ࣮
ᶆϞοΫ࡞ ᶇ%*Ͱ͖ΔΑ͏ʹͯ͠ςετΛ௨͢
എܠͱͳΔ՝ w ػೳ࣮ͨ͠ޙͰϦϑΝΫλϦϯά ͠ͳ͕ΒςετΛॻ͖͍ͨ w %*ͷͨΊʹϓϩτίϧ࡞ɾϞοΫ ࡞͢Δͷ͕໘ ᶃػೳ࣮ ᶅґଘΫϥεΛϓϩτίϧԽ ᶄςετ࣮
ᶆϞοΫ࡞ ᶇ%*Ͱ͖ΔΑ͏ʹͯ͠ςετΛ௨͢
%*)FMQFSGPS4XJGU w 4XJGUͷϦϑΝΫλϦϯάπʔϧ w Ϋϥε͔Βϓϩτίϧͷநग़ w ϓϩτίϧ͔ΒϞοΫͷੜ IUUQTBQQTBQQMFDPNKQBQQEJIFMQFSGPSTXJGUJE
%*)FMQFSGPS4XJGU w 4XJGUͷϦϑΝΫλϦϯάπʔϧ w Ϋϥε͔Βϓϩτίϧͷநग़ w ϓϩτίϧ͔ΒϞοΫͷੜ IUUQTBQQTBQQMFDPNKQBQQEJIFMQFSGPSTXJGUJE
%*)FMQFSGPS4XJGU w 4XJGUͷϦϑΝΫλϦϯάπʔϧ w Ϋϥε͔Βϓϩτίϧͷநग़ w ϓϩτίϧ͔ΒϞοΫͷੜ Ϋϥε ϓϩτίϧ
%*)FMQFSGPS4XJGU w 4XJGUͷϦϑΝΫλϦϯάπʔϧ w Ϋϥε͔Βϓϩτίϧͷநग़ w ϓϩτίϧ͔ΒϞοΫͷੜ Ϋϥε ϓϩτίϧ ϞοΫ
σϞ
%*)FMQFSGPS4XJGUͷಛ w 9DPEF্Ͱ࣮தίʔυʹର͠ ͯϦϑΝΫλϦϯάՄೳ w ϦϑΝΫλϦϯάͷεςοϓΛ Ұ෦লུͰ͖Δ w લड़ͷϦζϜΛ่ͣ͞ʹίʔυ ੜ͢Δ
ᶃػೳ࣮ ᶅґଘΫϥεΛϓϩτίϧԽ ᶄςετ࣮ ᶆϞοΫ࡞ ᶇ%*Ͱ͖ΔΑ͏ʹͯ͠ςετΛ௨͢
%*)FMQFSGPS4XJGUͷಛ w ϦϑΝΫλϦϯάͷεςοϓΛ Ұ෦লུͰ͖Δ w લड़ͷϦζϜΛ่ͣ͞ʹίʔυ ੜ͢Δ w 9DPEF্Ͱ࣮தίʔυʹର͠ ͯϦϑΝΫλϦϯάՄೳ
ᶃػೳ࣮ ᶅґଘΫϥεΛϓϩτίϧԽ ᶄςετ࣮ ᶆϞοΫ࡞ ᶇ%*Ͱ͖ΔΑ͏ʹͯ͠ςετΛ௨͢
%*)FMQFSGPS4XJGUͷಛ w ϦϑΝΫλϦϯάͷεςοϓΛ Ұ෦লུͰ͖Δ w લड़ͷϦζϜΛ่ͣ͞ʹίʔυ ੜ͢Δ w 9DPEF্Ͱ࣮தίʔυʹର͠ ͯϦϑΝΫλϦϯάՄೳ
ᶃػೳ࣮ ᶅґଘΫϥεΛϓϩτίϧԽ ᶄςετ࣮ ᶆϞοΫ࡞ ᶇ%*Ͱ͖ΔΑ͏ʹͯ͠ςετΛ௨͢
%*)FMQFSGPS4XJGUͷಛ w ϦϑΝΫλϦϯάͷεςοϓΛ Ұ෦লུͰ͖Δ w લड़ͷϦζϜΛ่ͣ͞ʹίʔυ ੜ͢Δ w 9DPEF্Ͱ࣮தίʔυʹର͠ ͯϦϑΝΫλϦϯάՄೳ
ᶃػೳ࣮ ᶅґଘΫϥεΛϓϩτίϧԽ ᶄςετ࣮ ᶆϞοΫ࡞ ᶇ%*Ͱ͖ΔΑ͏ʹͯ͠ςετΛ௨͢
w ֓ཁ w ࣄྫ%*)FMQFSGPS4XJGU w ࣄྫ"DDFTT-FWFM$IBOHFSGPS9DPEF w ٕज़ղઆ w ଞͷख๏ͱͷൺֱ
w ·ͱΊ
എܠͱͳΔ՝ w طଘίʔυΛ'8Խ͢Δ࣌ʹ*'ެ։ ͢Δͷ͕໘ w ͦ͏͍͏͜ͱ͕͍ͨ͠ϓϩδΣΫτ େମΫϥεͷίʔυྔ͕Ͱ͔͍
എܠͱͳΔ՝ w طଘίʔυΛ'8Խ͢Δ࣌ʹ*'ެ։ ͢Δඞཁ͕͋Δ w ඞཁʹͳΔ࣌ʹେମϓϩδΣΫτ ͷίʔυྔ͕Ͱ͔͍ ϞϊϦγοΫͳ ϓϩδΣΫτ ϓϩδΣΫτ
ϑϨʔϜ ϫʔΫ ϑϨʔϜ ϫʔΫ ϑϨʔϜ ϫʔΫ ϑϨʔϜ ϫʔΫ ϑϨʔϜ ϫʔΫ
എܠͱͳΔ՝ w طଘίʔυΛ'8Խ͢Δ࣌ʹ*'ެ։ ͢Δඞཁ͕͋Δ w ඞཁʹͳΔ࣌ʹେମϓϩδΣΫτ ͷίʔυྔ͕Ͱ͔͘ͳ͍ͬͯͯᶅͷ ࡞ۀ͕େม ᶃϑϨʔϜϫʔΫͷശΛ࡞ ᶅඞཁͳ*'Λެ։
ᶄ4XJGUϑΝΠϧͷλʔήοτมߋ ᶆϏϧυΛ௨͢
"DDFTT-FWFM$IBOHFSGPS9DPEF w 4XJGUͷϦϑΝΫλϦϯάπʔϧ w JOUFSOBMΛҰׅͰQVCMJDʹมͰ ͖Δ IUUQTBQQTBQQMFDPNKQBQQBDDFTTMFWFMDIBOHFSGPSYDPEFJE
"DDFTT-FWFM$IBOHFSGPS9DPEF w 4XJGUͷϦϑΝΫλϦϯάπʔϧ w JOUFSOBMΛҰׅͰQVCMJDʹมͰ ͖Δ IUUQTBQQTBQQMFDPNKQBQQBDDFTTMFWFMDIBOHFSGPSYDPEFJE
"DDFTT-FWFM$IBOHFSGPS9DPEF w 4XJGUͷϦϑΝΫλϦϯάπʔϧ w JOUFSOBMΛҰׅͰQVCMJDʹมͰ ͖Δ IUUQTBQQTBQQMFDPNKQBQQBDDFTTMFWFMDIBOHFSGPSYDPEFJE
9DPEFͷ&EJUPSϝχϡʔ͔ΒJOUFSOBMΛQVCMJDҰׅมߋ
9DPEFͷ&EJUPSϝχϡʔ͔ΒJOUFSOBMΛQVCMJDҰׅมߋ
w ֓ཁ w ࣄྫ%*)FMQFSGPS4XJGU w ࣄྫ"DDFTT-FWFM$IBOHFSGPS9DPEF w ٕज़ղઆ w ଞͷख๏ͱͷൺֱ
w ·ͱΊ
ߏ w NBD04BQQ w 9DPEF4PVSDF&EJUPS&YUFOTJPO w 4XJGU4ZOUBY NBD04"QQ MJC@*OUFSOBM4XJGU4ZOUBY1BSTFSEZMJC 4XJGU4ZOUBY
4PVSDF&EJUPS &YUFOTJPO 8SBQQFS$MBTT
ߏ NBD04BQQ NBD04"QQ MJC@*OUFSOBM4XJGU4ZOUBY1BSTFSEZMJC 4XJGU4ZOUBY 4PVSDF&EJUPS &YUFOTJPO 8SBQQFS$MBTT w ͍ΘΏΔҰൠతͳNBD04ΞϓϦ
w "QQ,JUPS4XJGU6* w "QQ4UPSFʹެ։Մೳ
ߏ 4PVSDF&EJUPS&YUFOTJPO w NBD04ΞϓϦͷ"QQ&YUFOTJPOͷ Ұͭ w 9DPEFͷϑΝΠϧΛೖྗͱͯ͠ɺ ॻ͖͑Λߦ͑Δ NBD04"QQ MJC@*OUFSOBM4XJGU4ZOUBY1BSTFSEZMJC
4XJGU4ZOUBY 4PVSDF&EJUPS &YUFOTJPO 8SBQQFS$MBTT
ߏ 4XJGU4ZOUBY w 4XJGUͷ4XJGUʹΑΔύʔαʔ w IUUQTHJUIVCDPNBQQMF TXJGUTZOUBY w NBD04"QQͱ&YUFOTJPOͰڞ༗͢ ΔϥούʔΛ࡞Δ
w NBDͷEZMJCΛΞϓϦʹΈࠐΉ ඞཁ͕͋Δ NBD04"QQ MJC@*OUFSOBM4XJGU4ZOUBY1BSTFSEZMJC 4XJGU4ZOUBY 4PVSDF&EJUPS &YUFOTJPO 8SBQQFS$MBTT
σϞ
%*)FMQFSGPS4XJGUͷॲཧͷྲྀΕ 9DPEF NBD04BQQ 8SBQQFS 'SBNFXPSL 4PVSDF&EJUPS &YUFOTJPO 4XJGU4ZOUBY ᶃTXJGUϑΝΠϧΛ &YUFOTJPOʹ͢
ᶄΧʔιϧબൣғΛ4USJOHͱͯͭ͠ͳ͍Ͱ 4XJGU4ZOUBYͷܕͱͯ͠ॲཧ ᶅύʔε݁Ռ͔ΒϓϩτίϧΛੜͯ͠ 4USJOHʹͯ͠ฦ͢ ᶆಉ͡TXJGUϑΝΠϧΛ্ॻ͖
9DPEF্Ͱͷ͍ํ
࡞ͬͨNBD04ΞϓϦʹؔͯ͠ w MJC@*OUFSOBM4XJGU4ZOUBY1BSTFS ΛΈࠐΜͩঢ়ଶͰ"QQ4UPSF ެ։Մೳ w &YUFOTJPOΛ͍ͬͯΔͱ৹ࠪͰ αϯϓϧϓϩδΣΫτཁٻ͞Ε ͨ IUUQTBQQTBQQMFDPNKQBQQEJIFMQFSGPSTXJGUJE
w ֓ཁ w ࣄྫ%*)FMQFSGPS4XJGU w ࣄྫ"DDFTT-FWFM$IBOHFSGPS9DPEF w ٕज़ղઆ w ଞͷख๏ͱͷൺֱ
w ·ͱΊ
ίʔυࣗಈੜͷදతͳख๏ͱͷൺֱ ํ๏ ಛ σϝϦοτ 4PVSDF&EJUPS&YUFOTJPO w ίʔυฤू͠ͳ͕Β࣮ߦՄೳ w NBD04BQQͱͯ͠ w
4XJGUϑΝΠϧ୯ମͷΈೖྗͰ͖Δ 9DPEF5FNQMBUF w ੩తϑΝΠϧΛ༻ҙ͢Δ͚ͩͰखܰ w ϑΝΠϧ࡞࣌ʹ͑Δ w ίʔυʹΑΔෳࡶͳग़͚͕͍͠͠ 3VO4DSJQUFUD w Ϗϧυ࣌ʹࣗಈੜ w ԿͰΠϯϓοτɾΞτϓοτͰ͖Δ w ϏϧυΛ௨͢ඞཁ͕͋Δ
w ֓ཁ w ࣄྫ%*)FMQFSGPS4XJGU w ࣄྫ"DDFTT-FWFM$IBOHFSGPS9DPEF w ٕज़ղઆ w ଞͷख๏ͱͷൺֱ
w ·ͱΊ
ࠓͷ w ίʔυࣗಈੜख๏ͱͯ͠4PVSDF&EJUPS&YUFOTJPO 4XJGU4ZOUBYΛఏҊ w ͜ͷख๏ʹΑΔͭͷϢʔεέʔεΛհ w ଞͷख๏ͱൺֱͯ͠ఏҊ༰ͷϝϦοτɾσϝϦοτΛղઆ
4PVSDF&EJUPS&YUFOTJPO 4XJGU4ZOUBY w ίʔυΛॻ͍͍ͯΔ࠷தʹɺͦΕΛͬͯίʔυࣗಈੜ͕Ͱ͖Δ w ύʔαʔ༻ҙ͞Ε͍ͯΔͷͰɺࣗͷཁ݅ͷͨΊʹखܰʹಋೖͰ͖Δ w ίʔυࣗಈੜͷखஈͷҰͭͱͯ͠৭ʑ͑ͦ͏
ϦϑΝϨϯε w$SFBUJOHB4PVSDF&EJUPS&YUFOTJPO w IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOYDPEFLJUDSFBUJOH@B@TPVSDF@FEJUPS@FYUFOTJPO wBQQMFTXJGUTZOUBY w IUUQTHJUIVCDPNBQQMFTXJGUTZOUBY wLB[VIJSP%*)FMQFS'PS4XJGU w IUUQTHJUIVCDPNLB[VIJSP%*)FMQFS'PS4XJGU
wLB[VIJSP"DDFTT-FWFM$IBOHFS w IUUQTHJUIVCDPNLB[VIJSP"DDFTT-FWFM$IBOHFS