본문 바로가기

RxSwift

(6)
[RxSwift] Subject - ObserverType Encapsulation Subject는 RxSwift에서 빼놓을 수 없는 타입으로, 다양한 부분에서 활용이 가능합니다. Subject에 대한 개념적인 내용이 필요하시다면, 이전 포스팅 참고하시면 됩니다. [RxSwift] - [RxSwift] Subject에 대한 개념 [RxSwift] Subject에 대한 개념 Subject는 RxSwift를 사용하여 프로젝트를 진행할 경우 많이 접하게 될 항목들입니다. 여기에서는 Subject 자체에 대한 설명만 하려 합니다. Subject는 PublishSubject, BehaviorSubject, ReplaySubject세 가지.. ntomios.tistory.com 많이 사용하면서 개인적으로 필요하다고 느꼈던 부분은, ObserverType으로써의 기능을 숨기는 것입니다. 위 메서드를..
[RxSwift] 토이 프로젝트를 통해 알아보는 RxSwift x MVVM 위와 같은 토이 프로젝트를 만들어 보면서, RxSwift 활용과 MVVM을 적용하는 방법에 대해서 다루고자 합니다. 이 토이 프로젝트는 실제 네트워크 통신을 하지 않았습니다, 대신 request시 global Queue에서 작업을 진행하고 완료되면 main Queue로 변환하여 결과 데이터를 넘겨주도록 진행함으로써 네트워크 통신과 유사한 환경을 만들고자 했습니다. DataModel의 경우 name, age, value 값을 가지고 있으며, 테스트를 위해 다음과 같이 데이터를 설정했습니다. name은 구분하기 쉽게 필터값 age는 20~49의 랜덤 값 value는 아이템 순서 값 요구 사항 (위 시연 영상 참고) 리스트 형식이며, 최신순, 오래된 순, 인기순으로 정렬할 수 있다. (필터) 리스트는 한 페이..
[RxSwift] Subject에 대한 개념 Subject는 RxSwift를 사용하여 프로젝트를 진행할 경우 많이 접하게 될 항목들입니다. 여기에서는 Subject 자체에 대한 설명만 하려 합니다. Subject는 PublishSubject, BehaviorSubject, ReplaySubject세 가지 종류가 있으며, 이에 대한 차이점은 ReactiveX 공식 사이트를 참고하시면 좋을 것 같습니다. ReactiveX - Subject If you have a Subject and you want to pass it along to some other agent without exposing its Subscriber interface, you can mask it by calling its asObservable method, which will..
[RxSwift] Single Trait - wrapping network request Single Trait RxSwift에서는 Single Trait 을 지원합니다. Single은 Observable의 한 형태이며, 한 가지 값 또는 에러를 발행합니다. 따라서 구독 시, success와 error 두 가지의 이벤트에 처리를 할 수 있습니다. 대표적인 예로는 네트워크 요청 구독을 위해 request를 Single로 wrapping 하여 사용할 수 있습니다. 위의 예제는 기존 프로젝트에서 Alamofire를 사용하여 Request 하는 로직을 Single로 Wrapping 한 코드입니다. 네트워크 요청은 한 번의 API 콜을 통해 성공/실패 두 개의 이벤트만을 필요로 하기 때문에 Single을 사용하는 좋은 예제입니다. Single을 사용하면 명시적으로 하나의 성공 혹은 실패 여부만을 관리..
[RxSwift] 기초(Observable, Subscribe, Disposable, DisposeBag) Observable Observable - 관찰 가능한, 관찰할 수 있는 단어의 뜻이 직관적이라 이해하기 쉽다고 생각합니다. ReactiveX 공식 사이트에는 다음과 같이 나와 있습니다. ReacriveX에서 Observer는 Observable을 구독한다. Observable이 배출하는 하나 또는 연속된 항목에 Observer는 반응한다. 정리하면 다음과 같습니다. ReactiveX는 Observable이라는 객체를 통해 값을 배출할 수 있고, Observable에서 배출해주는 값을 관찰하고 이에 반응합니다. Observable에는 행동 규칙이 있습니다. 바로 next, error, complete 입니다. 각각 행동에 대해 알아보겠습니다. next Observable은 하나 또는 여러 개의 항목을 발..
[RxSwift] Using Single with share [ Single ] RxSwift에서는 Single Trait 을 지원합니다. Single은 Observable의 한 형태이며, 한 가지 값 또는 에러를 발행합니다. 따라서 구독시, success와 error 두 가지의 이벤트에 처리를 할 수 있습니다. 대표적인 예로는 네트워크 요청 구독을 위해 request를 Single로 wrapping 하여 사용할 수 있습니다. [ Share ] 또한 RxSwift에서는 share 를 제공합니다. share는 생성된 Observable 시퀀스를 공유하기 위해 사용되는 개념입니다. 처음 Rx를 시작하는 경우, 자주 실수하는 부분이 있습니다. 바로 subscribe 할 때마다, 새로운 시퀀스가 생성되는 것을 모르는 경우가 많은 것입니다. 따라서 위의 경우, 실제로 같은..