반응형

RxSwift 6

6. RxSwift Relay, Signal, Driver

1. Relay Relay는 RxSwift 프레임워크가 아닌 RxCocoa에서 다루는 타입이다. Relay는 Subject와 비슷하지만 한가지 크게 다른 점이 있다. onComplete()와 onError 이벤트가 없는 것이다. 오직 onNext()이벤트만 존재하며 구독자가 Dispose 되기 전까지 종료되지 않는다. 그래서 실시간으로 UI를 변경해야할 때 Subject 대신에 Relay를 쓴다. Subject와 다른 점 onNext() 대신에 accept()을 사용하여 이벤트를 생성한다. value를 통해 마지막으로 전달된 이벤트를 확인할 수 있다. import RxCocoa let bag = DisposeBag() let publishRelay = PublishRelay() publishRelay.a..

RxSwift 2021.10.07

5. RxSwift Subject

1. Hot Observable vs Cold Observable Observable은 Hot Observable과 Cold Observable로 크게 2가지 종류로 나뉜다. Hot Observable Hot Observable은 Observable을 생성하자마자 아이템들을 방출해준다. 따라서 Observable을 생성해도 Subscribe를 하지 않았다면 Item을 방출하기 때문에 아무런 결과가 안나온다. Subscribe를 할 때 방출한 아이템부터 사용이 가능하기 때문에 Observable의 생성 시점과 Subscribe의 호출 시점이 중요하다. 마우스 이벤트, 키보드 이벤트, 시스템 이벤트에서 주로 사용된다. Cold Observable Cold Observable은 Hot Observable과 반..

RxSwift 2021.10.03

4. RxSwift Operator(2)

1. Combining Operators StartWith 이벤트를 방출하기 전 startWith의 파라미터 값 이벤트를 첫번째로 방출한다. 2개 이상 사용가능하며 마지막으로 사용한 startWith의 파라미터부터 방출한다. let bag = DisposeBag() let numbers = [1, 2, 3, 4, 5] Observable.from(numbers) .startWith(-1, 0) .startWith(-2) .subscribe { print($0) } .disposed(by: bag) // -2 // -1 // 0 // 1 // 2 // 3 // 4 // 5 예제를 보면 가장 마지막에 호출한 startWith의 파라미터인 -2부터 방출된걸 알 수 있다. Concat concat은 2개 이상의..

RxSwift 2021.09.30

3. RxSwift Oporator(1)

1. Operator란? Operator은 Observable을 생성하거나 변환해주는 도구이다. String에서 대문자를 소문자로 변환해주는 lowercased(), 배열에서 배열이 비어있는지 확인할 수 있는 isEmpty처럼 Observable에서도 다양한 연산을 쉽게 처리할 수 있도록 도와주는 것이 바로 Operator이다. 아래 ReactiveX의 링크를 보면 Operator의 종류가 다 나와 있는 것을 알 수 있는데 오늘은 가장 많이 쓰이는 Operator들을 정리할 예정이다. 나머지 Operator에 대한 내용은 아래 링크에 자세하게 나와있고 내용이 너무 없거나 간소화 되어 있는 함수들은 RxJava나 RxJS 탭에 가서 검색을 하면 더 자세히 알 수 있다. http://reactivex.io/..

RxSwift 2021.09.07

2. RxSwift Observable이란?

1. 개요 보통 RxSwift로 프로젝트를 짰다고 하면 RxSwift 프레임워크와 RxCocoa 프레임워크를 사용해서 MVVM 디자인 패턴으로 짜여진 프로젝트를 말한다. RxSwift는 코드를 새로운 데이터에 반응하며 순차적으로 처리하게 함으로써 비동기 프로그래밍을 쉽게하도록 도와준다. 한마디로 비동기 프로그래밍을 위한 프레임워크이다. RxCocoa는 RxSwift의 동반 라이브러리로써 UIKit과 Cocoa 프레임워크 기반 개발을 지원하는 모든 클래스를 보유하고 있다. 말 그대로 UI component 요소들을 RxSwift로 만든 함수와 연결시켜주는 것이다. 결론적으로는 2개의 프레임워크를 사용해야하는 것인데 이 2가지를 완벽하게 사용할려면 우선 RxSwift를 이해하는 것이 중요하다. http://..

RxSwift 2021.09.02

1. RxSwift란?

1. RxSwift Rx는 Reactive eXtensions의 줄임말로 관찰 가능한 시퀀스를 사용하여 비동기식 프로그램 및 이벤트 기반 프로그램을 구성하기위한 오픈 소스 라이브러리이다. Micorsoft 사에서 만든 라이브러리로 swift 뿐만 아니라 Java, JS, .NET 등 많은 언어로 사용할 수 있도록 만들었다. 기존의 비동기 이벤트 기반의 프로그래밍을 보다 효율적으로 사용하려고 만든 라이브러리인데, Swift에서는 언어에 기본적으로 내장되어 있는 DispatchQueue를 이용해서 비동기 함수를 짰었다. 하지만 이 함수로 작성을 하게되면 내용이 적으면 상관이 없지만 내용이 많으면 많을 수록 코드가 복잡해지고 가독성이 떨어진다는 단점이 있었다. 이 부분 때문에 RxSwift를 사람들의 관심을 ..

RxSwift 2021.08.23
반응형