์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ์ด์งํ์
- Til
- algoritm
- ํ๋ก๊ทธ๋๋จธ์ค
- binarySearch
- URLSession
- discardableResult
- DynamicProgramming
- APPJAM
- SwiftUI Tutorials
- ๊ธฐ์ด๋ฌธ๋ฒ
- SOPT
- Swift
- 0์ด๋์ด์๋๊ธธ
- ๊ณ ๋์ kit
- ๋์ ๊ณํ๋ฒ
- SwiftUI
- SwiftUI ํํ ๋ฆฌ์ผ
- concurrency
- HAVIT
- dfs
- algorithm
- GroupBy
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- GCD
- duno
- BFS
- IOS
- ์ฐ์ํ์ค๋ถ๋ถ์์ด์ํฉ
- SQL
- Today
- Total
suvera-dev ๐ฅฆ
RxSwift) subscribe, bind, drive ์ฐจ์ด ๋ณธ๋ฌธ
RxSwift ์์ ๊ตฌ๋ ์ ํ๊ธฐ ์ํ ๋ฉ์๋ 3๊ฐ์ง !
์๋๋ subscribe ๋ง ์๊ณ ์์๊ณ , UI ์์ ํด์ค๋ bind ๋ง ์ผ๋๋ฐ ..
์ฐจ์ด๋ฅผ ์ ๋ชจ๋ฅด๊ณ ๊ทธ๋ฅ ์ด ๊ฒ ๊ฐ๋ค ใ ใ
subscribe๋ ๋ง๊ทธ๋๋ก ๊ตฌ๋ ํ๋๊ฑฐ
๊ตฌ๋ ๋์์ ์ํ๊ฐ ๋ณํ๋ฉด ๊ฐ์ ๋ฐ์์์ ์ฒ๋ฆฌ
๋ณํ๋ ๋ค์๊ฐ, ์๋ฌ, ๋๋ ๋๋ฅผ ์๊ณ ์ฝ๋ ๊ตฌํ ๊ฐ๋ฅ.
UI ์์ ์ ๋ง์ด ์ฌ์ฉ๋๋ ๋ฉ์๋๋ bind ์ drive
bind๋ Observable๊ณผ Observer๋ฅผ ํ๋๋ก ๋ฌถ์ด์ฃผ๋ ์ญํ
- bind์ ๋ด๋ถ์๋ subscribe ๊ฐ ์์
- ์ต์ ๋ฒ๋ธ์ด ๋ฐฉ์ถํ ์ด๋ฒคํธ๋ฅผ ๊ทธ๋๋ก binder์๊ฒ ์ ๋ฌ
๊ทธ๋ฆฌ๊ณ binder๋ UI ์ ๋ฐ์ดํธ์ ์ฌ์ฉ๋๋ ์ต์ ๋ฒ์ ์ผ์ข
- bind๋ onNext ์ด๋ฒคํธ์ ๋ํด์๋ง ๋ฐ์ํ๊ณ
error์ด๋ฒคํธ๊ฐ ๋ค์ด์ค๋ฉด ์๋ฌ ๋ก๊ทธ๋ฅผ ์ฝ์์ ์ถ๋ ฅ
- ๋จ์ํ ์๋ก ์์ฑ๋๋ ๊ฐ์ ๋๊ฒจ์ค ๋ ๊ฐํธํ๊ฒ ์ฐ๋ ์ฉ๋
drive๋ bind ์ฒ๋ผ onNext ์ด๋ฒคํธ ๋ํด์๋ง ์ฒ๋ฆฌ
- drive๋ ๋ด๋ถ์ ์ผ๋ก๋ subscribe๋ฅผ ์ฌ์ฉ
- ์ฐ์ ๋ฌด์กฐ๊ฑด ๋ฉ์ธ์ค์ผ์ค๋ฌ, ์ฆ ๋ฉ์ธ์ค๋ ๋์์ ๋์
- drive๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ asDriver๋ก ์ต์ ๋ฒ๋ธ์ drive trait ๋ถ์ฌ
- ์ ์ด์ ์ปจํธ๋กค ํ๋กํผํฐ๋ ์คํจํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ฌ๋ฅผ ๊ฐ์ ํ์ง ์์
drive๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ BehaviorRelay ํํ์ฌ์ผํฉ๋๋ค..?
๋ฌผ๋ก BehaviorSubject๋ฅผ wrappingํ ํํ๋ผ์ ์๋ธ์ ํธ๋ asDriver๊ฐ ์๊ธดํด์
๊ทผ๋ฐ ์๋ธ์ ํธ๋ ์๋ฌ๊ฐ ๋ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์
์๋ฌ๊ฐ ์๋ driverํํ์ ๋ง์ง ์์ ..
Relay + drive ์ฌ์ฉ : UI ์์ ์ด๋ผ๋ ๊ฒ์ ๋ช ํํ๊ฒ ํด์ค
Relay ๋ฅผ Subject๋ฅผ wrapping ํ ํด๋์ค
complete์ error๋ฅผ ๋ฐฉ์ถํ์ง ์๋๋ค.
accept๋ก ์ด๋ฒคํธ ๋ฐ์
driver๋ ๋ฉ์ธ์ค๋ ๋์์๋ง ์คํ
UI ์ ๋ฐ์ดํธ๋ ๋ฉ์ธ์ค๋ ๋์์๋ง ์คํ๋์ด์ผํ๊ธฐ ๋๋ฌธ์
subscribe์ bind๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์์ . !
๋, bind๋ ์ต์ ๋ฒ๊ฐ ๋์ด๋ ๋๋ง๋ค ์ต์ ๋ฒ๋ธ ์คํธ๋ฆผ์ด ์ฌ๋ฌ๊ฐ๊ฐ
๋๋๋ฐ drive๋ฅผ ์ฌ์ฉํ๋ฉด ์คํธ๋ฆผ์ ํ๋๋ก ์ ์ง๋๊ณ ๊ทธ ํ๋๋ฅผ ์ฌ๋ฌ ์ต์ ๋ฒ๊ฐ ๊ตฌ๋
=> ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฉด์์ ํจ์จ์
UI ๊ด๋ จ ์ฝ๋๋ฅผ ์์ฑํ ๋ Relay + drive ์กฐํฉ
๊ฐ์ ์ฌ์ฉํ๊ธฐ ์ํด ์ ์ฅํ ๋ bind , Subscribe + Subject ์กฐํฉ
์ถ์ฒ : SOPT 30๊ธฐ iOS ํํธ ์คํ๊น๋ ์๋ฃ