[RxSwift] Operator(3) - Combining
2023. 1. 8. 19:12
iOS/RxSwift
이번 포스팅에서는 sequence들을 모으고, 여러 sequence내의 데이터들을 병합하는 방법에 대해 알아보자. startWith(_:) subscriber가 Observable을 구독하고, 요소를 방출받을 때 초기값을 지정해 주는 연산자이다. Observable의 타입과 초기값의 타입이 같아야 한다. let observable = Observable.of("A", "B", "C") observable .startWith("alphabet will start to emit") .subscribe( onNext: { print($0) } ) .disposed(by: disposBag) /* prints: alphabet will start to emit A B C */ concat(_:) concat은 ..
[RxSwift] Operator(2) - Transforming
2022. 12. 27. 18:35
iOS/RxSwift
이번 포스팅에서 살펴볼 연산자는 Observable을 통해 방출되는 item들을 변형해주는 연산자에 대해 알아보자. toArray onCompleted 이벤트 전까지, next 이벤트를 통해 전달된 데이터를 배열로 묶어 한번에 방출한다. toArray() 연산자를 거치게 되면, Single 타입으로 바뀌게 된다. Single 타입은 success, failture이벤트만 전달하기 때문에, subscribe 메서드에서 onCompleted, onNext 가 아닌 onSuccess, onFailure를 통해 이벤트를 받는다. let publish = PublishSubject() publish .toArray() // Single 타입으로 리턴됨. .subscribe( onSuccess: { print($0..
[RxSwift] Operator(1) - Filtering
2022. 12. 25. 15:16
iOS/RxSwift
이번 포스팅에서는 RxSwift의 Operator중에서 Filtering에 관련된 Operator들에 대해 알아보자. Filtering Operator를 통해 next 이벤트를 통해 받는 데이터를 선택적으로 취할 수 있다. Ignoreing Operators ignoreElements() 마블 다이어그램을 보면 알 수 있듯이, next를 통해 전달된 모든 데이터를 무시한다. 여기서 주의할 점은 next를 통해 들어온 이벤트만 무시하고, completed, error 이벤트들은 정상적으로 전달되어 스트림이 끊기게 된다. //Cold Observable의 경우 func observable() -> Observable { return Observable.create { observer in observer.o..
[RxSwift] Observable(2) - Creating Observable
2022. 11. 28. 00:21
iOS/RxSwift
이번 포스팅에는 Observable을 생성하는 Operator 몇 가지에 대해 알아보자! Marble Diagram Operator를 이해하기 앞서, 이 marble diagram에 대해 알 필요가 있다. 실제 ReactiveX에 들어가서 여러 Operator들을 보게 되면, Operator들의 동작을 Marble Diagram을 통해 표현한다. .just() 우선, marble diagram 부터 살펴보자 just 연산자는 marble diagram으로 이해해보면, 데이터가 들어와서(빨간 구슬), Just Operator를 거치게 되면, 데이터를(빨간 구슬)을 방출하는 Observable을 생성하고, 바로 Completed된다. let observable = Observable.just(1) //Obs..