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
そろそろCombine
Search
[email protected]
September 20, 2020
Programming
12
3.9k
そろそろCombine
iOSDC2020 presentation about Combine.framework
[email protected]
September 20, 2020
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
1.3k
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
5
13k
(非公開スライド追加)座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
1
360
複雑さに立ち向かうためのコードリーディング入門
shiz
35
13k
Swift Observation
shiz
5
780
Swift Reflection
shiz
1
180
Swift Concurrency Next Step
shiz
7
7.7k
そろそろSwift Concurrency
shiz
1
460
Hello, Swift Concurrency world.の振り返り / Looking back on Hello, Swift Concurrency world.
shiz
0
130
Other Decks in Programming
See All in Programming
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
190
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
250
From Translations to Multi Dimension Entities
alexanderschranz
2
130
Recoilを剥がしている話
kirik
5
6.7k
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
180
【re:Growth 2024】 Aurora DSQL をちゃんと話します!
maroon1st
0
770
Security_for_introducing_eBPF
kentatada
0
110
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
5
1.2k
開発者とQAの越境で自動テストが増える開発プロセスを実現する
92thunder
1
180
Haze - Real time background blurring
chrisbanes
1
510
コンテナをたくさん詰め込んだシステムとランタイムの変化
makihiro
1
130
103 Early Hints
sugi_0000
1
230
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
How GitHub (no longer) Works
holman
311
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Building Your Own Lightsaber
phodgson
103
6.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
GitHub's CSS Performance
jonrohan
1030
460k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
98
Docker and Python
trallard
42
3.1k
Done Done
chrislema
181
16k
Writing Fast Ruby
sferik
628
61k
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 ʁ
͋Γ͕ͱ͏ ͍͟͝·ͨ͠