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]
Swift compiler 101 & How async function works
shiz
0
19
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
230
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
1.5k
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
5
13k
(非公開スライド追加)座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
1
500
複雑さに立ち向かうためのコードリーディング入門
shiz
35
13k
Swift Observation
shiz
5
810
Swift Reflection
shiz
1
210
Swift Concurrency Next Step
shiz
7
7.9k
Other Decks in Programming
See All in Programming
ローコードサービスの進化のためのモノレポ移行
taro28
1
240
PHPUnit 高速化テクニック / PHPUnit Speedup Techniques
pinkumohikan
1
500
RecSys2024 参加報告
unonao
1
170
RailsでCQRS/ESをやってみたきづき
suzukimar
2
1.4k
CQRS+ES勉強会#1
rechellatek
0
330
Duke on CRaC with Jakarta EE
ivargrimstad
0
1k
AIエージェントを活用したアプリ開発手法の模索
kumamotone
1
670
GDG Super.init(version=6) - From Where to Wear : 모바일 개발자가 워치에서 발견한 인사이트
haeti2
0
510
安全に倒し切るリリースをするために:15年来レガシーシステムのフルリプレイス挑戦記
sakuraikotone
3
1k
SREチームのタスク優先度と向き合う Road to SRE NEXT@札幌
nealle
0
130
CSC486 Lecture 14
javiergs
PRO
0
140
Expoによるアプリ開発の現在地とReact Server Componentsが切り開く未来
yukukotani
2
370
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
35
1.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
116
51k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
690
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Rails Girls Zürich Keynote
gr2m
94
13k
What's in a price? How to price your products and services
michaelherold
244
12k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
14
1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
430
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1.1k
Site-Speed That Sticks
csswizardry
4
440
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 ʁ
͋Γ͕ͱ͏ ͍͟͝·ͨ͠