본문 바로가기
반응형

iOS/RxSwift19

[RxSwift] Rx를 이용한 페이징처리 RxSwift를 이용해서 조금 더 리엑티브하게 페이징 처리를 해보았습니다.extension Reactive where Base: UIScrollView { var reachedBottom: Observable { return contentOffset .flatMap { [weak base] contentOffset -> Observable in guard let scrollView = base else { return Observable.empty() } let visibleHeight = scrollView.frame.height - scrollView.contentInset.top - scrollView.con.. 2024. 6. 25.
[RxSwift] Map, FlatMap (Combining Operators ) map이란?map은 Observable의 각 요소에 대해 주어진 함수를 적용하여 새로운 Observable을 반환합니다. 쉽게 말해, 입력 데이터를 원하는 형태로 변형하는 데 사용됩니다.import RxSwiftlet disposeBag = DisposeBag()let numbers = Observable.of(1, 2, 3, 4, 5)numbers .map { $0 * 2 } .subscribe(onNext: { print($0) }) .disposed(by: disposeBag)//결과값//2//4//6//8//10flatMap이란?flatMap은 Observable의 각 요소를 다른 Observable로 변환하고, 그 모든 Observable을 하나의 Observa.. 2024. 6. 17.
[RxSwift] Rx를 이용한 백그라운드 감지 Rx를 이용해 UIApplication 이벤트 감지제가 생각한 방법은 NotificationCenter와 RxSwift를 결합하는 것 입니다.아래는 예제입니다. import UIKitimport RxSwiftimport RxCocoaclass ViewController: UIViewController { let disposeBag = DisposeBag() override func viewDidLoad() { super.viewDidLoad() // 포어그라운드로 전환될 때 NotificationCenter.default.rx.notification(UIApplication.willEnterForegroundNotification) .. 2024. 6. 14.
[RxSwift] ActivityIndicatorView를 Rx로 쉽게 컨트롤하기 인디케이터뷰의 상태를 변경하기 위해서는 코드를 추가해주어야 합니다.그래서! startAnimating() 과 stopAnimating() 메소드 호출을 자동화함으로써, 반복적인 코드를 줄여줍니다.isAnimating 바인더를 통해 UIActivityIndicatorView의 상태도 반응형으로 관리할 수 있게 되므로,  Rx를 좀 더 리엑티브하게 활용해보았습니다. ㅎ.ㅎimport RxSwiftimport RxCocoaextension Reactive where Base: UIActivityIndicatorView { public var isAnimating: Binder { /// Rx로 ActivityIndicatorView의 Animate를 조금 더 간편하게 제어하기 위한 Extens.. 2024. 6. 8.
[RxSwift] RxCocoa (binding, Traits, Driver..등) RxCocoa RxCocoa란 기존 Cocoa Framework에 Rx기능을 합친 RxSwift기반의 라이브러리 RxSwift와 별도로 추가해주어야 사용할 수 있다 RxCocoa는 단방향성을 갖고 있다 Producer는 값을 생성하고, Consumer는 값을 처리 한다. ObserverType, ObservableType observableType : 값을 관찰할수 있습니다. observerType : 값을 주입시킵니다. Binding 데이터 생산자와 소비자가 존재( 생산자 = Observer, 소비자 = UI Component) 생산자가 생성한 데이터를 소비자에게 전달하고 소비자가 데이터를 소비한다 Binder 소비자 역할 observerType Observable이 아니기 때문에 구독자 추가 X Er.. 2023. 11. 4.
[RxSwift] Erro 처리 catch, retry 연산자 OnError 로 처리하면 되지 않낭? Error 이벤트는 Observable 을 종료시키게 된다. 그래서 종료시키지 않고 다음과 같이 이벤트를 발생키시고 completed 가 발생되도록 error handling 을 하고자 하는 것이당! RxSwift 에서는 보통 세가지 방법으로 Error Handling 을 할 수 있다. catch : 특정 값으로 Error 복구 retry : 재시도 하기 materialize / dematerialize : Sequence 를 제어해서 처리 Catch Catch연산자는 Next와 Completed 연산자는 그대로 방출한다. API 요청 코드에서 Catch가 많이 사용된다. Error이벤트가 전달되면 새로운 Observable을 전달한다. 네트워크 에러가 있을 경우,.. 2023. 10. 31.
반응형