RxSwift 6

RxFlow

RxFlow란 Reactive Flow Coordinator패턴을 기반으로 하는 iOS 네비게이션 프레임워크 Coordinator패턴을 RxSwift에 녹여낸 라이브러리 RxFlow의 장점 스토리보드를 unit단위로 분리하여 UIViewController의 재사용 가능 네비게이션 흐름에 따라 다양한 방식으로 UIViewController를 나타낼 수 있음 DI(의존성 주입)을 쉽게 구현 가능 UIViewController로부터의 모든 네비게이션 메커니즘 제거 반응형 프로그래밍 사용 증대 모든 네비게이션 케이스의 주요한 부분을 선언적으로 표현 가능 어플리케이션을 논리적인 블록으로 분리 Coordinator패턴과의 차이 Coordinator패턴의 특징 UIViewController부터의 네비게이션 코드 제거..

RxSwift 2022.03.30

RxViewController

RxViewController UIViewController를 생명주기를 RxSwift와 결합해 사용할 수 있는 라이브러리 기존 viewWillAppear, viewDidLoad등 UIViewController의 Lifycyle함수를 쉽게 사용하는 syntax sugar devxoul님이 만드신 오픈소스 라이브러리 RxViewController 구현부 RxViewController가 어떻게 구현되어 있는지 확인해보자 #if os(iOS) || os(tvOS) import UIKit import RxCocoa import RxSwift public extension Reactive where Base: UIViewController { var viewDidLoad: ControlEvent { let sou..

RxSwift 2022.03.03

Operator

Operator Operator를 통해 발행된 이벤트들을 조건을 걸어 원하는 이벤트로 전달 가능 Swift Collection의 filter와 비슷한 개념 Ignoring Operator Filter Bool을 리턴하는 클로저를 받아 Observable Event확인 클로저안 조건을 만족하는 이벤트만 방출 let disposeBag = DisposeBag() Observable.of(1, 2, 3) .filter { $0 < 3 } .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) // 1 // 2 ignoreElements .next 이벤트를 무시 종료 이벤트는 전달(.error, .complete) 시퀀스의 종료 시점만 확인 가능 let dis..

RxSwift 2022.02.09

Subject

Subject Observable(이벤트 발행)과 Observer(구독)모두 동작가능한 타입 동적으로 값을 발행 가능 발행하는 동시에 수동으로 값을 관찰가능 Observable 및 관찰 가능한 ObserverType을 채택하고 있다. MVVM구조에서 User Interaction에 의한 이벤트를 viewModel의 Subject가 구독하고, 구독을 통해 발행된 값을 View가 구독함으로 써 MVVM동작 연결 가능 Observable과 Subject의 차이 Subject는 Observable과 Observer역할을 모두가능 Observable은 Unicast방식으로 observer하나만을 subscribe Subject은 Multicast방식(여러 Observer에게 이벤트 발행 가능) 네트워크 요청 Ob..

RxSwift 2022.02.08

Observable

Observable Observable이란 여러 이벤트들을 생성(emit) 할 수 있는 대상(발행자, Publisher) Observable타입을 이용해서 관찰 가능한 흐름이 생성. 즉 Observable타입을 이용해서 관찰하고 들어온 값을 처리 Observer(구독자) Observable(발행자)를 구독하는 형태 Observe결과 이벤트 스트림을 Sequence라고도 칭함 Observable의 이벤트 next: 항목을 계속 방출하는 기능. 즉 이 이벤트를 받아서 원하는 형태로 처리. complete: 성공적으로 next이벤트가 완료되었을 때, complete 이벤트가 발생. 이벤트 발생 후 스트림 종료 error: 값을 발행하다 에러가 발생한 경우 error이벤트를 발생하고 스트림 종료 Observab..

RxSwift 2022.02.07

RxSwift란?

ReactiveX란? https://reactivex.io/ ReactiveX CROSS-PLATFORM Available for idiomatic Java, Scala, C#, C++, Clojure, JavaScript, Python, Groovy, JRuby, and others reactivex.io ReactiveX는 obsevable sequence를 사용하여 비동기 및 이벤트 기반 프로그램을 구성하기 위한 라이브러리 observer pattern을 사용하여 여러가지 기능 문제를 해결해주는 operator들을 지원 함수형 프로그래밍(FP)에 반응형 프로그래밍(Reactive Programming)이 더해져 FRP프로그래밍을 지원 RxSwift는 ReactiveX를 도입한 Swift 개발을 위한..

RxSwift 2022.02.07