RxSwift 스터디 1주차 Hello RxSwift
이전에 4시간짜리 강의로 빠르게 스키밍했다면 이번에는 RxSwift에 대해서 차근차근 학습.
해당 커리큘럼은 SOPT 동아리에서 오픈소스 공간에 있는 순서에 따라 공식문서인 ReactiveX.io를 기반으로 진행
공식문서 및 커리큘럼 링크는 본문 제일 하단에 위치
목차
1. Observer 및 Operator
2. 개념에서 몇가지 주의사항
1. Observer 및 Operator
아래 ViewDidLoad에서 작성된 코드를 확인.
`.tap`과 같은건 RxCocoa에 있는 부분으로 UIControl에 대해서 이벤트를 관찰할 수 있음.
subscribe에서는 이벤트가 방출되면 여기서 로직을 처리.
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
button.rx.tap
.subscribe(onNext: { [weak self] next in
guard let self else { return }
self.textField.text = "" // tap시 textField를 초기화
}).disposed(by: disposeBag)
textField.rx.text
.filter { [weak self] text in
guard let self else { return }
if text == "appear" {
self.button.isHidden = false
return false
} else if text == "disappear" {
self.button.isHidden = true
return false
} else {
return true
}
}.subscribe(onNext: { text in
print(text ?? "")
})
toggleSwitch.rx.isOn
.subscribe(onNext: { enabled in
print(enabled ? "It's ON" : "It's OFF")
}).disposed(by: disposeBag)
}
2. 개념에서 몇가지 주의사항
finite observable sequences vs Infinite observable sequences
- Finite observable sequences (서버 통신과 같이 한정되어 있는 경우)
- Infinite observable sequences (UIcomponent와 같이 끝이 없이 이어지는 경우)
즉, Infinite는 무한히 캡처링이 가능하고 따라서 Error나 Complete가 발생하지 않기 때문에 생략 가능.


RxSwift로 실행 결과 콘솔에 찍어보기
실시간으로 입력마다 이벤트를 확인할 수 있음.
기존에도 Delegate를 채택해서 이벤트를 처리하곤 했지만, RxSwift를 사용하면 매우 간편하게 처리할 수 있음.

(참고)
https://github.com/5anniversary/RxSwiftStudy
'apple > RxSwift, ReactorKit' 카테고리의 다른 글
| RxSwift 스터디 5주차 Filtering Observables (0) | 2021.07.10 |
|---|---|
| RxSwift 스터디 4주차 Subject (0) | 2021.07.10 |
| RxSwift 스터디 3주차 Creating Observables (0) | 2021.07.09 |
| RxSwift 스터디 2주차 Observable (0) | 2021.07.08 |
| RxSwift 4시간 만에 끝내기 (0) | 2021.07.06 |