Observable은 RxSwift에서 데이터 스트림을 나타내는 핵심 타입으로, 다양한 연산자를 활용하여 데이터를 변환하고 조작할 수 있음. 이를 통해 비동기 작업과 이벤트 기반 프로그래밍을 간편하게 구현할 수 있다
Observer
Observer는 Observable에서 발생한 이벤트를 받아서 처리하는 객체. Observer는 세 가지 이벤트를 처리할 수 있음:
.next: Observable에서 새로운 값이 방출될 때 호출.
.completed: Observable이 성공적으로 종료되었을 때 호출.
.error: Observable에서 에러가 발생했을 때 호출.
Observer 생성하기
Observer를 생성하는 가장 간단한 방법은 subscribe 메서드를 사용.
observable.subscribe(onNext: { value in
print(value)
}, onError: { error in
print(error)
}, onCompleted: {
print("Completed")
}, onDisposed: {
print("Disposed")
})
위의 코드에서 onNext, onError, onCompleted, onDisposed는 클로저로 구현된 이벤트 핸들러.
AnyObserver
AnyObserver는 Observer 프로토콜을 준수하는 타입으로, Observable에서 발생한 이벤트를 처리할 수 있음.
let observer: AnyObserver<Int> = AnyObserver { event in
switch event {
case .next(let value):
print(value)
case .error(let error):
print(error)
case .completed:
print("Completed")
}
}
Binder
Binder는 RxSwift에서 제공하는 특별한 Observer. UI 바인딩에 최적화되어 있으며, 에러 이벤트를 처리하지 않는다.
위의 코드에서 bind(to:)는 subscribe의 줄임 버전으로, onNext 이벤트만 처리.
사용자 정의 Observer 생성하기
사용자 정의 Observer를 생성하려면 ObserverType 프로토콜을 준수하는 타입을 구현해야 함
class MyObserver: ObserverType {
typealias Element = Int
func on(_ event: Event<Int>) {
switch event {
case .next(let value):
print(value)
case .error(let error):
print(error)
case .completed:
print("Completed")
}
}
}
위의 코드에서 MyObserver는 Int 타입의 이벤트를 처리하는 사용자 정의 Observer.
Observer는 Observable에서 발생한 이벤트를 처리하는 객체로, RxSwift에서 데이터 스트림을 구독하고 응답하는 역할을 한다. subscribe 메서드를 사용하거나 AnyObserver, Binder 등의 타입을 활용하여 Observer를 생성할 수 있음.
Observable의 생명주기
Observable은 세 가지 이벤트를 발생시킬 있다
.next: 새로운 값을 방출할 때 발생하는 이벤트. .completed: Observable이 성공적으로 종료되었을 때 발생하는 이벤트. .error: Observable에서 에러가 발생했을 때 발생하는 이벤트. Observable 생성하기
Observable 구독하기
Observable에서 발생한 이벤트를 받아보려면 구독(subscribe). 구독자(Observer)는 Observable에서 발생한 이벤트를 처리.
Disposable
연산자
Observable은 다양한 연산자를 제공하여 데이터 스트림을 변환하고 조작 가능. 예를 들어, map, filter, reduce 등의 연산자를 사용.
Observable은 RxSwift에서 데이터 스트림을 나타내는 핵심 타입으로, 다양한 연산자를 활용하여 데이터를 변환하고 조작할 수 있음. 이를 통해 비동기 작업과 이벤트 기반 프로그래밍을 간편하게 구현할 수 있다
Observer
Observer는 Observable에서 발생한 이벤트를 받아서 처리하는 객체. Observer는 세 가지 이벤트를 처리할 수 있음:
.next
: Observable에서 새로운 값이 방출될 때 호출..completed
: Observable이 성공적으로 종료되었을 때 호출..error
: Observable에서 에러가 발생했을 때 호출.Observer 생성하기
Observer를 생성하는 가장 간단한 방법은
subscribe
메서드를 사용.위의 코드에서
onNext
,onError
,onCompleted
,onDisposed
는 클로저로 구현된 이벤트 핸들러.AnyObserver
AnyObserver
는 Observer 프로토콜을 준수하는 타입으로, Observable에서 발생한 이벤트를 처리할 수 있음.Binder
Binder
는 RxSwift에서 제공하는 특별한 Observer. UI 바인딩에 최적화되어 있으며, 에러 이벤트를 처리하지 않는다.위의 코드에서
bind(to:)
는subscribe
의 줄임 버전으로,onNext
이벤트만 처리.사용자 정의 Observer 생성하기
사용자 정의 Observer를 생성하려면
ObserverType
프로토콜을 준수하는 타입을 구현해야 함위의 코드에서
MyObserver
는Int
타입의 이벤트를 처리하는 사용자 정의 Observer.Observer는 Observable에서 발생한 이벤트를 처리하는 객체로, RxSwift에서 데이터 스트림을 구독하고 응답하는 역할을 한다.
subscribe
메서드를 사용하거나AnyObserver
,Binder
등의 타입을 활용하여 Observer를 생성할 수 있음.