본문 바로가기

# 02/Swift

[Swift] RxSwift

반응형

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