์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- SnapKit
- CollectionView
- realm
- node.js
- SwiftUI
- ๋ฐฑ์ค
- XCTest
- raywenderlich
- tableView
- combine
- Lv2
- RxSwift
- arkit
- Xcode
- Flutter
- visionOS
- Kuring
- ํ๋ก๊ทธ๋๋จธ์ค
- BOJ
- UIKit
- rxcocoa
- reactorkit
- ios
- MVVM
- BFS
- ํจ์คํธ์บ ํผ์ค
- Swfit
- swift
- designpattern
- TCA
- Today
- Total
๋ชฉ๋กrxcocoa (6)
lgvv98
such module 'RxCocoaRuntime' SPM์ผ๋ก RxSwift ๋ฐ์์ RxTest, RxBlocking ์ฌ์ฉํ๋ ค๋๊น ์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ํ๋จ. ์๋ ๊นํ issue๋ฅผ ๋ณด๋ฏ์ด ํด๋น ๋ฌธ์ ๋ ๊ฝค ์ค๋ ์ ๋ถํฐ ์กด์ฌํด์์. https://github.com/ReactiveX/RxSwift/issues/2277 No such module 'RxCocoaRuntime' · Issue #2277 · ReactiveX/RxSwift Short description of the issue: I'm facing a strange issue and I don't know if it is a bug or I'm just missing something. I'm currently working for a big c..
ReactorKit + RxDataSources #1(SectionModelType) ๊ฐ๋ฐํ๊ฒฝ ReactorKit 3.2.0 RxDataSources 5.0.2 SnapKit 5.6.0 Xcode 14.0 RxDataSource๋ ์ด์ ์๋ ๋ง์ด ์ฌ์ฉํด๋ด. DiffableDataSource๋ฅผ ์ดํดํ๊ณ ์๋ค๋ฉด ์ฌ์ฉํ๊ธฐ ๋ ํธํจ. ์ด ํฌ์คํ ์ RxDataSources ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋(?)๋ฅผ ์ต๋ํ ๊ธฐ๋กํด ๋๋ ค๊ณ ํจ. ํน์ง: 1. ์น์ ๋ง๋ค ๋ค๋ฅธ ์ ์ ์ ์ฉ 2. tableView๋ฅผ ํ์ฉํ์ฌ ๋์ ๋์ด๋ฅผ ๊ตฌํํจ. 3. ReactorKit + RxDataSource 4. cellReactor์ initialState์ ๊ฐ์ Model๋ก ์ด๊ธฐํ ๐ฟ ๊ฒฐ๊ณผ๋ฌผ UI ๐ฟ โ ์ ์ฒด ์ฝ๋ โ Step 1. ๋ชจ๋ธ์ ์ ์ํ๊ธฐ..
Let's study Combine! (feat. SwiftUI) SwiftUI Combine ๊ณต๋ถ โ ์ ํ ๊ณต์ ๋ฌธ์๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์์ต๋๋ค. https://developer.apple.com/documentation/combine Apple Developer Documentation developer.apple.com โ Combine์ด๋? ์ด๋ฒคํธ ์ฒ๋ฆฌ ์คํผ๋ ์ดํฐ๋ค์ ๊ฒฐํฉํจ์ผ๋ก์จ ๋น๋๊ธฐ ์ด๋ฒคํธ์ ํธ๋ค๋ง์ ์ฌ์ฉ์๊ฐ ๋ค๋ฃน๋๋ค! ์กฐ๊ธ ๋ ์ฝ๊ฒ ๋งํด๋ณด์๋ฉด Combine ํ๋ ์์ํฌ๋ ๊ฒฐ๊ตญ์ ์๊ฐ์ ๋ฐ๋ผ ๊ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด SwiftUI API๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ์ ๋ฐฉ์ถํ๋ Publisher์ ๊ฐ์ ์์ ํ๋ Subscriber๋ฅผ ํตํด ์ฒ๋ฆฌํฉ๋๋ค. RxSwift๋ฅผ ๊ณต๋ถํ๋ค๋ฉด ๋์ฑ ์ฝ์ต๋๋ค. โ Combine์ ๊ณต..
Signal๊ณผ emit ์ด๋ฒ์๋ Signal๊ณผ Emit์ ๋ํด์ ์์๋ณด์. ๋ค๋ฅธ ์ฌ๋์ Rx ์ฝ๋๋ฅผ ๋ฆฌ๋ทฐํ๊ณ ์๋๋ฐ Signal๊ณผ emit์ด ์๋๊ฑฐ์ ์ฐพ์๋ณด๋๊น Driver์ ๋น์ทํ๊ณ , Signal์ ์ ์ฌ์ฉํ์ง ์์์ง๋ง, ์ฝ๋๋ฅผ ์ ๋๋ก ์ดํดํ๋ ค๋ฉด ์ ๋ฆฌ๊ฐ ํ์ํ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํด์ ์ ๋ฆฌ ใฑใฑ โ Signal vs Driver ๐ ๊ณตํต์ - error๋ฅผ ๋ฐฉ์ถํ์ง ์๋๋ค. - ๋ฉ์ธ ์ค๋ ๋์์ ์๋ํ๋ค. ๐ ์ฐจ์ด์ - ๊ทธ๋ฆผ์์ ๋ณด๋ค์ํผ Driver๋ subํ ๋ replay๋ฅผ ํตํด emit์ด ์ผ์ด๋์ง๋ง Signal์ subํ ๋ replay๋ฅผ ํ์ง ์๋๋ค. โ ๊ทธ๋ ๋ค๋ฉด Signal์ ์ฃผ๋ก ์ด๋จ๋ ์ฌ์ฉํ ๊น? Signal์ replay๋๋ฉด ๋ฌธ์ ๊ฐ ์๋ ์คํธ๋ฆผ์ ์ฌ์ฉํ๋ฉด ๋๊ฒ ๋ค. ์ฌ๋ฌ ์ฝ๋๋ฅผ ์ดํด๋ณด๋๋ฐ ์ฃผ๋ก viewM..
โ ์ด๋ฒ ์๊ฐ์๋ extension Reactive์ ๋ํด์ ์์๋ณผ ์์ ์ด์ผ. ์ฐ๋ฆฌ๊ฐ ์ค์นํ RxSwfit ์์๋ Reactive.swift ํ์ผ์ด ์๋๋ฐ, custom point๋ก ์ฌ์ฉํ๋ผ๊ณ ํ๋ค. ๐ Reactive.swift Use `Reactive` proxy as customization point for constrained protocol extensions. General pattern would be: // 1. Extend Reactive protocol with constrain on Base // Read as: Reactive Extension where Base is a SomeType extension Reactive where Base: SomeType { // 2. Put ..
Ch13. ๐ฆ Intermediate RxCocoa โ ๋ด๊ฐ ๋์์๋ค! ์์ ์ rx๋ฅผ ์ฒ์ ๊ณต๋ถํ ๋๋ ์ด ๋ถ๋ถ ํ๋๋ ์ดํด ์๊ฐ์ ์๋ ์ฌ์ง์ฒ๋ผ ํด๋๊ณ ์คํตํ์๋๋ฐ, ์ด์ ๋ ๋ค ์ดํดํด์ ํฌ์คํ ํ๋ฌ ์ด! โ [APP UI] โ CLLocationManager + Rx import Foundation import CoreLocation import RxSwift import RxCocoa extension CLLocationManager: HasDelegate { public typealias Delegate = CLLocationManagerDelegate } class RxCLLocationManagerDelegateProxy:DelegateProxy, DelegateProxyType, CLLocat..