์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- GCD
- ํ๋ก๊ทธ๋๋จธ์ค
- DynamicProgramming
- ์ด์งํ์
- URLSession
- dfs
- SQL
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- SwiftUI ํํ ๋ฆฌ์ผ
- algorithm
- IOS
- binarySearch
- algoritm
- HAVIT
- APPJAM
- BFS
- SwiftUI Tutorials
- duno
- GroupBy
- Swift
- concurrency
- 0์ด๋์ด์๋๊ธธ
- SwiftUI
- ์ฐ์ํ์ค๋ถ๋ถ์์ด์ํฉ
- Til
- SOPT
- ๋์ ๊ณํ๋ฒ
- ๊ธฐ์ด๋ฌธ๋ฒ
- ๊ณ ๋์ kit
- discardableResult
- 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 ํํธ ์คํ๊น๋ ์๋ฃ