$30 off During Our Annual Pro Sale. View Details »
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.2k
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
610
iOS 12サポート終了で使えるAPIおさらい
kazuhiro4949
2
370
Source Editor ExtensionとSwiftSyntaxでコード自動生成
kazuhiro4949
0
110
大企業の最前線でコードを書き続けるためにやってきたこと
kazuhiro4949
28
19k
10分で振り返るここ数年のWWDCの技術トレンド
kazuhiro4949
0
320
コードを書きながら同時に設計していくためのiOSアプリ開発方針
kazuhiro4949
6
2.6k
身近な技術的課題から始めるOSSプロジェクト
kazuhiro4949
0
330
WWDC 2019 AR・ML・その他Apple プラットフォームのアップデート
kazuhiro4949
0
260
Other Decks in Technology
See All in Technology
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
320
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
280
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
160
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
乗りこなせAI駆動開発の波
eltociear
1
1.1k
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
490
5分で知るMicrosoft Ignite
taiponrock
PRO
0
360
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.4k
AWSセキュリティアップデートとAWSを育てる話
cmusudakeisuke
0
280
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
3.1k
Kubernetes Multi-tenancy: Principles and Practices for Large Scale Internal Platforms
hhiroshell
0
120
regrowth_tokyo_2025_securityagent
hiashisan
0
240
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Building Adaptive Systems
keathley
44
2.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Building an army of robots
kneath
306
46k
Typedesign – Prime Four
hannesfritz
42
2.9k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Optimizing for Happiness
mojombo
379
70k
GitHub's CSS Performance
jonrohan
1032
470k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
The World Runs on Bad Software
bkeepers
PRO
72
12k
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