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
Swift Reflection
Search
[email protected]
January 20, 2023
Programming
1
270
Swift Reflection
About Swift Reflection Pitch
[email protected]
January 20, 2023
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
TSPLのすすめ
shiz
1
170
Swift compiler 101 & How async function works
shiz
0
56
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
310
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
2k
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
5
15k
(非公開スライド追加)座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
1
640
複雑さに立ち向かうためのコードリーディング入門
shiz
35
14k
Swift Observation
shiz
5
890
Swift Concurrency Next Step
shiz
7
8.6k
Other Decks in Programming
See All in Programming
2025 컴포즈 마법사
jisungbin
0
140
How Software Deployment tools have changed in the past 20 years
geshan
0
1.3k
Web エンジニアが JavaScript で AI Agent を作る / JSConf JP 2025 sponsor session
izumin5210
4
1.9k
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
8
4.6k
All(?) About Point Sets
hole
0
210
モデル駆動設計をやってみよう Modeling Forum2025ワークショップ/Let’s Try Model-Driven Design
haru860
0
180
オフライン対応!Flutterアプリに全文検索エンジンを実装する @FlutterKaigi2025
itsmedreamwalker
2
240
Nitro v3
kazupon
2
320
Phronetic Team with AI - Agile Japan 2025 closing
hiranabe
2
660
Reactive Thinking with Signals and the new Resource API
manfredsteyer
PRO
0
110
CSC509 Lecture 11
javiergs
PRO
0
310
[SF Ruby Conf 2025] Rails X
palkan
0
320
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
A designer walks into a library…
pauljervisheath
210
24k
How STYLIGHT went responsive
nonsquared
100
5.9k
Six Lessons from altMBA
skipperchong
29
4.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Building Adaptive Systems
keathley
44
2.8k
Optimizing for Happiness
mojombo
379
70k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Transcript
ϦϑϨΫγϣϯ 3FGMFDUJPO Θ͍Θ͍TXJGUD TIJ[
·ͩ1JUDIஈ֊ͷใͳͷͰมΘ ΔՄೳੑ͋Γ ͳ͘ͳΔՄೳੑ ࣌ͷใ
֓ཁ
ϦϑϨΫγϣϯͱʁ w ϓϩάϥϜͷதͰͦͷϓϩάϥϜʹؚ·ΕΔܕมϝιουͷϝλใΛ ࢀরૢ࡞Ͱ͖ΔΑ͏ʹ͢ΔΈ w ݴޠઃܭࣗମΛมߋ͢Δ͜ͱͳ͘ɺݴޠΛ࣮ߦ࣌ʹಈతʹมߋͰ͖Δ ֓ཁϦϑϨΫγϣϯͱʁ IUUQTYUFDIOJLLFJDPNJUBSUJDMF,FZXPSE ˞ϝλใσʔλͦͷͷͰͳ͘ɺͦͷσʔλΛઆ໌͢Δใ ଳใ
σʔλ ϝλใ ໊લ ܕใ IUUQTXBJJJOGPXPSEIUNM
.JSSPSTUSVDU w 4XJGUͰϦϑϨΫγϣϯΛ࣮ߦ͢ΔͨΊͷ"1*Λఏڙ͢ΔTUSVDU w 4XJGUFWPMVUJPOͷϓϩηε͕࢝·Δલ͔Β͋ͬͨݹ͍ػೳ ֓ཁ4XJGUͷϦϑϨΫγϣϯ .JSSPS ग़ྗ݁Ռ GJFME/BNF0QUJPOBM OBNF
GJFME7BMVF4QBSLZ GJFME5ZQF4USJOH GJFME/BNF0QUJPOBM BHF GJFME7BMVF GJFME5ZQF*OU IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOTXJGUNJSSPS
.JSSPSͷ
.JSSPSͰͰ͖ͳ͍͜ͱ .JSSPSͰͰ͖ͳ͍͜ͱ ϝλλΠϓ͔Βܕใ͕औಘͰ͖ͳ͍ DBTF໊Λऔಘ͢Δखஈ͕ͳ͍ δΣωϦοΫҾ͔Β۩ମతͳϝλใΛऔಘͰ͖ͳ͍ "OZ)BTIBCMFʹมՄೳ͔Θ͔Βͳ͍ͷͰΤϥʔ
.JSSPSͰͰ͖ͳ͍͜ͱ w Πϯελϯε͕ͳ͍ͱܕใ͕Θ͔Βͳ͍ w நԽͨ͠ܕ͔Β࣮ࡍͷܕͷใΛऔΓग़ͤͳ͍ .JSSPSͰͰ͖ͳ͍͜ͱ $VTUPN4USJOH$POWFSUJCMFʹ४ڌ ࣮ίϯύΠϥ ͬͱ৭Μͳ͜ͱΛ͍ͬͯΔ
ఏҊ༰ IUUQTGPSVNTTXJGUPSHUQJUDISF fl FDUJPO
3FGMFDUJPOϞδϡʔϧ w ϦϑϨΫγϣϯΛ࣮ߦ͢ΔͨΊͷߴϨϕϧͷ"1*Λఏڙ͢ΔϞδϡʔϧ w طଘͷ.JSSPSΑΓϦϑϨΫγϣϯΛΑΓ؆୯ʹΑΓૢ࡞͘͢͢͠Δ w ։ൃऀ͜Ε·ͰΑΓ͔ͳΓଟ͘ͷϦϑϨΫγϣϯใΛऔಘͰ͖Δ ఏҊ༰3F fl FDUJPOϞδϡʔϧ
.JSSPSΛ֦ு͠ͳ͍ཧ༝ .JSSPS4XJGUϞδϡʔϧʹ͋ΔɻϦϑϨΫγϣϯશͯͷ։ൃऀ͕ඞཁͳ ༁Ͱͳ͍ɻ4XJGUϞδϡʔϧ$PSFͷ"1*͚ͩஔ͖͘ .JSSPSͷݱࡏͷઃܭɺࠓճఏҊ͍ͯ͠Δ"1*ͷઃܭʹͳ͍͍͔ͭ͘ͷύ ϑΥʔϚϯεͷΛղܾ͢Δͷʹద͍ͯ͠Δɻ۩ମతʹΠϯελϯεͷ Λऔಘ͢Δ࣌ʹɺDIJMESFOͷϑΟʔϧυͷܕଈ࣌ʹ FBHBSMZ σϚϯάϧ
͢ΔɻࠓճͷఏҊͷ߹ɺҰͭͷܕใͷΈཉ͍͠߹Ԇͯ͠ MB[JMZ Ұ ͚ͭͩऔಘ͍ͨ͠έʔε͕͋ΔͷͰ߹͍ͬͯͳ͍ ݹ͍"1*Ͱ4XJGUFWPMVUJPOͷϓϩηεΛܦ͍ͯͳ͍ɻࠓճɺ"1*ͷ࠷దͳܗ Λݟ͚ͭΔͨΊʹίϛϡχςΟͷϑΟʔυόοΫΛΒ͏ػձΛઃ͚Δ ఏҊ༰3F fl FDUJPOϞδϡʔϧ.JSSPSΛ֦ு͠ͳ͍ཧ༝
ར༻Πϝʔδ ఏҊ༰3F fl FDUJPOϞδϡʔϧར༻Πϝʔδ 3F fl FDUJPOϞδϡʔϧΛJNQPSU ϝλใ͔Β5ZQFܕΛ࡞ ϑΟʔϧυ͔Β৭ʑͳใΛऔಘͰ͖Δ
ར༻Πϝʔδ ఏҊ༰3F fl FDUJPOϞδϡʔϧར༻Πϝʔδ $BTFܕΛੜ ϓϩύςΟ͔Β৭ʑͳใΛऔಘͰ͖Δ
ར༻Πϝʔδ ఏҊ༰3F fl FDUJPOϞδϡʔϧར༻Πϝʔδ δΣωϦοΫҾͷใΛऔಘ Կ͔ͷ"SSBZͰ͋Δ͔͚ͩΛݟ͍ͯΔ %JDUJPOBSZͰ͋Δ͔͚ͩΛݟ͍ͯΔ
࣮ৄࡉ ఏҊ༰࣮ৄࡉ
ఏҊ༰࣮ৄࡉܕҰཡ 5ZQFTUSVDU 3F fl FDUJPOϞδϡʔϧͷϝΠϯΤϯτϦϙΠϯ τɻBTͷӈଆʹॻ͚Δ͋ΒΏΔܕΛද͢͜ͱ͕ Ͱ͖Δ 'JFMETUSVDU TUSVDUͷ֨ೲϓϩύςΟ DMBTTͷ֨ೲϓϩύςΟ
λϓϧͷݸʑͷཁૉ $BTFTUSVDU FOVNͷݸʑͷDBTF 1BSUJBM5ZQFTUSVDU (FOFSJDͳܕͷϥοϓ͍ͯ͠Δ෦ ྫ"SSBZ*OUͷ"SSBZ ܕҰཡ
5ZQFTUSVDU w 3F fl FDUJPOϞδϡʔϧͷϝΠϯΤϯτϦϙΠϯτ w 4XJGUͰBTͷӈଆʹॻ͚Δ͋ΒΏΔܕΛද͢͜ͱ͕Ͱ͖Δ ఏҊ༰࣮ৄࡉ5ZQFTUSVDU 4XJGUͷϝλλΠϓʹ࠶ͼม
'JFMETUSVDU w TUSVDU·ͨDMBTTʹ֨ೲ͞ΕͨϓϩύςΟɺ·ͨλϓϧͷཁૉ ఏҊ༰࣮ৄࡉ'JFMETUSVDU
$BTFTUSVDU w FOVNͷDBTFͷҰͭΛද͢ ఏҊ༰࣮ৄࡉ$BTFTUSVDU
1BSUJBM5ZQFTUSVDU w (FOFSJDͳܕͷϥοϓ͍ͯ͠Δ෦Λද͢ ఏҊ༰࣮ৄࡉ1BSUJBM5ZQFTUSVDU
WBSQBSUJBM1BSUJBM5ZQF \HFU^ ఏҊ༰࣮ৄࡉ1BSUJBM5ZQFTUSVDU
GVODDSFBUF XJUI5ZQF 5ZQF ఏҊ༰࣮ৄࡉ1BSUJBM5ZQFTUSVDU 1BSUJBM5ZQF͔Β৽͍͠4XJGUͷܕͷΠϯελϯεੜͰ͖Δ <*OU 4USJOH %PVCMF "SSBZ'MPBU> "*OU
#4USJOH $%PVCMF %"SSBZ'MPBU δΣωϦοΫҾͷํ֎ଆ͔ΒͯΊΒΕΔ
কདྷͷݕ౼ࣄ߲ ఏҊ༰কདྷͷݕ౼ࣄ߲
3VOUJNFϞδϡʔϧ ఏҊ༰কདྷͷݕ౼ࣄ߲3VOUJNFϞδϡʔϧ w ϦϑϨΫγϣϯػೳΛఏڙ͢ΔͨΊʹ4XJGU3VOUJNFͷϧʔνϯσʔλ ߏ͕ඞཁ͕ͩɺ΄ͱΜͲͷ։ൃऀ͜͏͍ͬͨػೳΛૢ࡞͢Δ͜ͱ ͳ͍ w ͦ͜Ͱ3VOUJNFͱ௨৴͢Δઐ༻ϞδϡʔϧΛઃ͚͔ͯͳΓϨϕϧͷ"1*Λఏ ڙ͢Δ
ྑ͍͜ͱ w 3F fl FDUJPOϞδϡʔϧͷΑ͏ͳߴϨϕϧͷ"1*Λߏங͘͢͠Δ w Ϩϕϧͷػೳͷ࠶࣮͢Δ͜ͱͰѱ༻Ͱ͖ͳ͍Α͏ʹ͢Δ
ΑΓଟ͘ͷϦϑϨΫγϣϯใͷఏڙ ఏҊ༰কདྷͷݕ౼ࣄ߲ΑΓଟ͘ͷϦϑϨΫγϣϯใͷఏڙ w ଐੑؔɺܭࢉϓϩύςΟ DPNQVUFEQSPQFSUZ ͷใऔಘͰ͖ͳ͍ w ఏڙͰ͖Δ͕ίʔυαΠζ͕૿͑ΔͷͰίετͱൺֱͯ͠ݕ౼͢Δ
ؔ࿈ػೳ ؔ࿈ػೳ
0QU*O3FGMFDUJPO.FUBEBUB w 3F fl FDUBCMFͱ͍͏৽͍͠ϚʔΧʔϓϩτίϧΛՃͯ͠ίϯύΠϧ࣌νΣο ΫͰ͖ΔΑ͏ʹͯ͠ɺϦϑϨΫγϣϯϝλσʔλ ໊લͳͲͷจࣈྻใ ΛΑ Γܕ҆શͰηΩϡΞʹѻ͑ΔΑ͏ʹ͢Δ w
ඞཁͳͷʹ͚ͩϦϑϨΫγϣϯσʔλΛग़ྗ͢ΔͷͰόΠφϦαΠζΛޮ ԽͰ͖Δ w ϦϑϨΫγϣϯϝλσʔλͷग़ྗΦϑʹͯ͠͠·͍ ͦ͏͍͏ϑϥά͕͋Δ ɺ ͜ΕΛ͍ͬͯΔػೳ͕ಈ͔ͳ͘ͳΔͱ͍͏ϦεΫ͕ͳ͘ͳΔ 4XJGU6*ͳͲ ؔ࿈ػೳ0QU*O3F fl FDUJPO.FUBEBUB IUUQTGPSVNTTXJGUPSHUTFPQUJOSF fl FDUJPONFUBEBUB
$VTUPN.FUB"UUSJCVUFT w ϥΠϒϥϦͰΧελϜͷϝλσʔλΛఆٛͰ͖Α͏ʹ͢ΔɻͦΕΛ࣮ߦ࣌ʹ ୳ͯ͠Կ͔Ͱ͖ΔΑ͏ʹ͢Δ w ৽͍͠!SVOUJNF.FUBEBUBΛՃ w ͜ͷଐੑ͕͍ͨܕΧελϜଐੑͱͯ͠༻Ͱ͖Δ ՃͷҾࢦఆͰ͖ Δ
w ϦϑϨΫγϣϯ"1*ͰಛఆͷΧελϜଐੑ͕͍ͨͯ͢ͷએݴΛऩूͰ͖Δ w Ϣʔεέʔεಛఆͷଐੑͷ͍ͨςετͷΈΛ࣮ߦ͢ΔͳͲ IUUQTGPSVNTTXJGUPSHUQJUDIDVTUPNNFUBEBUBBUUSJCVUFT ؔ࿈ػೳ$VTUPN.FUB"UUSJCVUFT