상세 컨텐츠

본문 제목

RxSwift. Ch 4. Observables & Subjects in Practice

TIL/RxSwift

by box-jeon 2020. 4. 19. 16:46

본문

사용자가 선택한 이미지들을 collage로 만들어주는 Combinestagram이라는 앱을 주고, Rx 기반으로 변경하는 실습을 진행합니다. Combine이 발표되기 한참 전에 나온 책일텐데 아이러니네요.

RxSwift traits in practice

Single

.success(element) 이벤트 또는 .error(error) 이벤트를 방출한 후 dispose 됩니다. Observable.asSingle()로도 생성 가능하며, 파일 저장이나 다운로드처럼 비동기로 동작할 필요가 있는 단발성 이벤트 처리에 주로 사용됩니다.

Maybe

.success(element) 이벤트 또는 .completed 이벤트 또는 .error(error) 이벤트를 방출한 후 dispose 됩니다. Observable.asMaybe()로도 생성 가능합니다. 사용 예로, UserDefaults 같은 곳에 저장해둔 custom photo album Id를 이용해 open(albumId:)를 호출할 경우

- 성공할 경우, .completed를

- albumId에 해당하는 custom photo album이 존재하지 않아 새로 생성한 경우, .success(newAlbumId)를

- 실패할 경우, .error(error)를

방출합니다.

Completable

 .completed 이벤트 또는 .error(error) 이벤트를 방출한 후 dispose 됩니다. 성공, 실패 여부만이 의미있는 상황에서 다음과 같은 사용이 가능합니다.

// func saveDocument() -> Completable
saveDocument()
    .andThen(Observable.from(createMessage)
    .subscribe(onNext: { message in
        message.display()
    }, onError: { error in
        alert(error.localizedDescription)
    })

 

'TIL > RxSwift' 카테고리의 다른 글

RxSwift. Ch 6. Filtering Operators in Practice.  (0) 2020.04.25
RxSwift. Ch 5. Filtering Operators  (0) 2020.04.20
RxSwift. Ch 3. Subjects  (0) 2020.04.18
RxSwift. Ch 2. Observables  (0) 2020.01.01
RxSwift. Ch.1: Hello, RxSwift!  (0) 2019.12.28

관련글 더보기

댓글 영역