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
3.5k
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.5k
iOS15でプッシュ通知のテストが大変だった話
kazuhiro4949
0
550
iOS 12サポート終了で使えるAPIおさらい
kazuhiro4949
2
310
Source Editor ExtensionとSwiftSyntaxでコード自動生成
kazuhiro4949
0
66
大企業の最前線でコードを書き続けるためにやってきたこと
kazuhiro4949
28
19k
10分で振り返るここ数年のWWDCの技術トレンド
kazuhiro4949
0
260
コードを書きながら同時に設計していくためのiOSアプリ開発方針
kazuhiro4949
6
2.5k
身近な技術的課題から始めるOSSプロジェクト
kazuhiro4949
0
260
WWDC 2019 AR・ML・その他Apple プラットフォームのアップデート
kazuhiro4949
0
200
Other Decks in Technology
See All in Technology
Road to Single Activity
yurihondo
2
240
「自動テストのプラクティスを効果的に学ぶためのカードゲーム」 ( #sqip2024 )
teyamagu
PRO
2
190
Fediverse Discovery Providers overview
andypiper
0
170
技術的負債解消の取り組みと専門チームのお話
bengo4com
0
340
LINEヤフーのフロントエンド組織・体制の紹介
lycorp_recruit_jp
1
1.2k
開発生産性を始める前に開発チームができること / optim-improve-development-productivity.pdf
optim
0
150
「認証認可」という体験をデザインする ~Nekko Cloud認証認可基盤計画
logica0419
2
450
グイグイ系QAマネージャーの仕事
sadonosake
0
360
OSTという文化を組織に根付かせてみた
sansantech
PRO
2
420
Oracle Autonomous Database:サービス概要のご紹介
oracle4engineer
PRO
1
7.1k
AI前提のサービス運用ってなんだろう?
ryuichi1208
3
1.1k
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
480
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
1
55
Making the Leap to Tech Lead
cromwellryan
128
8.8k
Designing with Data
zakiwarfel
98
5k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
354
29k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Scaling GitHub
holman
458
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.2k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
How STYLIGHT went responsive
nonsquared
93
5.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
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