RxSwift
-
RxSwift - combineLatest(), zip() 에 대해서 알아보자.Ray Wenderlich/RxSwift 2018. 7. 13. 02:41
Ch9. Combining operators p.186 - p.190 combineLatest그림을 보고 combineLatest가 어떤 기능을 할 지, 먼저 추측해보자.셜록급의 추리가 아니더라도, 어느정도 끄덕하게 될 만큼 직관적이다.두 개의 시퀀스가 combineLatest를 만나 하나의 시퀀스가 되었다.이 합쳐진 시퀀스는 서브 시퀀스(즉, left와 right)에서 이벤트가 발생할 때마다, 이벤트를 발생시킨다.합쳐진 시퀀스는 두 서브 시퀀스의 Element를 조합하여 새로운 Element를 전달한다. 첫 번째 예제우선 두 개의 시퀀스를 준비해보자.let left = PublishSubject() let right = PublishSubject() combineLatest를 사용하여 하나로 합쳐진 시..
-
RxSwift - merge()에 대해서 알아보자.Ray Wenderlich/RxSwift 2018. 7. 6. 02:23
Ch9. Combining Operators p.184 - p.186 merge()RxSwift에서 시퀀스를 합쳐주는 operator는 다양하다. 그 중, merge를 이용해 쉽게 접근해보자. 아래 그림을 보고, merge가 어떤 역할을 하는지 한번 짐작해보자. 어떤 역할을 하는지, 코드를 통해서 알아보자. (아래는 이미지입니다. 텍스트로 작성한 코드는 본문 최하단에 첨부)1. PublishSubject를 두 개 만들었다.2. Observable의 Observable을 만든다. source의 타입은 Observsble이다.3. merge()를 사용했다. merge()의 리턴 값을 subscribe하고 있다.4. leftValues에는 독일의 도시가, rightValues에는 스페인의 도시가 들어있다. l..
-
RxSwift - startWith(_:), concat(_:), concatMap(_:)에 대해서 알아보자.Ray Wenderlich/RxSwift 2018. 7. 5. 00:38
Ch9. Combining Operators p.179 - p.183 startWith(_:)Observable시퀀스 앞에 다른 값을 추가해주는 기능을 한다.그림과 코드를 보면 너무나도 간단하다!! (2, 3, 4)라는 시퀀스가 있고, 맨 앞에 1을 추가하고 싶다.이를 해결하기 위해 startWith(1)을 사용해보자.let numbers = Observable.of(2, 3, 4) let observable = numbers.startWith(1)observable.subscribe(onNext: { value in print(value) }) 사족을 다는 것보다, 이것으로 설명을 마치는게 제일 깔끔해보인다. concat(_:)결론부터 말하자면, startWith(_:)와 굉장히 흡사하다.startWi..
-
RxSwift - materialize, dematerialize에 대해서 알아보자.Ray Wenderlich/RxSwift 2018. 6. 13. 23:45
Observing events p.151 - p155 flatMap(링크), flatMapLatest(링크)에서 이어지는 포스트입니다. 도입부 해석을 잘 못하겠음.. 원문 첨부하고 코드로 이해하기. There may be times when you want to convert an observable into an observable of its events. One typical scenario where this is useful is when you do not have control over an observable that has observable properties, and you want to handle error events to avoid terminating outer sequenc..
-
RxSwift - flatMapLatest에 대해서 알아보자.Ray Wenderlich/RxSwift 2018. 6. 12. 23:35
Ch7. Transforming Operators p.146 - p.151 지난 포스트에서는 flatMap에 대해서 알아보았다. (flatMap포스트를 보지 않으면 아래 포스트를 이해하기 어려울 수 있습니다. flatMap은 링크) 이번엔 flatMap의 친구인 flatMapLatest에 대해서 알아보자.flatMapLatest는 두 개의 Operator가 합쳐져 있다고 볼 수 있다.flatMap과 switchLatest(뒤에 나올 예정) switchLatest에 대해서는 나중에 다루겠지만, 간단히 알아보도록 하자.switchLatest 또한 Observable in observable을 다루는데, 가장 최근에 추가된 시퀀스의 inner observable만 넘겨준다.(원문: switchLatest wi..
-
RxSwift - flatMap에 대해서 알아보자.Ray Wenderlich/RxSwift 2018. 6. 2. 22:54
Ch7. Transforming Operators p.146 - p.151 Transforming inner observablesinner observable이라 함은 Observable안에 있는 Observable을 말한다.inner Observable을 다루기 위해 필요한 flatMap에 대해서 알아보도록 하자. 문서에서는 flatMap을 이렇게 설명하고 있다.Observable시퀀스의 element당 한 개의 새로운 Observable 시퀀스를 생성한다. 이렇게 생성된 여러개의 새로운 시퀀스를 하나의 시퀀스로 합쳐준다.(원문: Projects each element of an observable sequence to an observable sequence and merges the resultin..
-
RxSwift - throttle에 대해서 알아보자.Ray Wenderlich/RxSwift 2018. 5. 10. 02:10
Ch6. Filtering Operators in Practice p.139 - p.141 이런 경우를 생각해보자. 검색창에 텍스트를 입력받는다. 텍스트가 입력될 때마다 검색어 자동완성을 보여주기 위해, API요청을 해야한다. 예를 들어, apple을 입력한다고 해보자. a를 입력할 때, APIp를 입력할 때, APIp를 입력할 때, APIl를 입력할 때, APIe를 입력할 때, API총 다섯 번 호출된다. 이거.. 괜찮나?? apple을 빠르게 입력한다면 apple이 모두 입력된 뒤에 한 번만 호출되면 좋겠다.app까지 타이핑되고 잠시 머무른다면, 그 때는 "app"이란 텍스트로 API를 호출해도 무방할 것이다. 이런 경우에 사용할 수 있는 오퍼레이터가 바로 throttle(:_scheduler)이다...