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 並行性(Concurrency)を読み解く - WWDC21
Search
notoroid
August 04, 2021
Programming
2
210
Swift 並行性(Concurrency)を読み解く - WWDC21
Swift Concurrency関連プレゼンテーションガイド
notoroid
August 04, 2021
Tweet
Share
More Decks by notoroid
See All by notoroid
ZIPでくれ - Apple謹製 geocoding/ reverse geocoding
notoroid
0
36
WeatherKit iOS18 update - お天気の更新
notoroid
0
41
AppIntentsの用途 - AppleのGPT元年
notoroid
1
130
Privacy manifests - Appleと開発コミュニティ
notoroid
1
190
とっさのAutoLayout - Rewind autolayout
notoroid
0
81
UVC(USB video class)と マルチプラットフォーム - UVC support by Apple multiplatform
notoroid
0
300
SwiftUIむけに 整理された状態監視 Observation
notoroid
0
680
よせあつめSwift - Swift5.9
notoroid
1
640
Transferable - SwiftUI ドキュメントアプリ
notoroid
2
400
Other Decks in Programming
See All in Programming
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
120
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
480
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
3
290
開発者とQAの越境で自動テストが増える開発プロセスを実現する
92thunder
1
190
【re:Growth 2024】 Aurora DSQL をちゃんと話します!
maroon1st
0
780
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
190
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
940
良いユニットテストを書こう
mototakatsu
8
2.6k
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
470
Exploring: Partial and Independent Composables
blackbracken
0
100
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
170
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
65
11k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Optimizing for Happiness
mojombo
376
70k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Thoughts on Productivity
jonyablonski
67
4.4k
What's in a price? How to price your products and services
michaelherold
243
12k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Transcript
4XJGUฒߦੑ $PODVSSFODZ ΛಡΈղ͘ 88%$ 4XJGU$PODVSSFODZؔ࿈ϓϨθϯΨΠυ
ࢀߟࢿྉ"QQMF%FWFMPQFS IUUQTBQQTBQQMFDPNKQBQQBQQMFEFWFMPQFSJE 88%$༰ॱ࣍ຊޠରԠ͞Ε͍ͯ͘
88%$͔Βϲ݄ɻ 4XJGUݴޠͷۄͷBXBJUBTZOD BDUPS͕ൃද͞Ε·ͨ͠
͕ɺϲ݄ܦͬͯ৽ ༷ʹશ͘׳Εͳ͍ʂ
88%$ͷؔ࿈͢ΔϓϨθϯ ࢿྉΛͱ͓ͨ͠ͷͰհɻ
88%$ͰԿ͕͓͖ͨͷ͔ 4XJGU ͍ͭʹBTZODBXBJU͕ಋೖ͞Ε·ͨ͠ɻBTZODBXBJU ͚ͩͰͳ͘ɺBDUPS!.BJO"DUPS͕ಋೖɻ
88%$ͰԿ͕͓͖ͨͷ͔ 4XJGU ͍ͭʹBTZODBXBJU͕ಋೖ͞Ε·ͨ͠ɻBTZODBXBJU ͚ͩͰͳ͘ɺBDUPS!.BJO"DUPS͕ಋೖɻ BTZODBXBJUʹ͍ͭͯ88%$ҎલΑΓݴޠ༷ ͱͯ͠ఏҊ͞Ε͓ͯΓɺ৽ٕज़ʹΊ͟ͱ͍ෳͷ։ൃ ऀ༷ΑΓهࣄ͕ެ։͞Ε͍ͯΔɻ
1SPQPTBMʹࡌ ͍ͬͯͳ͍4XJGU ͷBTZODBXBJU ͕ૉΒ͍͠ͱࢥ ͏ཧతഎܠ IUUQTRJJUBDPN LPIFSJUFNT CFBFD
ಡΈͱͯ͠໘ന͍ɺ ໘ന͍͕ผʹٕज़ͰΩϟοΩϟͨ͠ ͍Θ͚Ͱͳ͍ͱ͍͏ͷ͕ຊԻɻ
&$."4DSJQUͰઌΜͯ͡ಋೖ͞Εͯ ͍ͨػೳ͕4XJGUʹ͖ͬͯͨ͋Γ͕ ͕ͨΔؾແ͔ͬͨΓ͢Δɻ
৽͍͠ݴޠ༷͕ಋೖ͢Δ ඞཁ͕͋Δ ඞવੑ ʹೲಘ͠ɺ ଉΛు༷͘ʹࣗવʹར༻Ͱ͖Δ͜ͱ͕ཧͰ
ͱ͍͏ཧ೦ͷͱɺBTZODBXBJUBDUPSपΓ͕ಋ ೖ͞Εͨࡍͷ4XJGUݴޠʹ͓͚ΔฒߦੑΛѻ͏্Ͱ ͷϨΪϡϨʔγϣϯมߋʹ͍ͭͯղܾʹઆ໌͢Δɻ
88%$ͷ 4XJGUʹ͓͚Δฒߦੑ ֓ཁ
BTZODBXBJU w "TZODඇಉظΛࣔ͢म০ࢠͰ w BTZOD͕༩͞ΕΔͱBXBJUΛͬͯॲཧऴྃ·Ͱडঢ়ଶʹ͢ Δ͜ͱΛӅṭͰ͖Δ w NBD04J1IPOFͰͷϚϧνεϨου্ͷॲཧ͕࣮ࡍͲ͏ͳͬͯ ͍Δ͔4XJGUίʔυهड़ऀଆ͔ΒӅṭ͞Ε͍ͯΔ
BDUPS w ෳͷεϨου͔Βݺͼग़͞ΕΔΛอޢ͢ΔΈΛDMBTTϥ ΠΫͳఆٛͰهड़Ͱ͖Δ w ϓϩύςΟෳ͔ΒͷมߋͷࡍʹBXBJUͰडՄೳ w ϝιουΛఆٛ͢Δͱͦͷϝιου͕ݺͼऴΘΔ·Ͱ֎෦͔Βม ߋ͕ՃΘΒͳ͍ w
ͷڝ߹Λ͚͞ΔͨΊ෦తʹ4JHOBMɺ4FNBQIPSFͳͲΞΫ ηε੍ޚػೳΛ͍ͬͯΔ͕4XJGUίʔυهड़ऀଆ͔ΒӅṭ͞ Ε͍ͯΔɻ
ߏԽ͞Εͨಉظॲཧ w "TZODBXBJUΛ֊తʹݺͼग़͠ͱݺͼग़͠֊Λߟྀͨ͠ಉظ ॲཧΛ࣮ݱͰ͖Δ w 4XJGUΑΓલಠཱͨ͠ಉظॲཧΛ·ͱΊΔͳͲ࣮ͯ͠ݱͰ ͖ͨ͜ͱ͕4XJGU͔ΒσϑΥϧτͷಉظॲཧѻ͍ͱͳͬͨ w ͜Ε·ͰͷಉظॲཧΦϓγϣϯѻ͍ͱͳΓಠཱͨ͠ಉظॲཧͱ ໋໊
w ಠཱͨ͠ಉظॲཧΦϓγϣϯѻ͍ʹͳͬͨɺBTZODBXBJU ΑΓ໌ࣔతʹݺͼग़͠ඞཁ
!.BJO"DUPS w "DUPSෳΞΫηε͕͋ͬͨ߹ͷΛอޢ͢ΔΈΛఏڙ ͢Δ͚͕ͩͩͬͨ w !.BJO"DUPSडޙʹඞͣϝΠϯεϨου͔Βݺͼग़͞ΕΔอ ূ͢ΔͨΊͷΈ w 4XJGU"UUSJCVUFTͳͷͰ4XJGUͷ༷͔Βएׯ֎ΕΔ w
4%,ͰϝΠϯεϨουPSϝΠϯεϨουҎ֎ݺͼग़͔͠໌ࣔͰ ͖͍ͯͳ͔ͬͨͷ ؔɺΫϥεͷϓϩύςΟͳͲ ͕໌ࣔతʹ ͳͬͨ
తʹ͍͏ͱʜ w ৽͍͠ϘΩϟϒϥϦʔͱͯ͠BTZODBXBJUΛಋೖ͢Δ͜ͱͰॲཧ ͪͷهड़Λ͘هड़Ͱ͖ΔΑ͏ʹͳͬͨɻͨͩ͠ඇಉظʹͨ͠ࡍʹى ͖Δτϥϒϧίʔυهड़ऀଆͷͰ͋Δ͜ͱมԽແ͠ w ฒྻಉظͷฒྻੑͱߏԽ͞ΕͨฒྻॲཧʹΑΓฒྻॲཧʹίʔυత ͳॊೈੑ͕ੜ·Ε͍ͯΔɻͦΕΛ࣮ݱ͢ΔͨΊ࣮ݱ͢ΔͨΊBTZOD BXBJUͰεϨουΛίʔυهड़ऀ͔ΒӅṭ͍ͯ͠ΔΑ͏ͳͷ w
6*ύʔπͳͲϝΠϯεϨουݺͼग़͠Λอূ͢ΔͨΊͷهड़ͱͯ͠ !.BJO"DUPS͕Ճ͞Εͨɻίʔυهड़ऀݺͼग़͠ݩͷεϨουʹ ҙΛ͚Δඞཁ͕͕͋ͬͨݴޠϨϕϧͰ҆શͳݺͼग़͕͠อূ͞Ε ͨ
ϓϨθϯςʔγϣϯհ
w .FFUBTZODBXBJUJO4XJGU w .FFU"TZOD4FRVFODF w &YQMPSFTUSVDUVSFE DPODVSSFODZJO4XJGU w 1SPUFDUNVUBCMFTUBUFXJUI 4XJGUBDUPST
w %JTDPWFSDPODVSSFODZJO 4XJGU6* ϓϨθϯςʔγϣϯհ
.FFUBTZODBXBJUJO 4XJGU IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w BTZODΛ͏ؔͷఆٛํ ๏ͱɺBXBJUͷ͍ํʹͭ ͍ͯͷϓϨθϯςʔγϣ ϯɻ
.FFU"TZOD4FRVFODF IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w BTZOD͕Ճ͞Εͨݺͼग़ ͠ΛྻԽ͢ΔͱBXBJU͠ ͨࡍʹฒߦͯ͠ݺͼग़͞ ΕΔ͜ͱʹ͍ͭͯͷϓϨθ ϯςʔγϣϯɻ
&YQMPSFTUSVDUVSFE DPODVSSFODZJO4XJGU IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w "TZOD͕Ճ͞Εͨݺͼग़͠ ෦ͰBXBJUΛ͏͜ͱ͕Ͱ ͖ΔΛઆ໌ͨ͠ϓϨθϯς ʔγϣϯɻ w
Τϥʔ͕͋ͬͨ߹ʹFSSPS ΛUISPXͨ͠߹ͷڍಈʹͭ ͍ͯͷݴٴ͋Γɻ w ಠཱͨ͠ඇಉظॲཧʹ͍ͭͯ ຊϓϨθϯςʔγϣϯͰઆ ໌͍ͯ͠Δɻ
1SPUFDUNVUBCMFTUBUF XJUI4XJGUBDUPST IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w BDUPSͱ!.BJO"DUPSͷઆ ໌ w ༰తʹ!.BJO"DUPSΛ આ໌͢ΔͨΊͷBDUPSΛઆ
໌͢Δͱ͍ͬͨ
%JTDPWFSDPODVSSFODZJO 4XJGU6* IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w BTZODBXBJUBDUPS͕6* पΓͷίʔσΟϯάελΠ ϧΛม͑Δ͜ͱ͔͕֬ͩ Ұ൪ԸܙΛड͚͍ͯΔͷ 4XJGU6*ͰΔ͜ͱΛࣔ͢ϓ
Ϩθϯςʔγϣϯɻ
ࡶ؍
ίϯγϡʔϚʔιϑτΣΞʹಉظॲཧ͕ಋೖ͞Ε࢛ͯੈلᶃ w 8JOEPXTͷ͜ΖϚʔέςΟϯάతʹػೳ͕Ճ͞Ε։ൃऀ ͷαϙʔτͳ͔ͬͨ w ˡ$$ ݴޠͷڥ͕ϚϧνεϨουΛߟྀ͠ͳ͍ظ͕ؒଓ͍ ͨ w ฒߦੑʹΑΔੑೳʹ͍ͭͯ+BWB7.͕αʔόʔαΠυͰূ໌͠
͍ͯͨ w ˡධՁ͞Εͨͷ+BWB4DSJQUͷϚϧνεϨουੑೳͩͬͨ w +BWB7.ݴޠͱͯ͠4DBMB͕ొ
ίϯγϡʔϚʔιϑτΣΞʹಉظॲཧ͕ಋೖ͞Ε࢛ͯੈلᶄ w ΞϓϦͰ"QQMF͕Ͱ$FOUSBM%JTQBUDI2VFVFͰCMPDLߏจͱɺ มͷΩϟϓνϟΛಋೖ w ˡίϯύΠϥʹϝεΛೖΕΔܾஅ͔Β৽ݴޠ4XJGU͕ੜ w ฒߦੑʹ͍ͭͯͷ͕ٞ׆ൃʹͳͬͨͷ/PEF+4 αʔόʔαΠ υ+BWB4DSJQU
ͷBTZODBXBJU w ˡฒߦੑΛهड़ํ๏ʹܾண͢ΔϚϧνεϨουΛѻ͏ݴޠͰͷ ಋೖݕ౼தͩͬͨ
ݸਓత4XJGUฒߦੑݟղ
4XJGUݴޠͷ$PODVSSFODZͰલʹෆ ʹίϯγϡʔϚʔιϑτʹಋೖ͞Εͨಉ ظॲཧͷه๏ʹҰఆͷܾண͕͍ͭͨͷͰ