
RxSwift에는 여러 Operator가 있습니다. 그 중 Filtering Operators에 대해 알아보겠습니다! Filtering Operator를 사용하면 구독자가 원하는 요소만 .next이벤트를 통해 수신할 수 있습니다. Ignoring Operators IgnoreElements로 시작하는 RxSwift의 Filtering Operator를 살펴보겠습니다. ignoreElements() 아래 다이어그램과 같이 ignoreElements는 .next 이벤트 요소를 무시합니다. 하지만 .completed, .error 이벤트와 같은 중지 이벤트는 허용합니다. let strikes = PublishSubject() let disposeBag = DisposeBag() strikes .ignoreEl..

Relay는 Subject를 랩핑하고 있는 클래스입니다. RxSwift6 에서는 세 가지의 Relay를 제공합니다. RxSwift에서 제공하는 클래스인 Subject와 다르게 Relay는 RxCocoa에서 제공하기 때문에 사용하려면 RxCocoa를 import 해야합니다. Relay는 Subject와 같이 이벤트를 받아서 구독자에게 전달할 수 있다는 공통점을 가지고 있습니다. 하지만 Relay는 Subject와 달리 Completed와 Error 이벤트를 사용할 수 없고 Next 이벤트만 사용할 수 있다는 차이점이 있습니다. Relay는 Dispose 되기 전까지 계속 작동하는 특징 때문에 주로 UI event 처리를 담당합니다. Subject에서는 onNext 메소드를 통해 event를 전달했지만 Re..

이번엔 Subject에 대해 알아보겠습니다. RxSwift의 Subject는 Observable과 Observer의 역할을 모두 수행할 수 있습니다. 즉, 우리는 Subject를 통해서 event를 받을 수도 있고 event를 전달할 수도 있습니다. RxSwift에는 4가지의 Subject 유형이 있습니다. - PublishSubject : 비어있는 상태로 생성되고 그 후 전달되는 event들을 모두 구독자에게 전달 - BehaviorSubject : 초기 값을 가지고 생성되며, 그 후 전달되는 event가 있으면 그중 마지막 event를 (없으면 초기 값)을 구독자에게 전달 - ReplaySubject : 생성될 때 버퍼의 사이즈를 지정함. 버퍼 사이즈만큼의 최신 event 들을 저장하고 구독자에게 이..

Rx에서 구독중인 시퀀스가 Error나 Completed 이벤트를 방출하지 않으면 계속 Next 이벤트를 수행하게 됩니다. Next 이벤트를 수행하기 위한 자원이 계속 할당되어 있다면 이는 메모리 누수를 발생시키게 됩니다. 그래서 원하는 시점에 시퀀스의 실행을 취소하고 할당된 모든 리소스를 해제하고 종료 시키는 Disposing 이 필요합니다. Disposing은 Dispose, DisposeBag을 통해 수행할 수 있습니다. Dispose Subscription에서 dispose를 호출하면 시퀀스를 종료시키고 자원을 해제할 수 있습니다. let subscription1 = Observable.from([1, 2, 3]) .subscribe(onNext: { elem in print("Next", ele..

Infallible? Infallible은 다른 형태의 Observable입니다. Observable이기때문에 이벤트를 방출합니다. 하지만 Next와 Completed만을 방출하고 Error는 방출하지 않음을 보장합니다. Infallible의 구현체를 살펴보겠습니다. 구현체에도 주석으로 "Error calback is not expose because 'Infallible' can't error out."라고 명시되어 있습니다. public func subscribe( with object: Object, onNext: ((Object, Element) -> Void)? = nil, onCompleted: ((Object) -> Void)? = nil, onDisposed: ((Object) -> Voi..

Observables? RxSwift 공식 문서에서 Observables aka Sequences라고 소개하고 있습니다. 이 말은 RxSwift에서 Observable은 Sequence, Observable Sequence와 같은 의미로 사용한다는 뜻입니다. "Every Observable sequence is just a sequence. The key advantage for an Observable VS Swift's Sequence is that it can also receive elements asynchronously. This is the kernel of RxSwift, documentation from here is about ways that we expand on that idea...

공부해야겠단 생각한 지는 꽤 오래되었지만 제대로 진도를 나가지 못했던 (수학의 정석 집합 부분만 너덜한 것처럼..) RxSwift를 제대로 공부하고 정리해보려고 합니다! 먼저 RxSwift란, Swift로 구현되어 iOS 앱 개발 등에 활용할 수 있는 Reactive Extensions 표준입니다! 그럼 ReactiveX는 뭘까요? ReactiveX 공식 홈페이지에서 "ReactiveX is a library for composing asynchronous and event-based programs by using observable sequences. " ReactiveX는 관찰 가능한 시퀀스를 사용하여 비동기 및 이벤트 기반 프로그램을 구성하기 위한 라이브러리라고 설명합니다. 즉, RxSwift는 ..

오늘은 Swift Generic의 개념과 기본적인 활용법에 대해 정리해보겠습니다. 문서에 따르면 'Generic을 사용하면 정의한 요구 사항에 따라 모든 유형에서 작동할 수 있는 유연하고 재사용 가능한 함수 및 유형을 작성할 수 있습니다. 중복을 피하고 그 의도를 명확하고 추상적인 방식으로 표현하는 코드를 작성할 수 있습니다.' 라고 정의되어 있습니다. 그리고 Swift의 가장 강력한 기능 중 하나이고, Swift 표준 라이브러리의 대부분은 Generic으로 만들어졌다고 합니다. 우리가 인지하지 못한 부분에서도 제네릭을 사용하고 있는데, 예를 들어 Swift의 Array, Dictionary 유형은 모두 Generic Collection이라고 합니다. 아래와 같이 제네릭을 활용하지 않고 두 Int 변수를..
- Total
- Today
- Yesterday
- Lottie
- 프로그래머스
- disposeBag
- Reactivex
- boj
- blendshape
- ios
- mergesort
- 카카오인턴십
- 코코아팟
- blendshapes
- 백준온라인저지
- C++
- 백준
- SwiftUI
- GraphDB
- ARKit
- rxswift
- DispatchQueue
- cocoapods
- SWEA
- coreml
- Neo4j
- Kotlin
- 안드로이드
- Swift
- 알고리즘
- rxswift6
- bounds
- infallible
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |