Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
そろそろCombine
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
[email protected]
September 20, 2020
Programming
4.3k
12
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
そろそろCombine
iOSDC2020 presentation about Combine.framework
[email protected]
September 20, 2020
More Decks by
[email protected]
See All by
[email protected]
TSPLのすすめ
shiz
1
340
Swift compiler 101 & How async function works
shiz
0
130
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
390
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
2.4k
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
5
17k
(非公開スライド追加)座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
1
800
複雑さに立ち向かうためのコードリーディング入門
shiz
35
15k
Swift Observation
shiz
5
950
Swift Reflection
shiz
1
310
Other Decks in Programming
See All in Programming
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.9k
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
170
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
560
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.2k
Java 27新機能 / Java 27 new features
kishida
2
140
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
390
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
220
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
140
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
110
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
200
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
1k
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
240
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
280
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
Un-Boring Meetings
codingconduct
0
420
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
Navigating Team Friction
lara
192
16k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Agile that works and the tools we love
rasmusluckow
331
22k
Writing Fast Ruby
sferik
630
63k
Transcript
J04%$+BQBO%": ͦΖͦΖ$PNCJOF
4݄͔ΒԬͰiOSΤϯδχΞ͍ͬͯ·͢ɻ @stzn3 shiz(ͣ͠) @shiz stzn Swiftྺ: 5 ͦͷଞ։ൃܦݧ: Kotlin Javascript
PHP C# Java Go…
$PNCJOF IUUQTQJYBCBZDPNKBVTFSTXTZQFSFL
$PNCJOFͱʁ
"VOJ f i FE EFDMBSBUJWF"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF WWDC2019 Introducing Combine
l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine
l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*
l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*
ಉظతͳॲཧ .BJO5ISFBE WBSTUBUFlz TUBUFl*NIVOHSZz QSJOU TUBUF *`NIVOHSZ
ಉظతͳॲཧ .BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF *`NIVOHSZ
ಉظతͳॲཧ .BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF *`NIVOHSZ
.BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF ඇಉظͳॲཧ 5ISFBE TUBUFl*`NBOHSZz ͓ئ͍
.BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF ඇಉظͳॲཧ 5ISFBE TUBUFl*`NBOHSZz ݁Ռؾʹͤͣ࣍ਐΉ ͓ئ͍
.BJO5ISFBE WBSTUBUFlz TUBUFl*`NIVOHSZz QSJOU TUBUF 5ISFBE TUBUFl*`NBOHSZz ඇಉظͳॲཧ IVOHSZ BOHSZ
*`Nʜ
ඇಉظॲཧͷ͠͞ ͍ͭ݁Ռ͕ฦͬͯ͘Δ͔Θ͔Βͳ͍ wλΠϛϯά࣍ୈͰ݁Ռ͕มΘͬͯ͠·͏ϦεΫ w༧ظͤ͵λΠϛϯάͰڍಈ͕ಥવมΘͬͯ͠·͏ϦεΫ
J04ͰඇಉظΛѻ͏ํ๏ /PUJ f i DBUJPO $FOUFS 5BSHFU"DUJPO %FMFHBUF $MPTVSF $BMMCBDLT
σʔλ ߋ৽ ,FZ7BMVF 0CTFSWJOH ,70
ඇಉظॲཧͷ͠͞ J04Ͱͷ͠͞ ͍ͭ݁Ռ͕ฦͬͯ͘Δ͔Θ͔Βͳ͍ wλΠϛϯά࣍ୈͰ݁Ռ͕มΘͬͯ͠·͏ϦεΫ wࢥ͍دΒͳ͍λΠϛϯάͰڍಈ͕มΘΔϦεΫ ॲཧͷํ๏͕߹ʹΑͬͯҟͳΔ wॲཧͷྲྀΕ్͕Εͯ͠·͏͜ͱ͕͋Δ
ඇಉظॲཧͷ͠͞ J04Ͱͷ͠͞ ͍ͭ݁Ռ͕ฦͬͯ͘Δ͔Θ͔Βͳ͍ wλΠϛϯά࣍ୈͰ݁Ռ͕มΘͬͯ͠·͏ϦεΫ wࢥ͍دΒͳ͍λΠϛϯάͰڍಈ͕มΘΔϦεΫ ॲཧͷํ๏͕߹ʹΑͬͯҟͳΔ wॲཧͷྲྀΕ్͕Εͯ͠·͏͜ͱ͕͋Δ wผͷॴͰॲཧ͢Δ͜ͱ͕ඞཁͳ߹͋Δ
$PNCJOF IUUQTQJYBCBZDPNKBVTFSTXTZQFSFL
͋ΒΏΔॲཧΛ1VCMJTIFSʹ 'PVOEBUJPO w /PUJ f i DBUJPODFOUFS w 5BSHFU"DUJPO w
"EIPDDBMMCBDLT w 63-4FTTJPO w ,70 $PNCJOF 1VCMJTIFS 4XJGU6* w !#JOEJOH w !0CTFSWFE0CKFDU w !4UBUF $PSF%BUB w 'FUDIFE3FRVFTU w /4.BOBHFE0CKFDU
None
ςΩετೖྗ Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ೖྗΛඵͭ ະೖྗνΣοΫ ॏෳνΣοΫ ೖྗνΣοΫ"1*ૹ৴ ݁ՌΛ7JFXʹө Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ
ϝΠϯεϨουͰॲཧ
Target/Action Closure Closure ςΩετೖྗ Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ೖྗΛඵͭ ະೖྗνΣοΫ ॏෳνΣοΫ ೖྗνΣοΫ"1*ૹ৴
݁ՌΛ7JFXʹө Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ϝΠϯεϨουͰॲཧ
Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ະೖྗνΣοΫ ॏෳνΣοΫ ݁ՌΛ7JFXʹө Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ϝΠϯεϨουͰॲཧ ςΩετೖྗ ೖྗΛඵͭ
ೖྗνΣοΫ"1*ૹ৴ Target/Action Closure Closure If guard If Closure
None
None
None
શ෦1VCMJTIFS Noti f i cationCenter.Publisher Publishers.Map Publishers.HandleEvents Publishers.Debounce Publishers.Filter Publishers.RemoveDuplicates
Publishers.FlatMap Publishers.ReceiveOn Publishers.HandleEvents
σʔλͷಉظ ࣗಈͰ࠷৽ঢ়ଶʹߋ৽ Subscribers.Assign
ෳՕॴ͔Βͷσʔλͷಉظ σʔλͷߋ৽ʹ߹Θͤͯ 7JFXΛߋ৽͢ΔͨΊʹ ϝιουΛݺͼग़͢ඞཁ͕͋Δ
ෳՕॴ͔Βͷσʔλͷಉظ σʔλͱ7JFXͷߋ৽Λ ҰՕॴʹूͰ͖Δ
͋ΒΏΔॲཧΛ1VCMJTIFSʹ 5BSHFU"DUJPO %FMFHBUF 1VCMJTIFS .BQ f l BU.BQ 'JMUFS
3FNPWF%VQMJDBUF ʜ ʜ ʜ ,FZ7BMVF 0CTFSWJOH ,70 /PUJ f i DBUJPO $FOUFS $MPTVSF $BMMCBDLT
l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*
l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*
l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*
ʮ͜͏͢Δʯͱࡉ͔͘ࢦࣔ͢Δ ͷͰͳ͘ ʮ͜͏͍ͨ͠ʯͱతΛએݴ͢Δ
త ׇ͕͍ͨͷͰਫΛҿΉ
ࢦࣔత ʮྫྷଂݿ͔ΒϖοτϘτϧͷਫΛऔΓग़ͯ͠ɺ ίοϓʹ͍ͰɺҿΈ·͢ɻʯ త ׇ͕͍ͨͷͰਫΛҿΉ
એݴత ʮड͚औͬͨਫΛҿΈ·͢ɻʯ త ׇ͕͍ͨͷͰਫΛҿΉ
ʮએݴతʯͷϝϦοτ wຊདྷͷׂʹूதͰ͖Δ wίʔυ͕͘ͳΔ w֎෦ঢ়ଶʹґଘͤͣ࠶ར༻͍͢͠
ςΩετೖྗ Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ ೖྗΛඵͭ ະೖྗνΣοΫ ॏෳνΣοΫ ೖྗνΣοΫ"1*ૹ৴ ݁ՌΛ7JFXʹө Ϙλϯ੍ޚ ΠϯσΟέʔλදࣔ
ϝΠϯεϨουͰॲཧ ࢦࣔత
ςΩετೖྗ ೖྗΛඵͭ ະೖྗνΣοΫ ॏෳνΣοΫ ೖྗνΣοΫ"1*ૹ৴ ݁ՌΛ7JFXʹө Ϙλϯ੍ޚ ΠϯσΟέʔλඇදࣔ ϝΠϯεϨουͰॲཧ Ϙλϯ੍ޚ
ΠϯσΟέʔλදࣔ એݴత
l5IF$PNCJOFGSBNFXPSLQSPWJEFT BEFDMBSBUJWF4XJGU"1*GPS QSPDFTTJOHWBMVFTPWFSUJNF 5IFTFWBMVFTDBOSFQSFTFOUNBOZ LJOETPGBTZODISPOPVTFWFOUTz https://developer.apple.com/documentation/combine ࿈ଓͨ͠ ଟछྨͷඇಉظॲཧͳͲΛ ୯Ұͷํ๏Ͱѻ͏એݴతͳ"1*
$PNCJOFΛ͏ϝϦοτ ෦Ͱͷ࠷దԽ͕ظͰ͖Δ wެ։͞Ε͍ͯͳ͍"1*Λར༻ͨ͠ύϑΥʔϚϯεͷௐ w ଞͷϑϨʔϜϫʔΫͱ࿈ܞ'PVOEBUJPO4XJGU6*
$PNCJOFΛ͏ϝϦοτ ෦Ͱͷ࠷దԽ͕ظͰ͖Δ wެ։͞Ε͍ͯͳ͍"1*Λར༻ͨ͠ύϑΥʔϚϯεͷௐ w ଞͷϑϨʔϜϫʔΫͱ࿈ܞ'PVOEBUJPO4XJGU6* ߴ͍࣭͕ظͰ͖Δ wมߋͷӨڹ͕গͳ͍ w։ൃऀϢʔβʔ͔ͭςελʔ
ओཁͳΫϥε
1VCMJTIFS
1VCMJTIFS ಛఆͷܕͷΛ࣌ؒͱͱʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ
1VCMJTIFS ಛఆͷܕͷΛ࣌ؒͱͱʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ ᶃ7BMVF 0VUQVU $PNQMFUJPO ᶄ
f i OJTIFE ᶅGBJMVSF 'BJMVSF
1VCMJTIFS ಛఆͷܕͷΛ࣌ؒͱͱʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ ᶃ7BMVF 0VUQVU $PNQMFUJPO ᶄ
f i OJTIFE ᶅGBJMVSF 'BJMVSF
1VCMJTIFS ಛఆͷܕͷΛ࣌ؒͱͱʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ ᶃ7BMVF 0VUQVU $PNQMFUJPO ᶄ
f i OJTIFE ᶅGBJMVSF 'BJMVSF
1VCMJTIFS ಛఆͷܕͷΛ࣌ؒͱͱʹ࿈ଓతʹྲྀ͢ 1VCMJTIFS0VUQVU 'BJMVSF&SSPS 0VUQVUਖ਼ৗ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ ᶃ7BMVF 0VUQVU $PNQMFUJPO ᶄ
f i OJTIFE ᶅGBJMVSF 'BJMVSF
1VCMJTIFS ಛఆͷܕͷΛ࣌ؒͱͱʹ࿈ଓతʹྲྀ͢ 0VUQVU 0VUQVU f i OJTIFE 0VUQVU $PNQMFUJPO͢Δ·ͰΛग़ྗ͠ଓ͚Δ
1VCMJTIFS ಛఆͷܕͷΛ࣌ؒͱͱʹ࿈ଓతʹྲྀ͢ 0VUQVU 0VUQVU GBJMVSF 0VUQVU 0VUQVU f i
1VCMJTIFS ಛఆͷܕͷΛ࣌ؒͱͱʹ࿈ଓతʹྲྀ͢ GBJMVSF f i OJTIFE $PNQMFUJPO͞ΕΔͱೋͱྲྀ͞ͳ͍
1VCMJTIFS ಛఆͷܕͷΛ࣌ؒͱͱʹ࿈ଓతʹྲྀ͢ f i OJTIFE <
>QVCMJTIFS 1VCMJTIFS*OU /FWFS
4VCTDSJCFS
4VCTDSJCFS 1VCMJTIFS͔Βཉ͍͚ͩ͠Λड͚औΔ 4VCTDSJCFS*OQVU 'BJMVSF&SSPS *OQVUਖ਼ৗ࣌ʹ4VCTDSJCFS͕ड͚औΔͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ
4VCTDSJCFS 1VCMJTIFS͔Βཉ͍͚ͩ͠Λड͚औΔ 4VCTDSJCFS*OQVU 'BJMVSF&SSPS *OQVUਖ਼ৗ࣌ʹ4VCTDSJCFS͕ड͚औΔͷܕ 'BJMVSFΤϥʔ࣌ʹ1VCMJTIFS͕ྲྀ͢ͷ&SSPSܕ 4VCTDSJCFS*OQVU 'BJMVSF&SSPS 1VCMJTIFS0VUQVU 'BJMVSF&SSPS
ܕΛҰகͤ͞Δ ܕΛҰகͤ͞Δ
4VCTDSJCFS 1VCMJTIFS͔Βཉ͍͚ͩ͠Λड͚औΔ TJOL BTTJHO 1VCMJTIFS 4VCTDSJCFS
1VCMJTIFS 4VCTDSJCFS 4VCTDSJCFS 4VCTDSJCFS ෳͷ4VCTDSJCFSͰͭͷ1VCMJTIFSͷड͚औΕΔ
4VCTDSJCFSओಋ 4VCTDSJCFS ˞'VUVSFͳͲͷྫ֎͋Γ
4VCTDSJCFSओಋ 4VCTDSJCFS ˞'VUVSFͳͲͷྫ֎͋Γ #BDL1SFTTVSF
#BDL1SFTTVSF 4VCTDSJCFS͕ඞཁͳྔΛௐͰ͖Δ 1VCMJTIFS 4VCTDSJCFS
#BDL1SFTTVSF 4VCTDSJCFS͕ඞཁͳྔΛௐͰ͖Δ 4VCTDSJCFS %FNBOE VOMJNJUFE͋Δ͚ͩશ෦Լ͍͞ OPOFԿ͍Γ·ͤΜ NBY *OU *OUԼ͍͞
1VCMJTIFS ͜ͷ%FNBOE͍ͩ͘͞
#BDL1SFTTVSF 4VCTDSJCFS͕ඞཁͳྔΛௐͰ͖Δ 4VCTDSJCFS 1VCMJTIFS %FNBOE͚ͩ0VUQVU ͜ͷ%FNBOE͍ͩ͘͞
#BDL1SFTTVSF 4VCTDSJCFS͕ඞཁͳྔΛௐͰ͖Δ 4VCTDSJCFS ్தͰ%FNBOEௐՄ 1VCMJTIFS %FNBOE͚ͩ0VUQVU ͜ͷ%FNBOE͍ͩ͘͞ %FNBOE VOMJNJUFE͋Δ͚ͩશ෦Լ͍͞
OPOFࠓͷ··Ͱ͍͍Ͱ͢ɻ NBY *OU *OUՃͯ͠Լ͍͞
#BDL1SFTTVSF ׆༻ྫ ෳͷඇಉظॲཧΛ ݺͼग़ͨ͠ॱ൪௨Γʹ ݁ՌΛड͚औΔ ݁Ռ͜ͷจࣈॱ௨Γʹग़ྗ͞Ε·͢ ࿈ଓͯ͠ඇಉظ௨৴Λ࣮ߦ f l BU.BQ
NBY1VCMJTIFSTNBY
4VCTDSJQUJPO
1VCMJTIFS 4VCTDSJCFS ʁ
4VCTDSJQUJPO 1VCMJTIFSͱ4VCTDSJCFSΛܨ͛Δ 1VCMJTIFS 4VCTDSJCFS 4VCTDSJQUJPO
4VCTDSJQUJPO $BODFMMBCMF 1VCMJTIFS 4VCTDSJCFS QSPUPDPM $BODFMMBCMF 4VCTDSJQUJPO
4VCTDSJQUJPO $BODFMMBCMF 1VCMJTIFS DBODFM ͍ͯͩ͘͠͞ 4VCTDSJCFS QSPUPDPM $BODFMMBCMF
4VCTDSJQUJPO
4VCTDSJQUJPO $BODFMMBCMF 1VCMJTIFS DBODFM 4VCTDSJCFS QSPUPDPM $BODFMMBCMF 4VCTDSJQUJPO
DBODFM ͍ͯͩ͘͠͞
4VCTDSJQUJPO $BODFMMBCMF 1VCMJTIFS DBODFM 4VCTDSJCFS QSPUPDPM $BODFMMBCMF 4VCTDSJQUJPO
DBODFM ͍ͯͩ͘͠͞
4VCTDSJQUJPO "OZ$BODFMMBCMFࣗಈͰDBODFM͢Δ 1VCMJTIFS QSPUPDPM $BODFMMBCMF "OZ$BODFMMBCMF 4VCTDSJCFS
4VCTDSJQUJPO "OZ$BODFMMBCMFࣗಈͰDBODFM͢Δ 1VCMJTIFS QSPUPDPM $BODFMMBCMF "OZ$BODFMMBCMF ϝϞϦ͔Βղ์͞ΕΔ OJMʹͳΔ ͱ
4VCTDSJCFS
4VCTDSJQUJPO "OZ$BODFMMBCMFࣗಈͰDBODFM͢Δ 1VCMJTIFS QSPUPDPM $BODFMMBCMF "OZ$BODFMMBCMF DBODFM ϝϞϦ͔Βղ์͞ΕΔ OJMʹͳΔ
ͱ 4VCTDSJCFS
4VCTDSJQUJPO "OZ$BODFMMBCMFࣗಈͰDBODFM͢Δ "OZ$BODFMMBCMF
4VCTDSJQUJPO "OZ$BODFMMBCMFࣗಈͰDBODFM͢Δ "OZ$BODFMMBCMF
4VCTDSJQUJPO "OZ$BODFMMBCMFࣗಈͰDBODFM͢Δ ϝϞϦ͔Βղ์ EFJOJU ͞ΕΔͱ
4VCTDSJQUJPO "OZ$BODFMMBCMFࣗಈͰDBODFM͢Δ ϝϞϦ͔Βղ์ EFJOJU ͞ΕΔ
4VCTDSJQUJPO "OZ$BODFMMBCMFࣗಈͰDBODFM͢Δ "OZ$BODFMMBCMFDBODFM "OZ$BODFMMBCMFDBODFM "OZ$BODFMMBCMFDBODFM "OZ$BODFMMBCMFDBODFM
ʜ
4VCTDSJQUJPO "OZ$BODFMMBCMFࣗಈͰDBODFM͢Δ "OZ$BODFMMBCMFDBODFM "OZ$BODFMMBCMFDBODFM "OZ$BODFMMBCMFDBODFM "OZ$BODFMMBCMFDBODFM
ʜ EFJOJU \ʜ^
4VCTDSJQUJPO "OZ$BODFMMBCMFอ࣋͠ͳ͍ͱ͙͢ʹΩϟϯηϧ͞ΕΔ
4VCTDSJQUJPO "OZ$BODFMMBCMFอ࣋͠ͳ͍ͱ͙͢ʹΩϟϯηϧ͞ΕΔ "OZ$BODFMMBCMF
4VCTDSJQUJPO "OZ$BODFMMBCMFอ࣋͠ͳ͍ͱ͙͢ʹΩϟϯηϧ͞ΕΔ "OZ$BODFMMBCMF
4VCTDSJQUJPO "OZ$BODFMMBCMFอ࣋͠ͳ͍ͱ͙͢ʹΩϟϯηϧ͞ΕΔ
ॲཧͷྲྀΕ Έ
4VCTDSJCFS↔1VCMJTIFS 1VCMJTIFS 4VCTDSJCFS 1VCMJTIFSTVCTDSJCF @ ݺͿ ෦ͰSFDFJWF TVCTDSJCFS
Λݺͼ 4VCTDSJCFSͱܨ͕Δ ⁞ ͷग़ྗΛґཔ͢Δ
4VCTDSJCFS↔1VCMJTIFS 1VCMJTIFS 4VCTDSJCFS ͷग़ྗΛґཔ͢Δ 1VCMJTIFSTVCTDSJCF @ ݺͿ ෦ͰSFDFJWF
TVCTDSJCFS Λݺͼ 4VCTDSJCFSͱܨ͕Δ 4VCTDSJQUJPOΛड͚औΔ ⁞ 4VCTDSJCFSSFDFJWF TVCTDSJQUJPO 4VCTDSJQUJPO
4VCTDSJCFS↔4VCTDSJQUJPO 4VCTDSJCFS SFRVFTU 4VCTDSJCFST%FNBOE 4VCTDSJQUJPO %FNBOEΛ͑Δ
4VCTDSJCFS↔4VCTDSJQUJPO 4VCTDSJCFS %FNBOEΛ͑Δ SFRVFTU 4VCTDSJCFST%FNBOE 4VCTDSJQUJPO Λ܁Γฦ͠ૹड৴͢Δ
SFDFJWF WBMVF 4VCTDSJCFST%FNBOE 4VCTDSJCFSड͚औͬͨΛݩʹ%FNBOEΛௐՄ
4VCTDSJCFS↔4VCTDSJQUJPO 4VCTDSJCFS $PNQMFUJPOΛड͚औΔ SFDFJWF f i OJTIFE
SFDFJWF GBJMVSF 4VCTDSJQUJPO Λ܁Γฦ͠ૹड৴͢Δ SFDFJWF WBMVF 4VCTDSJCFST%FNBOE 4VCTDSJCFSड͚औͬͨΛݩʹ%FNBOEΛௐՄ %FNBOEΛ͑Δ SFRVFTU 4VCTDSJCFST%FNBOE
શମ૾ 4VCTDSJCFS $PNQMFUJPOΛड͚औΔ 4VCTDSJQUJPO Λ܁Γฦ͠ૹड৴͢Δ %FNBOEΛ͑Δ
ͷग़ྗΛґཔ͢Δ ⁞ 4VCTDSJQUJPOΛड͚औΔ 1VCMJTIFS
ൃදޙͷิ ˞όʔδϣϯͰͷࠩҟʹҙ J04dJ04 NBD04d 4VCTDSJQUJPOΛड͚औΔॲཧͱ0VUQVUΛड͚औΔॲཧ͕ඇಉظͰߦΘΕ͍ͯͨ 4VCTDSJCF͢Δલʹ0VUQVU͕ྲྀΕͯ͠·͍ड͚औΕͳ͍Մೳੑ͕͋Δ IUUQTGPSVNTTXJGUPSHUDPNCJOFSFDFJWFPOSVOMPPQNBJOMPTFTTFOUWBMVFIPXDBOJNBLFJUXPSL J04Ҏ߱ NBD04Ҏ߱ 4VCTDSJQUJPOΛड͚औΔॲཧͷޙʹ0VUQVUΛड͚औΔॲཧ͕ॱ൪ʹߦΘΕΔ
0VUQVUΛશͯड͚औΕΔ͜ͱΛอূ
ॲཧͷྲྀΕ ίʔυ
1VCMJTIFS 1VCMJTIFS*OU /FWFS ྻ1VCMJTIFS
TJOL $MPTVSFϕʔεͰ0VUQVUͱ$PNQMFUJPOΛड͚औΔ
4VCTDSJQUJPOΛड͚औΔ 4VCTDSJCFS $PNQMFUJPOΛड͚औΔ 4VCTDSJQUJPO Λ܁Γฦ͠ૹड৴͢Δ
%FNBOEΛ͑Δ ͷग़ྗΛґཔ͢Δ ⁞ 1VCMJTIFS TJOL
4VCTDSJQUJPOΛ͢ 4VCTDSJCFS $PNQMFUJPOΛ͑Δ 4VCTDSJQUJPO Λ܁Γฦ͠ૹड৴͢Δ
%FNBOEΛ͑Δ ͷग़ྗΛґཔ͢Δ ⁞ 1VCMJTIFS TJOL ͋Δ͚ͩԼ͍͞ VOMJNJUFE
TJOL SFDFJWF7BMVF SFDFJWF$PNQMFUJPO
TJOL SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF$PNQMFUJPO
TJOL SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF7BMVF SFDFJWF$PNQMFUJPO f i OJTIFE SFDFJWF7BMVF SFDFJWF$PNQMFUJPO
TJOL TUPSF
BTTJHO UPPO ,FZ1BUIΛͬͯΦϒδΣΫτͷʹ7BMVFΛө
BTTJHO UPPO ,FZ1BUIΛͬͯΦϒδΣΫτͷʹ7BMVFΛө 'BJMVSF͕/FWFSͷ߹ʹར༻Մೳ 1VCMJTIFS*OU /FWFS
BTTJHO UPPO TUPSF
શମ૾ 4VCTDSJCFS $PNQMFUJPOΛड͚औΔ 4VCTDSJQUJPO Λ܁Γฦ͠ૹड৴͢Δ %FNBOEΛ͑Δ
ͷग़ྗΛґཔ͢Δ ⁞ 4VCTDSJQUJPOΛड͚औΔ 1VCMJTIFS
4VCKFDU
4VCKFDU ࣗΒΛ1VCMJTIͰ͖Δ1VCMJTIFS 1VCMJTIFS 4VCKFDU *NNVUBCMF SFBEPOMZ ΠϕϯτͷൃੜʹԠͯ͡ ࣗಈͰΛग़ྗ
.VUBCMF SFBEXSJUF खಈͰΛग़ྗ
1BTTUISPVHI4VCKFDU 4VCKFDU w 4VCTDSJCFޙʹ1VCMJTI͞ΕͨΛड͚औΔ w ॳظෆཁ w ΠϕϯτΛ͑Δ߹ͳͲʹ༻
$VSSFOU7BMVF4VCKFDU 4VCKFDU w ݱࡏͱ4VCTDSJCFޙʹ1VCMJTI͞ΕͨΛड͚औΔ w ॳظ͕ඞཁ w ঢ়ଶΛࢹ͢Δ࣌ͳͲʹ༻
$VSSFOU7BMVF4VCKFDU 4VCKFDU ग़ྗํ๏͕छྨ͋Δ w ݱࡏͱ4VCTDSJCFޙʹ1VCMJTI͞ΕͨΛड͚औΔ w ॳظ͕ඞཁ w ঢ়ଶΛࢹ͢Δ࣌ͳͲʹ༻
!1VCMJTIFE
ˏ1VCMJTIFE ී௨ͷมʹ1VCMJTIFSػೳΛ͚ͭΔ
ˏ1VCMJTIFE ී௨ͷมʹ1VCMJTIFSػೳΛ͚ͭΔ
ˏ1VCMJTIFE ී௨ͷมʹ1VCMJTIFSػೳΛ͚ͭΔ Λ௨ͯ͠1VCMJTIFSʹΞΫηεͰ͖Δ
BTTJHO JOPVUUP J04 4VCTDSJQUJPOͷཧෆཁ ˏ1VCMJTIFE
ˏ1VCMJTIFE DMBTTͷϓϩύςΟʹͷΈઃఆՄೳ
ؾΛ͚͍ͭͨϙΠϯτ
4VCKFDU!1VCMJTIFE DMBTTΛར༻͢Δ࣌ͷҙ DMBTTͷΠϯελϯεมߋ͞Εͳ͍ͷͰ ෦ͷมߋ͞ΕΔ͕ग़ྗ͞Εͳ͍
DMBTTͷΠϯελϯεมߋ͞Εͳ͍ͷͰ ෦ͷมߋ͞ΕΔ͕ग़ྗ͞Εͳ͍ UFNQFSBUVSFWBMVFʹͳΔ ग़ྗ͞Εͳ͍ 4VCKFDU!1VCMJTIFE DMBTTΛར༻͢Δ࣌ͷҙ
0QFSBUPS
0QFSBUPS 1VCMJTIFS͔Βड͚औ͔ͬͨΒ৽͍͠1VCMJTIFSΛੜ 1VCMJTIFS 0QFSBUPS 1VCMJTIFS
0QFSBUPS 1VCMJTIFS͔Βड͚औ͔ͬͨΒ৽͍͠1VCMJTIFSΛੜ 1VCMJTIFS 0QFSBUPS 1VCMJTIFS 0QFSBUPS
1VCMJTIFS ࿈݁ͯ͠͏͜ͱ͕Ͱ͖Δ
શ෦1VCMJTIFS Noti f i cationCenter.Publisher Publishers.Map Publishers.HandleEvents Publishers.Debounce Publishers.Filter Publishers.RemoveDuplicates
Publishers.FlatMap Publishers.ReceiveOn Publishers.HandleEvents
0QFSBUPS $PMMFDUJPOͱಉ͡γϯλοΫεɺ͍ํͷͷ͕ଟ͍ 0QFSBUPS $PMMFDUJPO ❤
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz
4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz
4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz
4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz
4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lz lPOFz lz lUXPz lz lz
4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lPOFz lz lUXPz lz lz
4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lPOFz lz lUXPz lz lz
4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lPOFz lz lUXPz lz lz
4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lPOFz lz lUXPz lz lz
4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz lz 4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz lz 4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz lz 4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz lz 4VCTDSJCFS
4VCTDSJCFS 0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz lz
0QFSBUPST ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz 4VCTDSJCFS
0QFSBUPST ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS lUXPz lz <lz lPOFz lz
ʜ> 4VCTDSJCFS
0QFSBUPS ͷྲྀΕΛݟͯΈΔ 1VCMJTIFS4USJOH /FWFS 4VCTDSJCFS ̒ $PNQMFUJPO f
i OJTIFE lz lPOFz lz lUXPz lz lz
0QFSBUPS ܨ͛Εܨ͛Δ΄Ͳܕ͕ෳࡶʹͳΔ 1VCMJTIFST.BQ1VCMJTIFST%FDPEF1VCMJTIFST.BQ,FZ1BUI63-4FTTJP O%BUB5BTL1VCMJTIFS +40/%FDPEFS*OQVU "1*.PEFM +40/%FDPEFS <.PEFM> ˞ܕ໊దͰ͢
0QFSBUPS FSBTF5P"OZ1VCMJTIFS "OZ1VCMJTIFS<.PEFM> &SSPS ˞ܕ໊దͰ͢
0QFSBUPS 1VCMJTIFS͔Βड͚औ͔ͬͨΒ৽͍͠1VCMJTIFSΛੜ 1VCMJTIFS 0QFSBUPS 1VCMJTIFS 0QFSBUPS
1VCMJTIFS 1VCMJTIFS 0QFSBUPS 0QFSBUPS 1VCMJTIFS 0QFSBUPS
ଞͷϑϨʔϜϫʔΫͱͷ࿈ܞ
͋ΒΏΔॲཧΛ1VCMJTIFSʹ 'PVOEBUJPO w /PUJ f i DBUJPODFOUFS w 5BSHFU"DUJPO w
"EIPDDBMMCBDLT w 63-4FTTJPO w ,70 $PNCJOF 1VCMJTIFS 4XJGU6* w !#JOEJOH w !0CTFSWFE0CKFDU w !4UBUF $PSF%BUB w 'FUDIFE3FRVFTU w /4.BOBHFE0CKFDU
'PVOEBUJPO $PNCJOF
63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine %BUB5BTL1VCMJTIFS
63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine %BUB5BTL1VCMJTIFS
63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine ᶃ63-͔ΒσʔλΛऔಘ ᶃ ᶄ ᶅ ᶄϨεϙϯείʔυ͕ෆਖ਼ͩͱΤϥʔ ᶅ+40/Λ6TFSܕʹσίʔυ
63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine
63-4FTTJPO https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine ᶃ63-͔ΒσʔλΛऔಘ ᶃ ᶄ ᶅ ᶄࣦഊͨ͠Β࠶औಘ ᶅͦΕͰࣦഊͨ͠ΒΘΓͷํ๏Ͱσʔλऔಘ
,70 ,FZ7BMVF0CTFSWJOH /40CKFDU,FZ7BMVF0CTFSWJOH1VCMJTIFS6*4DSPMM7JFX $(1PJOU DMBTT͔ͭ/40CKFDUͷαϒΫϥεͳΒ༻Մೳ
/PUJGJDBUJPO$FOUFS ͲΜͳ/PUJ f i DBUJPO/BNFʹରԠ /PUJ f i DBUJPO$FOUFS1VCMJTIFS
4XJGU6* $PNCJOF
6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 6*,JU Ϋϩʔδϟ
6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 6*,JU $PNCJOF
6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF
5FYU 1VCMJTIFS 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF
0CTFSWBCMF0CKFDU 0CTFSWBCMF0CKFDU 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF
5FYU 1VCMJTIFS ߋ৽ 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF
ߋ৽Λ௨ ௨ 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF
!1VCMJTIFE͕ߋ৽͞ΕΔͱߋ৽͕ඞཁͳ7JFXΛ4XJGU6*͕ࣗಈͰ࠶ඳը ߋ৽ 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* $PNCJOF
6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 6*,JU 6*-BCFM WBSUFYU4USJOH 7JFX.PEFM WBSJE4USJOH 4UBUF 7JFX
6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 6*,JU 6*-BCFM WBSUFYU4USJOH 7JFX.PEFM WBSJE4USJOH 4UBUF 7JFX
7JFX.PEFM0CTFSWBCMF0CKFDU !1VCMJTIFEWBSJE4USJOH 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* 5FYU WJFX.PEFMJE
7JFX.PEFM0CTFSWBCMF0CKFDU !1VCMJTIFEWBSJE4USJOH 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* 5FYU WJFX.PEFMJE 4UBUF 7JFX
7JFX.PEFM0CTFSWBCMF0CKFDU !1VCMJTIFEWBSJE4USJOH 6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* 4XJGU6* 5FYU WJFX.PEFMJE 4UBUF 7JFX 4JOHMF4PVSDFPG5SVUI
6*ͷঢ়ଶͱදࣔͷߋ৽Λಉظ 4XJGU6* !4UBUF0CKFDUͰ0CTFSWBCMF0CKFDUΛอ࣋
͋ΒΏΔඇಉظॲཧΛ1VCMJTIFSʹ 'PVOEBUJPO w /PUJ f i DBUJPODFOUFS w 5BSHFU"DUJPO w
"EIPDDBMMCBDLT w 63-4FTTJPO w ,70 $PNCJOF 1VCMJTIFS 4XJGU6* w !#JOEJOH w !0CTFSWFE0CKFDU w !4UBUF $PSF%BUB w 'FUDIFE3FRVFTU w /4.BOBHFE0CKFDU
طଘͷ࣮ʹ׆༻Ͱ͖Δʁ
1BTTUISPVHI4VCKFDUͷ׆༻ ϘλϯͷλοϓΠϕϯτΛ 1VCMJTIFS͔Β௨͢Δ
1BTTUISPVHI4VCKFDUͷ׆༻ ϘλϯͷλοϓΠϕϯτΛ 1VCMJTIFS͔Β௨͢Δ ֎͔Βมߋ͞Εͳ͍Α͏ʹ ಡΈऔΓઐ༻ͳ1VCMJTIFSͷΈެ։͢Δ
$VSSFOU7BMVF4VCKFDUͷ׆༻ ॳظ͕ඞཁͳ߹
ˏ1VCMJTIFEͷ׆༻
%FMFHBUFͰड͚औͬͨΛ 1VCMJTIFS͔Β௨͢Δ %FMFHBUF͔ΒܧଓతʹΛग़ྗ͢Δ
IBOEMF&WFOUT ֤λΠϛϯάͰॲཧΛՃͰ͖Δ SFDFJWF4VCTDSJQUJPO1VCMJTIFS͔Β4VCTDSJQUJPOΛड͚औͬͨ SFDFJWF0VUQVU1VCMJTIFS͔Β0VUQVUΛड͚औͬͨ SFDFJWF$PNQMFUJPO1VCMJTIFS͔Βྃ௨Λड͚औͬͨ SFDFJWF$BODFM4VCTDSJCFS͔ΒΩϟϯηϧΛґཔ͞Εͨ SFDFJWF3FRVFTU4VCTDSJCFS͔Β%FNBOEΛड͚औͬͨ
3FTVMU1VCMJTIFS 3FTVMU%BUB &SSPS7PJE
'VUVSF 1VCMJTIFSͰ8SBQ͢Ε1VCMJTIFS ΛฦͤΔ 3FTVMU1VCMJTIFS
typealias Promise = (Result<Output, Failure>) -> Void https://developer.apple.com/documentation/combine/future/promise 'VUVSF3FTVMU Λग़ྗ͢Δ
3FTVMU1VCMJTIFS
https://developer.apple.com/documentation/combine/future/promise ͷग़ྗҰ͚ͩ Τϥʔͷ߹Τϥʔ͚ͩ 3FTVMU1VCMJTIFS
https://developer.apple.com/documentation/combine/deferred 'VUVSF ΠϯελϯεΛੜͨ͠λΠϛϯάͰ ෦ͷॲཧΛ࣮ߦ͢Δ 3FTVMU1VCMJTIFS
https://developer.apple.com/documentation/combine/deferred %FGFSSFEͰ࣮ߦΛԆͤ͞Δ 3FTVMU1VCMJTIFS
,70ͷ׆༻
$VTUPN1VCMJTIFS 6*$POUSPMΠϕϯτΛ 1VCMJTIFSʹ͢Δ
$VTUPN1VCMJTIFS 1VCMJTIFS࡞ 4VCTDSJQUJPO࡞ 0QFSBUPS࡞ ҙ
1VCMJTIFSʹมͯ͠$PNCJOFͷੈք $PNCJOF 1VCMJTIFS 1VCMJTIFS 1VCMJTIFS 1VCMJTIFS 1VCMJTIFS 1VCMJTIFS https://pixabay.com/ja/illustrations/%E5%9C%B0%E7%90%83-4439728/
ࠔͬͨ࣌ͷσόοάํ๏
https://pixabay.com/ja/vectors/%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3-%E5%A3%8A%E3%82%8C%E3%81%9F-%E3%83%AA%E3%83%B3%E3%82%AF-%E8%87%AA%E7%94%B1-297842/
ࠔͬͨ࣌ͷσόοάํ๏ QSJOU IBOEMF&WFOU ίϯιʔϧͰॲཧͷྲྀΕΛ֬ೝͰ͖Δ
ࠔͬͨ࣌ͷσόοάํ๏ CSFBLQPJOU0O&SSPS CSFBLQPJOU ΤϥʔͷݪҼΛελοΫΛݟͯ֬ೝͰ͖Δ
ࠔͬͨ࣌ͷσόοάํ๏ 5JNFMBOF http://timelane.tools/
ࠓ͝հͨ͜͠ͱ $PNCJOFͱʁ $PNCJOFΛ͏ҙٛ ओͳΫϥεΛΔ 1VCMJTIFS 4VCTDSJCFS 4VCTDSJQUJPO 4VCKFDU !1VCMJTIFE ॲཧͷྲྀΕ
Έ Λ Δ 0QFSBUPST ͱʁ طଘͷ࣮ʹ ΈࠐΉ 4XJGU6* ϑϨʔϜϫʔΫ σόοάํ๏Λ Δ
·ͩ·ͩΒͳ͍͜ͱ͕͋Δ ͬͱ1VCMJTIFS ΛΔ ͬͱ0QFSBUPS ΛΔ ςετΛॻ͘ ಠࣗͷ1VCMJTIFSΛ ࡞͢Δ ΞϓϦΛ࡞͢Δ ศརͳϥΠϒϥϦ
πʔϧΛΔ
ͬͱ1VCMJTIFS ΛΔ ͬͱ0QFSBUPSTΛ Δ ςετΛॻ͘ ಠࣗͷ1VCMJTIFSΛ ࡞͢Δ ΞϓϦΛ࡞͢Δ ศརͳϥΠϒϥϦ πʔϧΛΔ
·ͩ·ͩΒͳ͍͜ͱ͕͋Δ 1VCMJTIFS$PNCJOF /FWFS
Ͳ͏ֶͬͯͿʁ
ͬͱ$PNCJOFʹ͍ͭͯΔ w 88%$ͷηογϣϯ w ެࣜυΩϡϝϯτ w ΧϯϑΝϨϯετʔΫɺಈը w ॻ੶ɺϒϩάͳͲ
$PNCJOFΛͬͯΈΔ w 1MBZHSPVOE9DPEF1SFWJFXTͰಈ͖Λ֬ೝ͢Δ w νϡʔτϦΞϧϥΠϒίʔσΟϯάಈըͷਅࣅΛ͠ ͯΈΔ ࣸܦ w ɺެࣜϦϑΝϨϯεΛࢀর͢Δ
w ݸਓΞϓϦΛ࡞Δ
w σόοάπʔϧΛͬͯΈΔ w ಉ͡Α͏ʹࠔ͍ͬͯΔਓ͕͍ͳ͍͔୳ͯ͠ΈΔ w ࣭Λͯ͠ΈΔ ࠔͬͨͱ͖ combinecommunity.slack.com TXJGUEFWFMPQFSTKBQBO
IUUQTHJUIVCDPNTU[O$PNCJOF4UVEZ
$PNCJOF ,FZWBMVFPCTFSWJOH 5BSHFU"DUJPO /PUJ f i DBUJPO$FOUFS $MPTVSF$BMMCBDLT %FMFHBUF ʜ
ʜ ʜ ʜ
$PNCJOF ʁ
͋Γ͕ͱ͏ ͍͟͝·ͨ͠