Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
そろそろCombine
sztk1209@gmail.com
September 20, 2020
Programming
12
3.1k
そろそろCombine
iOSDC2020 presentation about Combine.framework
sztk1209@gmail.com
September 20, 2020
Tweet
Share
More Decks by sztk1209@gmail.com
See All by sztk1209@gmail.com
Hello, Swift Concurrency world.の振り返り / Looking back on Hello, Swift Concurrency world.
shiz
0
56
Hello, Swift Concurrency world.
shiz
9
3.5k
The First Step of Swift Concurrency
shiz
2
950
Dependency Injection
shiz
1
51
SOLID and Composition Root
shiz
0
26
Swift Concurrency (随時更新版)
shiz
3
410
Swift Concurrency 3
shiz
1
32
Swift Concurrency Talk 3
shiz
0
150
Swift Concurrency Talk 2
shiz
0
49
Other Decks in Programming
See All in Programming
Monadic Java
mariofusco
4
260
Reactでアプリケーションを構築する多様化
sakito
4
3.4k
あなたの会社の古いシステム、なんとかしませんか?~システム刷新から考えるDX化への道筋とバリエーション~/webinar20220420-systems
grapecity_dev
0
130
GraphQL+KMM開発でわかったこと / What we learned from GraphQL+KMM development
kubode
0
130
About Type Syntax Proposal
quramy
1
1.2k
Node.js 最新動向 TFCon 2022
yosuke_furukawa
PRO
6
2.9k
プログラミングを勉強したいと言われたら
yuba_4
0
420
Jetpack Compose 頑張らないPreviewParameterProvider
horie23
0
110
Learning DDD輪読会#4 / Learning DDD Book Club #4
suzushin54
1
150
TextPruner による大規模言語モデルの軽量化 / Large language model pruning using TextPruner
misawann
0
310
実録mruby組み込み体験
coe401_
0
110
Better Reliability through Observability (and Experimentation)
ksatirli
PRO
1
360
Featured
See All Featured
Six Lessons from altMBA
skipperchong
14
1.3k
Designing for humans not robots
tammielis
241
23k
Design by the Numbers
sachag
271
17k
BBQ
matthewcrist
74
7.9k
A better future with KSS
kneath
225
15k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
Why You Should Never Use an ORM
jnunemaker
PRO
47
5.5k
How to Ace a Technical Interview
jacobian
265
21k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
268
11k
Music & Morning Musume
bryan
35
4.1k
Clear Off the Table
cherdarchuk
79
280k
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 ʁ
͋Γ͕ͱ͏ ͍͟͝·ͨ͠