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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kazuhiro4949
September 18, 2021
Technology
4.6k
2
Share
Source Editor Extensionと SwiftSyntaxでコード自動生成ツール を作る
iosdc 2021
https://iosdc.jp/2021/
kazuhiro4949
September 18, 2021
More Decks by kazuhiro4949
See All by kazuhiro4949
SwiftUIをUIKitのライフサイクルで拡張するTips
kazuhiro4949
4
2.9k
iOS15でプッシュ通知のテストが大変だった話
kazuhiro4949
0
640
iOS 12サポート終了で使えるAPIおさらい
kazuhiro4949
2
390
Source Editor ExtensionとSwiftSyntaxでコード自動生成
kazuhiro4949
0
130
大企業の最前線でコードを書き続けるためにやってきたこと
kazuhiro4949
28
19k
10分で振り返るここ数年のWWDCの技術トレンド
kazuhiro4949
0
340
コードを書きながら同時に設計していくためのiOSアプリ開発方針
kazuhiro4949
6
2.7k
身近な技術的課題から始めるOSSプロジェクト
kazuhiro4949
0
350
WWDC 2019 AR・ML・その他Apple プラットフォームのアップデート
kazuhiro4949
0
280
Other Decks in Technology
See All in Technology
20260428_Product Management Summit_tadokoroyoshiro
tadokoro_yoshiro
10
13k
Class.new is all you need
riseshia
1
110
MLOps導入のための組織作りの第一歩
akasan
0
360
Amazon S3 Filesについて
yama3133
2
220
データ定義の混乱と戦う 〜 管理会計と財務会計 〜
wonohe
0
130
バイブコーディングで3倍早く⚪⚪を作ってみた
samakada
0
110
基盤を育てる 外部SaaS連携の運用
gamonges_dresscode
1
120
AI時代のガードレールとしてのAPIガバナンス
nagix
0
300
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
750
AIを共同作業者にして書籍を執筆する方法 / How to Write a Book with AI as a Co-Creator
ama_ch
2
150
ハーネスエンジニアリングの概要と設計思想
sergicalsix
9
5.2k
AIコーディング時代における、ソフトウェアサプライチェーン攻撃に対する防衛術(簡易版)
soysoysoyb
0
120
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
170
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Done Done
chrislema
186
16k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
140
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
200
Designing for humans not robots
tammielis
254
26k
The Curious Case for Waylosing
cassininazir
0
310
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.8k
Evolving SEO for Evolving Search Engines
ryanjones
0
180
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
770
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