RxSwift는Observable과Observer의 상호작용을 중심으로 작동합니다
RxSwift , RxCocoa 의 역할
💡
Observable과Observer간의 상호작용은RxSwift가 담당하지만. 데이터 바인딩과 UI 관련 처리에는RxCocoa가 주로 사용된다.
Observable은 데이터를 방출(emit)하는 스트림
시간에 따라 이벤트를 생성하고, 이를 구독(subscribe)하는 Observer가 해당 이벤트를 처리
Observable 생성 예제
let observable = Observable.just("Hello, RxSwift!")
observable.subscribe(onNext: { value in
print(value) // "Hello, RxSwift!"
}).disposed(by: disposeBag)
let observable = Observable.of(1, 2, 3)
observable.subscribe(onNext: { value in
print(value) // 1, 2, 3
}).disposed(by: disposeBag)
let observable = Observable.from([1, 2, 3])
observable.subscribe(onNext: { value in
print(value) // 1, 2, 3
}).disposed(by: disposeBag)
let observable = Observable<String>.create { observer in
observer.onNext("First Event")
observer.onCompleted()
return Disposables.create()
}
observable.subscribe(onNext: { value in
print(value) // "First Event"
}).disposed(by: disposeBag)
Observable의 데이터를 변환하거나 필터링하고, 여러 스트림을 결합하는 데 사용
작업이 실행될 스레드 관리
RxSwift에서 Scheduler는 GCD(Grand Central Dispatch)의 추상화로 볼 수 있으면 작업의 실행 컨텍스트를 정의