RxSwift 란?
비동기로 생기는 결과값을 컴플리션 형태가 아닌 리턴값으로 나타내기 위해 쓰는 유틸리티
(URLSession 이나 Alamofire에서 completion 에 나타나는 코드들이 너무 길어서 깔끔하게 쓰고 싶었던 적이 많았을 것이다)
사용 방법에는 2가지가 있다.
1) create - 비동기로 생기는 데이터를 Observable로 감싸서 처리하는 방법
2) subscribe - Observable로 오는 데이터를 받아서 처리하는 방법
*한 번 생성된 Observable이 disposed 되면 다시 사용 불가. 새로 만들어주어야 함.
*위에처럼 RxSwift를 쓰다가 너무 길어져서 이걸 짧게 줄이고 코드를 간결하게 쓰고 싶기에 나온 애들이 SugarAPI.
SugarAPI 는 operator 들이라고 할 수 있다. 예를 들면, observeOn, map, filter 등
Observable ---> Operator ---> Subscribe
Observable에서 subscribe 로 데이터가 전달되는 중간에 데이터를 바꿔치기하는 애 = operator
subscribe의 결과로 나오는게 disposable
disposable은 평소에는 딱히 신경쓸 필요가 없다가, 명확하게 취소시키고 싶을 때 사용
Observable의 생명주기: create -> subscribe -> onNext(데이터전달)/onError -> disposed
이 때 subscribe 되는 시점부터가 실행시점임. create부터가 아님.
(만든다고 해서 실행이 아니라 urlsession 코드 떠올려보면 completion 부분 대신 subscribe 한다고 생각하면 됨)
Operator 예시
-observeOn : down stream 쓰레드를 바꾼다
-subscribeOn: up stream thread를 바꾼다
Subject: 이미 만들어진 Observable 바깥에서 데이터를 컨트롤해서 새로운 값을 만들어줄 수 있다.
(테이블뷰에 있는 튀김 여러개 order 할 때마다 10,000 + 500원 + 500원 .... 추가하는거 떠올리기)
위 요약은 아래 유튜브를 보고 정리한 내용입니다.
'iOS > RxSwift' 카테고리의 다른 글
RxSwift 간단 핵심 정리 (0) | 2023.02.18 |
---|---|
RxSwift Operator) CombineLatest (0) | 2023.02.15 |
RxSwift 제일 간단한 테이블뷰 만들기 (0) | 2023.02.14 |
RxSwift) RxCocoa 로 TableView Delegate 처리 (0) | 2023.01.13 |
RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [시즌0] (0) | 2023.01.09 |