RxSwift Scheduler
by
USAMI Kosuke
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
RxSwiftͷεέδϡʔϥ USAMI Kosuke Fenrir Inc.
Slide 2
Slide 2 text
RxSwift • ඇಉظΠϕϯτΛड͚औΔͨΊͷΈ • UI Πϕϯτड͚औΓ • Web API Ϩεϙϯεड͚औΓ • σʔλͷมԽͷࢹ
Slide 3
Slide 3 text
ྫ hogeObservable .subscribe(onNext: { _ in // ΠϕϯτΛड͚औͬͨͱ͖ͷॲཧ })
Slide 4
Slide 4 text
ඇಉظΠϕϯτͱεϨου • ඇಉظΠϕϯτʹಉظతͰͳ͍ʹผεϨουͰൃੜ͢Δ • Rx ͰεϨουͲͷΑ͏ʹѻΘΕΔͷ͔ʁ
Slide 5
Slide 5 text
εέδϡʔϥ • Rx ͰεϨουʹͨΔ֓೦ • ʢਖ਼֬ʹεϨουͱ1ର1Ͱͳ͍͚Ͳɺ͜͜Ͱলུʣ
Slide 6
Slide 6 text
༨ஊɿRx ͷࡾཁૉ • Observable • Operator • Scheduler
Slide 7
Slide 7 text
εέδϡʔϥ
Slide 8
Slide 8 text
Observable ͱ Observer • ΠϕϯτൃੜݩͱΠϕϯτॲཧ
Slide 9
Slide 9 text
Scheduler • ͦΕͧΕʹεέδϡʔϥΛࢦఆͰ͖Δ
Slide 10
Slide 10 text
observeOn • ΠϕϯτॲཧͷεέδϡʔϥΛม͑Δ
Slide 11
Slide 11 text
ྫ hogeObservable .observeOn(MainScheduler.instance) .subscribe(onNext: { _ in // ϝΠϯεϨουͰಈ࡞͢Δ })
Slide 12
Slide 12 text
subscribeOn • ΠϕϯτൃੜݩͷεέδϡʔϥΛม͑Δ
Slide 13
Slide 13 text
ྫ hogeObservable .subscribeOn(hogeScheduler) .do(onNext: { _ in // hogeScheduler Ͱಈ࡞͢Δ } .observeOn(MainScheduler.instance) .subscribe(onNext: { _ in // ϝΠϯεϨουͰಈ࡞͢Δ })
Slide 14
Slide 14 text
εϨου੍ޚ·ͱΊ • subscribeOn : Πϕϯτൃੜݩͷεέδϡʔϥࢦఆ • Web API ࣮ߦεϨουͷࢦఆ • σʔλϕʔεΞΫηεεϨουͷࢦఆ • observeOn : Πϕϯτॲཧͷεέδϡʔϥͷࢦఆ • UI ॲཧεϨουͷࢦఆ
Slide 15
Slide 15 text
ҙ • subscribeOn ͰΓସ͑Ͱ͖ͳ͍߹͕͋Δ • ͦΕ Observable ͷੑ࣭ʹΑΔ
Slide 16
Slide 16 text
Hot ͱ Cold
Slide 17
Slide 17 text
subscribeOn ͕ޮ͔ͳ͍߹ • Hot ͳ Observable ͷ߹Γସ͑Ͱ͖ͳ͍ • Cold ͳ Observable ͷ߹Γସ͑Ͱ͖Δ
Slide 18
Slide 18 text
ྫɿΓସ͑Ͱ͖ͳ͍έʔε let hogeRelay = BehaviorRelay(value: "A") let hogeThread = Thread() { sleep(1) hogeRelay.accept("B") sleep(1) hogeRelay.accept("C") } hogeThread.start()
Slide 19
Slide 19 text
ྫɿΓସ͑Ͱ͖ͳ͍έʔε hogeRelay .subscribeOn(MainScheduler.instance) .do(onNext: { _ in // hogeThread Ͱ accept ͨ͠ͷ hogeThread Ͱಈ࡞ } .observeOn(MainScheduler.instance) .subscribe(onNext: { _ in // ϝΠϯεϨουͰಈ࡞͢Δ })
Slide 20
Slide 20 text
Observable ͷྨ : Hot / Cold • Hot • subscribe ͠ͳͯ͘ετϦʔϜ͕ྲྀΕΔ • subscribeOn Ͱ੍ޚͰ͖ͳ͍ • Cold • subscribe ͨ͠ΒετϦʔϜ͕ྲྀΕग़͢ • subscribeOn Ͱ੍ޚͰ͖Δ
Slide 21
Slide 21 text
ͲΕ͕ Hot ͰͲΕ͕ Cold ͔ʁ • Hot • Subject Relay • Rx ͷ֎ଆ͔ΒετϦʔϜʹΠϕϯτΛૹΕΔ • Cold • ্هҎ֎͍͍ͩͨ Cold • Rx ͷ੍ޚԼʹ͋Δ
Slide 22
Slide 22 text
·ͱΊ
Slide 23
Slide 23 text
·ͱΊ • εέδϡʔϥ • Γସ͑Δํ๏ • Hot ͱ Cold • Hot Γସ͑Ͱ͖ͳ͍