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
4.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.8k
iOS15でプッシュ通知のテストが大変だった話
kazuhiro4949
0
620
iOS 12サポート終了で使えるAPIおさらい
kazuhiro4949
2
380
Source Editor ExtensionとSwiftSyntaxでコード自動生成
kazuhiro4949
0
130
大企業の最前線でコードを書き続けるためにやってきたこと
kazuhiro4949
28
19k
10分で振り返るここ数年のWWDCの技術トレンド
kazuhiro4949
0
330
コードを書きながら同時に設計していくためのiOSアプリ開発方針
kazuhiro4949
6
2.7k
身近な技術的課題から始めるOSSプロジェクト
kazuhiro4949
0
340
WWDC 2019 AR・ML・その他Apple プラットフォームのアップデート
kazuhiro4949
0
270
Other Decks in Technology
See All in Technology
AIで 浮いた時間で 何をする? 2026春 #devsumi
konifar
16
3k
Three-Legged OAuth in AgentCore Gateway
hironobuiga
2
180
LLMOpsのこれまでとこれからを学ぶ
nsakki55
2
670
あすけん_Developers_Summit_2026_-_Vibe_Coding起点での新機能開発で__あすけん_が乗り越えた壁.pdf
iwahiro
0
640
器用貧乏が強みになるまで ~「なんでもやる」が導いたエンジニアとしての現在地~
kakehashi
PRO
5
500
欲しいを叶える個人開発の進め方 / How to Run an Indie Project That Brings Your Ideas to Life
endohizumi
0
320
フルスタックGoでスコア改ざんを防いだ話
ponyo877
0
510
ブログの作成に音声AIツールを使って音声入力しようとした話
smt7174
1
150
Scrum Fest Morioka 2026
kawaguti
PRO
2
590
既存のログ監視システムをクラウドっぽく実装してみた
tjmtrhs
0
190
失敗できる意思決定とソフトウェアとの正しい歩き方_-_変化と向き合う選択肢/ Designing for Reversible Decisions
soudai
PRO
7
420
LINEヤフーにおけるAI駆動開発組織のプロデュース施策
lycorptech_jp
PRO
0
100
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
620
A better future with KSS
kneath
240
18k
GraphQLとの向き合い方2022年版
quramy
50
14k
Paper Plane (Part 1)
katiecoart
PRO
0
4.8k
Design in an AI World
tapps
0
160
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
100
A Modern Web Designer's Workflow
chriscoyier
698
190k
Ethics towards AI in product and experience design
skipperchong
2
210
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
110
4 Signs Your Business is Dying
shpigford
187
22k
Building AI with AI
inesmontani
PRO
1
740
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