Hot / Cold
@ RxSwift
Rx
Hot / Cold
Hot / Cold
• Hot / Cold
• Hot / Cold
• Hot / Cold
• Rx … Rx …
( ^o^)
( ^o^)
※ Bond
• Hot / Cold
RxSwift
• Hot
• Hot / Cold
• ( ) Hot / Cold
•
1
Hot / Cold
Observable
Observable
Observable
• Subject
• PublishSubject, BehaviorSubject, ReplaySubject …
Observable
• Subject
• PublishSubject, BehaviorSubject, ReplaySubject …
• Operator
• map, filter, flatMap …
• create, of, just, error …
Observable
• Subject
• PublishSubject, BehaviorSubject, ReplaySubject …
• Operator ← !?
• map, filter, flatMap …
• create, of, just, error …
2
Operator ( )
Observable
filter
filter
Observable
filter
filter operator
Filter
just
just
Observable
just
Just
• Hot / Cold Observable
• Subject Observable
• Operator ( ) Observable
Hot / Cold
1
Subject Hot
Subject
• PublishSubject
• BehaviorSubject
• ReplaySubject
Hot
2
Operator
Cold
Hot
Hot
Hot
• multicast / publish
• replay / replayAll
• connect / refCount
• share / shareReplay
• shareReplayLatestWhileConnected
Subject Hot
Map Operator Cold
Filter Operator Cold
Subject Map Filter
↑
• Subject Hot
• Operator Cold
• publish Operator Hot ( )
Hot / Cold
Hot / Cold
Question1
Answer
…
A.
Cold 1
Cold Observable
subscribe
Cold subscribe
Sequence
Cold subscribe
Sequence Map
Cold subscribe
subscribe →
subscribe
subscribe
Hot 1
Hot Observable
subscribe
Question2
Answer
…
A.
Subject Map
Subject Map
• =
Cold subscribe
Subject Map
Subject
Question3
Answer
…
A. 1, 2, 3
Subject Map Hot
Hot Cold
Hot Observable subscribe
Subject Map Hot
subscribe
• Cold Observable subscribe
• Hot Observable subscribe
• Hot Observable Cold
Hot
Hot 2
Hot Observable
Cold 2
Cold Observable
• = Observer
• Cold Observable Observer 1
• Hot Observable Observer
※ Observer
Observable
Sequence Map
Sequence Map Observer
1 subscribe
Sequence Map Observer
Map Observer
2 subscribe
1 …
Sequence Map Observer
Map Observer
Sequence Map Observer
Sequence Map Observer
Sequence Map Observer
Sequence Map Observer
2 !!
Sequence Map Observer
Sequence Map Observer
2
Hot
Hot ( )
( Hot )
Hot
Hot
( Hot )
Hot
Sequence Map Hot
Hot
Sequence Map Hot Observer
1 subscribe
Hot
Sequence Map Hot Observer
Observer
2 subscribe
Hot
Sequence Map
Observer
Hot
Observer
Hot
Sequence Map
Observer
Hot
Observer
!!!
Sequence Map
Observer
Hot
Observer
print
• Cold Observable
• Hot Observable
Hot
Question4
( Hot )
Hot ( )
Answer
…
A. 2, 4, 6
2 subscribe
Hot 3
Hot Observable
Observer
• Observer
Cold (
)
• (Next)
subscribe
observer 1
2,4,6
Next
Cold
Cold
Sequence Map Observer
Sequence Map Observer
Cold
2
Observer
Sequence Map Observer
Sequence Map Observer
Cold
Cold 1
Cold Observable
subscribe
Hot 1
Hot Observable
subscribe
Hot 2
Hot Observable
Cold 2
Cold Observable
Hot 3
Hot Observable
Observer
•
(
)
• Hot

今日こそ理解するHot / Cold @社内RxSwift勉強会