1. RxCocoa란?
RxSwift와 함께 사용되는 라이브러리로 UI와 관련된 작업을 반응형으로 처리할 수 있게 한다
2. RxCocoa의 주요 기능
2-1. UI 바인딩
- 여러 UI요소들(UIButton, UILabel, UITextField...) 과 데이터 사이의 바인딩을 쉽게 처리한다
- Observable로 변환하여 상태 변화를 쉽게 감지하고 처리한다
- 활용 예시
let textField = UITextField()
let label = UILabel()
textField.rx.text.orEmpty
.bind(to: label.rx.text)
.disposed(by: disposeBag)
*텍스트필드 값 업데이트 시 즉시 반영
let switchControl = UISwitch()
let button = UIButton()
switchControl.rx.isOn
.bind(to: button.rx.isEnabled)
.disposed(by: disposeBag)
*스위치의 상태에 따라 버튼 활성/비활성화 제어
2-2. ControlEvent와 ControlProperty
- UI 컴포넌트에서 발생하는 이벤트나 상태를 쉽게 다룰 수 있게 한다
- ControlEvent
-> UI요소에서 발생하는 이벤트(사용자 상호작용)를 처리한다
-> 주로 버튼 클릭, 스위치 변경 등의 이벤트를 관찰
🎈 키워드 요약 | 이벤트 기반, 읽기 전용, 구독 - ControlProperty
-> UI요소의 상태(값)을 추적(관찰)하여 업데이트한다
-> 텍스트필드의 값이나 스위치의 on&off를 감지함
-> 옵저버블과 옵저버 둘다 지원해서 양방향 바인딩이 가능함
🎈 키워드 요약 | 키워드 요약) 상태 기반, 상태를 관찰 후 업데이트, 읽기/쓰기 모두 가능, 관찰 및 수정 가능
2-3. Driver
- UI의 안전한 바인드 처리를 위해 RxSwift에서 제공하는 특수한 옵저버블
- 주요 특징
1. 에러가 발생하지 않음
2. 항상 메인 스레드에서 동작해서 별도 스케줄러를 설정할 필요가 없다
3. 다중 구독 가능: Driver는 Hot Observable이므로 여러 구독자가 있어도 하나의 데이터스트림을 공유한다 = 여러 UI 요소에 동시에 바인딩 할 수 있다
구분 | Binder | ControlEvent | ControlProperty |
읽기(관찰) | X | O | O |
쓰기(방출) | O | X | O |
특징 | 단방향 UI업데이트 |
UI 발생 이벤트 관찰 사용자 인터랙션* (사용자와 기기의 상호작용) |
양방향 바인딩, 읽기/쓰기 UI 상태 관찰 후 업데이트 |
*사용자 인터랙션: 버튼 클릭, 스크롤, 슬라이더 조작, 텍스트 입력
'💡 Today I Learned > 스터디 자료정리' 카테고리의 다른 글
[스터디7일차] 객체지향 & 프로토콜 (0) | 2024.11.12 |
---|---|
[스터디6일차] 테스트 코드👩🏻🔧 (1) | 2024.10.30 |
[스터디5일차] MVVM 패턴 (0) | 2024.10.25 |
[스터디2일차][RxSwift] 연산자 (1) | 2024.10.11 |
[스터디1일차][RxSwift] Observable & Subject (0) | 2024.10.07 |