반응형
RxSwift
Every Observable instance is just a sequence
구성 요소
- Observable
- Operator - 연산자/결과 출력/다양한 값으로 변환 가능
- Scheduler - 커스텀 할 일 거의 없다고.
Observable - 관찰자
Observable<T>
- Rx 코드의 기반
- T 형태의 데이터 snapshot 을 ‘전달’ 할 수 있는 일련의 이벤트를 비동기적으로 생성하는 기능
- 하나 이상의 observers가 실시간으로 어떤 이벤트에 반응
- 세 가지 유형의 이벤트만 방출
enum Event<Element> {
case next(Element) // next element of a sequence
case error(Swift.Error) // sequence failed with error
case completed // sequence terminated successfully
}
// Finite Observable - 완료가 있음.
Network.download(file: "https://www...")
.subscribe(onNext: { data in
// 임시 파일에 데이터 추가
},
onError: { error in
// 사용자에게 에러 표현
},
onCompleted: {
// 다운로드 된 파일 사용
})
// Infinite Observable
// - 무한하게 관찰 가능한 sequence 예를 들어 기기의 가로나 세로로 변경하는 것을 관찰
UIDevice.rx.orientation
.subscribe(onNext: { current in
switch current {
case .landscape: // 가로모드 배치
case .portrait: // 세로모드 배치
}
})
Operator - 연산자
UIDevice.rx.orientation
.filter { value in
return value != .landscape // 세로모드만 지원
}
.map { _ in
return "세로로만 볼거에요!"
}
.subscribe(onNext: { string in
showAlert(text: string)
})
Scheduler
swift 에서 DispatchQueue 와 같다.
반응형
'# 02 > Swift' 카테고리의 다른 글
[Swift] 기초 입문 Study (0) | 2023.07.21 |
---|---|
[Swift] DispatchQueue / Serial / Concurrent (0) | 2023.01.11 |
[Swift] DFS/BFS (0) | 2022.12.18 |
[Swift] MaxHeap (0) | 2022.12.12 |
[Swift] MinHeap (0) | 2022.12.12 |