Slide 1

Slide 1 text

όΠτϧΞϓϦ΁ͷSwift Concurrency ಋೖͱͦͷޮՌ Eiji Shirakazu, iOS Engineer in dip

Slide 2

Slide 2 text

ࣗݾ঺հ ന਺ ӥ࢘ / Eiji Shirakazu @cychow_app όΠτϧ iOSΞϓϦ։ൃ୲౰ ࠷ۙ͸Vision Pro (visionOS)ͷγϛϡϨʔλͰ༡ΜͰ͍·͢ʂ

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

ຊ೔ͷ಺༰ όΠτϧΞϓϦͷ͝঺հͱ։ൃपΓͷ͓࿩ ͦ΋ͦ΋Swift Concurrencyͱ͸ Swift ConcurrencyΛͲͷΑ͏ʹಋೖ͔ͨ͠ Swift Concurrencyಋೖޙͷঢ়گ

Slide 5

Slide 5 text

όΠτϧΞϓϦͱ͸… ɾΞϧόΠτ/ύʔτٻਓݕࡧαʔϏε ɾ෯޿͍෼໺͔༷ͭʑͳ৚݅ͷΞϧόΠτ/ύʔτ৘ใɹ ɹΛ਺ଟ͘ܝࡌʂ ɾࣸਅ΍ಈըͳͲ͔ΒΞϧόΠτ/ύʔτઌͷ੍෰΍ಇ͍ͯ ɹ͍Δελοϑɺ৬৔ͷงғؾͳͲΛ֬ೝ͢Δ͜ͱ͕Ͱ͖Δʂ

Slide 6

Slide 6 text

ʮॳճΠϯετʔϧޙͷମݧ޲্ʯػೳʹ͍ͭͯ εϓϥογϡ ٻਓͷҰཡ

Slide 7

Slide 7 text

ʮॳճΠϯετʔϧޙͷମݧ޲্ʯػೳʹ͍ͭͯ εϓϥογϡ Ϣʔβʔ΁ͷ࣭໰

Slide 8

Slide 8 text

ʮॳճΠϯετʔϧޙͷମݧ޲্ʯػೳͷ։ൃͰ Swift ConcurrencyΛಋೖʂʂ

Slide 9

Slide 9 text

Swift Concurrencyͱ͸ WWDC21ʹͯొ৔ͨ͠৽ͨͳฒߦॲཧͷख๏ async/awaitΩʔϫʔυΛ༻͍Δ͜ͱͰඇಉظॲཧ / ฒߦॲཧΛ࣮ݱ͢Δ async/awaitҎ֎ʹ΋Actor΍TaskɺAsyncStreamͳͲͷ֓೦΋ొ৔

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Swift ConcurrencyΛͲͷΑ͏ʹಋೖ͔ͨ͠ ᶃ ·ͣ͸ࣗ਎͕ੵۃతʹConcurrencyʹ͍ͭͯΠϯϓοτͨ͠ ᶄ ಋೖ͢Δ͜ͱʹͲΕ͘Β͍ͷϝϦοτ͕͋Δ͔Λߟ࡯ͨ͠

Slide 13

Slide 13 text

ɾඇಉظॲཧΛಉظॲཧͷΑ͏ʹදه͢Δ͜ͱͰ࣮ߦॱংΛ௥͍΍͍͢ Swift ConcurrencyΛಋೖ͢ΔϝϦοτ ɾσʔλڝ߹Λճආ͠΍͘͢ͳΔ ɾiOS13Ҏ߱Ͱ࢖༻͢Δ͜ͱ͕Ͱ͖Δ ɾΤϥʔϋϯυϦϯάΛߦ͍΍͘͢ͳΔ ͳͲ…

Slide 14

Slide 14 text

Swift ConcurrencyΛͲͷΑ͏ʹಋೖ͔ͨ͠ ᶅ ઌഐΤϯδχΞͷํʑͱ૬ஊ͠ɺαʔϏεʹ༩͑ΔӨڹΛߟ্ྀͨ͠Ͱಋೖ ɹ͍ͯ͘͜͠ͱʹͨ͠ ᶃ ·ͣ͸ࣗ਎͕ੵۃతʹConcurrencyʹ͍ͭͯΠϯϓοτͨ͠ ᶄ ಋೖ͢Δ͜ͱʹͲΕ͘Β͍ͷϝϦοτ͕͋Δ͔Λߟ࡯ͨ͠ ᶆ Өڹൣғ͕খ͍͞ʮॳճΠϯετʔϧޙͷମݧʯΛ޲্ͤ͞ΔϓϩδΣΫτ ɹʹͯಋೖ͢Δ͜ͱͱͨ͠

Slide 15

Slide 15 text

ɾcompletionHandlerΛ༻͍ͣɺasync/awaitΛ༻͍ͯදه͢Δɻ ɾGCDΛ࢖༻͢ΔՕॴΛTaskʹஔ͖׵͑Δɻ ɾMainActorΛࢦఆ͢ΔՕॴʹ஫ҙ͢Δɻ Swift ConcurrencyΛಋೖ࣌ͷϙΠϯτ ɾwithCheckedContinuation΍withCheckedThrowingContinuationͰ ɹطଘͷඇಉظॲཧΛasync/awaitʹରԠͤ͞Δ͜ͱ͕Ͱ͖Δɻ ͳͲ

Slide 16

Slide 16 text

ͨͩɺ໰୊఺΋…

Slide 17

Slide 17 text

௚໘ͨ͠໰୊఺ ଞͷ։ൃνʔϜϝϯόʔ΍৽نࢀըऀͷํʹରͯ͠Concurrencyͷ ॻ͖ํͳͲΛ஌ͬͯ΋Β͏ඞཁ͕͋ͬͨɻ

Slide 18

Slide 18 text

໰୊఺ͷղܾࡦ LTେձ΁ࢀՃ

Slide 19

Slide 19 text

Swift Concurrencyಋೖޙͷঢ়گ ɾιʔείʔυͷՄಡੑ͕޲্ͨ͠ ɾνʔϜϝϯόʔ͕ੵۃతʹΩϟονΞοϓ͢ΔΑ͏ʹͳͬͨ ʲݱঢ়ʳ ɾαʔυύʔςΟ੡ϥΠϒϥϦ͔Βඪ४ϥΠϒϥϦʹҠߦ͢Δ͜ͱ͕Ͱ͖͍ͯΔ

Slide 20

Slide 20 text

Swift Concurrencyಋೖޙͷঢ়گ ɾSwift6΁ͷϝδϟʔΞοϓσʔτͷ४උ ʲࠓޙͷ՝୊ʳ

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

Swift Concurrencyಋೖޙͷঢ়گ ɾࠓޙͷSwift6΁ͷϝδϟʔΞοϓσʔτͷ४උ ɾίϯύΠϥϑϥάʮStrict Concurrency CheckingʯͷಋೖͳͲ΋ݕ౼ ʲࠓޙʳ

Slide 23

Slide 23 text

ίϯύΠϥϑϥάʮStrict Concurrency Checkingʯ

Slide 24

Slide 24 text

ίϯύΠϥϑϥάʮExistentialAnyʯ΋ಋೖݕ౼த….

Slide 25

Slide 25 text

Swift Concurrencyಋೖޙͷঢ়گ ɾࠓޙͷSwift6΁ͷϝδϟʔΞοϓσʔτͷ४උ ɾίϯύΠϥϑϥάʮStrict Concurrency CheckingʯͷಋೖͳͲ΋ݕ౼ ɾSendable΁ͷ४ڌͷνΣοΫͳͲ΋͓͜ͳ͍͖͍ͬͯͨ ʲࠓޙʳ

Slide 26

Slide 26 text

όΠτϧͰ͸Ҿ͖ଓ͖ٕज़త௅ઓΛଓ͚͍͖ͯ·͢ʂ

Slide 27

Slide 27 text

No content