본문 바로가기

iOS_RxSwift

(6)
RxSwift 를 통한 UITableView 사용법에 대한 정리 프로젝트를 진행하면서 네이티브 화면을 구성하며 참 많이 사용하는 것들이 UITableView, UICollectionView 들인것 같다. 하지만 아직 UITableView, UICollectionView 의 기본적인 사용법이야 알지만, 깊게 이해하고 있는것 같지가 않아, 정리를 하며 이해해나가고자 해당 포스팅을 계획하였다. 우선 UITableView 부터! RxSwift 와 함께 사용했을때, 그리고 Section의 갯수를 1개로 고정 OR Section's Row 수를 1개로 고정할 경우 사용하기는 쉬우나, Section의 갯수와 Section 별 Row 의 갯수가 유동적으로 변한다고 할때도 사용할 수 있어야 할것이다. 우선 SampleViewController 가 정의되어 있고, 해당 ViewCont..
Subject, Relay 에 대한 활용 및 이해도 정리 오늘은 프로젝트에서 사용했던, RxSwift 에서 PublishRelay, PublishSubject, BehaviorRelay, BehaviorSubject 에 관한 내용을 정리해보고자 한다. 관련 내용들은 진행했던 프로젝트에서 cmd+C,V 하여 사용했던 것을 토대로 개인적인 이해도를 정리하였으며, 관련 전문성은 현재로선 떨어지는 부분이지만 지금까지 이해한 정도를 정리하고, 추후 보완해 나갈 예정이다. 우선 현재까지 이해한 정도로 정리하자면 BehaviorRelay 는 ObservableType이고 이는 ObservableConvertibleType 으로써 Observable 객체를 쉽게 들고 다니며 초기화, get, set, 변수로서 저장 용도로 사용할수 있는 클래스이다. ⇒ 결국 BehaviorS..
RxSwift + ReactorKit 에러 트래킹 Custom 방식에 대한 정리 기존에 RxSwift ErrorTracker 를 통해 공통으로 요청에대한 에러를 처리하는 방법에 대해 정리해놓은것이 있다. ErrorTracker를 선언해놓고, .trackError하는 방식으로 다음 코드와 같다 (ErrorTracker 정리에 상세히 정리되어 있음) apiService.exampleLogin() // RxSwift Observable 요청 .trackActivity(self.activity) // RIBs 사용하는 경우 presenter.activity .trackError(self.errorTracker) // RIBs 사용하는 경우 presenter.errorTracker .subscribe(onNext: { [weak self] _ in }).disposed(by: disposeB..
RxSwift ErrorTracker GitHub 코드 정리 프로젝트를 하면서 RxSwift 사용시 네트워크 요청에 따른 로딩바와 에러처리에 ActivityIndicator 와 ErrorTracker 를 공통으로 묶어서 유용하게 사용했던 코드를 정리해놓고자 한다. import Foundation import RxSwift import RxCocoa final class ErrorTracker: SharedSequenceConvertibleType { typealias SharingStrategy = DriverSharingStrategy private let _subject = PublishSubject() /* CustomedError 란 Error를 상속받는 Custom Error Model return Single 정리글 참조 */ func trackErro..
return Single<> 비동기 처리 화면에서 네트워크 요청 등으로 비동기처리를 해야 하는 경우 공통함수 뼈대를 정리해놓는다. ruturn type이 바뀐다면 Single 이런식으로 Generic 으로 리턴타입을 명시한다. 화면에서 Observable(?) 하게 가져다 쓸 수 있다. func returnSingle() -> Single { return Single.create { observer in if true { observer(.success(Void())) } else { observer(.error(CustomedError(message: "Swift Error 객체 → Error프로토콜을 준수함", status: -1))) } return Disposables.create {} } } 추후에 받는곳에서 이런식으로 받아서 처리!!..
RxSwift ActivityIndicator GitHub 코드 정리 네트워크 요청이 있는 경우 응답을 받기 까지 화면이 멈춰있으면 안되고 뭔가 일련의 작업을 수행중이라는 로딩바 호출이 프론트 개발에는 필수적이다. 이것을 좀 있어보이게 ActivityIndicator 라 부르는 것 같다(?) 프로젝트에서 RxSwift 를 사용했을때 썼던 코드가 있어 정리해둔다. (검색해보니 GitHub 오픈소스인것으로 보인다.) import RxSwift import RxCocoa private struct ActivityToken: ObservableConvertibleType, Disposable { private let _source: Observable private let _dispose: Cancelable init(source: Observable, disposeAction:..