
RxSwift는 Reactive Extensions (ReactiveX 또는 Rx)의 Swift 구현체입니다. 비동기 프로그래밍과 이벤트 기반 프로그래밍을 위한 라이브러리입니다.
next: 새로운 데이터 전달completed: 성공적으로 완료error: 에러 발생let observable = Observable.just("Hello, RxSwift!")
let observable2 = Observable.from(["A", "B", "C"])
observable.subscribe(onNext: { value in
print(value)
}, onError: { error in
print(error)
}, onCompleted: {
print("Completed")
}).disposed(by: disposeBag)
let disposeBag = DisposeBag()
주요 연산자들:
map: 데이터 변환filter: 조건에 맞는 데이터만 필터링flatMap: Observable 시퀀스를 변환하고 병합combineLatest: 여러 Observable의 최신 값을 결합observable
.map { $0.uppercased() }
.filter { $0.count > 5 }
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
textField.rx.text
.orEmpty
.debounce(.milliseconds(300), scheduler: MainScheduler.instance)
.distinctUntilChanged()
.subscribe(onNext: { text in
print("검색어: \(text)")
})
.disposed(by: disposeBag)
URLSession.shared.rx.data(request: urlRequest)
.map { try JSONDecoder().decode(Response.self, from: $0) }
.subscribe(onNext: { response in
print("받은 데이터: \(response)")
}, onError: { error in
print("에러 발생: \(error)")
})
.disposed(by: disposeBag)