👨🏻‍💻iOS 공부/RxSwift

    [RxSwift] Operators - deferred

    Creating 카테고리에 속하는 deferred에 대해서 알아볼 것이다. 공식문서에는 defer라고 되어있지만, RxSwift에서는 deferred로 사용한다. deferred 1. 정의 defer라는 단어의 뜻처럼 옵저버블의 생성을 "지연"하는 역할을 한다. deferred는 옵저버가 구독하기 전까지 옵저버블을 생성하지 않도록 하며, 구독 이후에는 각 옵저버 별로 새로운 옵저버블을 생성해준다. 2. 구현 public static func deferred(_ observableFactory: @escaping () throws -> Observable) -> Observable { Deferred(observableFactory: observableFactory) } 클로저를 통해 옵저블을 생성해주는데..

    [RxSwift] Operators - Interval, timer

    Creating에 속하는 Interval operator에 대해서 알아볼 것이다. Interval 1. 정의 주어진 시간 간격을 두고 주기마다, emit되는 옵저버블을 생성한다. Interval 연산자의 경우 completed 되지 않고, 무한한 시퀀스를 생성한다. 즉, 직접 dispose 시키지 않는다면 구독 이후에 계속 반복되는 것이다! 2. 구현 Observables의 Timer에서 구현 내용을 살펴볼 수 있다. public static func interval(_ period: RxTimeInterval, scheduler: SchedulerType) -> Observable { return Timer( dueTime: period, period: period, scheduler: schedule..

    [RxSwift] Operators - empty, never, throw

    Creating에 속하는 empty, never, throw에 대해 알아볼 것이다. Empty 1. 정의 empty는 아무 것도 emit하지 않는 옵저버블을 생성하지만 정상적으로 종료시킨다. 즉, 그냥 빈 값으로 종료만 시키는 것! 2. 구현부 public static func empty() -> Observable { EmptyProducer() } final private class EmptyProducer: Producer { override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { observer.on(.completed) return Disposables.create() } } Em..

    [RxSwift] Operators - from, of

    Creating 카테고리에 속하는 From과 of에 대해서 알아볼 것이다. From 1. 정의 From은 다양한 객체나 데이터 타입들을 옵저버블로 변환시켜준다. 즉, 배열의 원소들을 각각 옵저버블로 반환해주기 때문에, 매번 필요한 데이터를 옵저버블로 생성하기 보다는 From으로 넘겨주어 옵저버블로 변환할 수 있다! 약간 for문 처럼 iterative하게 값들을 내려준다는 점을 기억하자! 2. 구현 // from public static func from(_ array: [Element], scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { ObservableSequence(elements: array, ..

    [RxSwift] Operators - Create

    RxSwift의 Operator들 중에서 observable을 생성하는 역할을 하는 operator를 알아볼 것이다! Create 1. 정의 직접 observable sequence를 생성하는 역할을 한다. 2. 구현 먼저 create의 구현부를 살펴보자. extension ObservableType { public static func create(_ subscribe: @escaping (AnyObserver) -> Disposable) -> Observable { AnonymousObservable(subscribe) } } 우선 파라미터를 보면, "AnyObserver -> Disposable"타입의 클로저를 넘겨주어야 정상적으로 옵져버블을 생성할 수 있는 것을 볼 수 있다. 이 클로저는 옵저버들..

    [RxSwift] RxSwift 개념 + 이를 활용한 동적인 로그인 입력창 만들기

    그 유명한 RxSwift... 귀에 딱지가 앉도록 RxSwift에 대한 말들을 들어왔을 것이다. 실제로도 채용 공고 상에 자격요건/우대사항에 항상 존재하고 있는 것을 알 수 있다. 대충 iOS와 관련된 채용 공고만 검색해봐도 Reactive, RxSwift라는 단어는 빠지지않고 등장하고 있는 걸 알 수 있다. 이에 RxSwift 강의로(?) 유명하신 곰튀김님의 시즌0 RxSwift 강의를 듣고 내용을 정리해보겠습니다! (그저 빛...🐻) 강의를 기반으로 조금 더 실험할 수 있는 부분은 추가하면서 응용도 해보고 이해했는지 확인도 해볼 예정입니다. Rx 홈페이지 둘러보기 우선 Rx(Reactive Extention) 공식사이트를 살펴보자. 상당히 많은 언어에 대해서 Rx를 제공하고 있는 모습을 볼 수 있다...