본문 바로가기

iOS24

[RxSwift] Observable.create & Disposable.create 어제 노티 관련 포스팅 중에 Disposable.create에 대한 의문이 생겼었습니다. 왜 저걸 해주는 거지 ? 그래서 . . 오늘 Rx 코드 뜯어보면서 알아보려고 합니다 ! 혼자 공부한 것이므로 틀린 내용이 있을 수 있습니다 . . 자 그럼 Disposable.create를 알아보기 전에 . . 그 앞에 Observable.create부터 살펴봐야겠죠 ? 왜냐면 ~ 저번 Noti + Rx에서 Observable.create으로 먼저 Noti를 생성한 후에 Disposable.create로 remove 해주고 있으니까 . . 전에 RxSwift - Observable 포스팅에서 create(:)에 대해 정리했었는데요. "create은 escaping 클로저로 escaping에서는 AnyObserver를.. 2022. 11. 22.
[RxSwift] NotificationCenter, Notification 프로젝트 진행 중에 키보드에 의해 뷰가 가려지는 상황을 해결해야 했습니다 . . 이 때, NotificationCenter로 사용해 구현할 수 있었는데요 (+ RxSwift 로 ~) 그래서 !! NotificationCenter에 대해서 정리하고 가려합니다 . . 의식의 흐름대로 공부해서 다른 내용도 있을 수 있습니다 . . 양해 부탁드려요 . . NotificationCenter NotificationCenter란 등록된 observers에게 정보를 broadcast가 가능하게 하는 notification dispatch 매커니즘이라고 합니다. 흠. . 무슨소릴까 싶지만 일단 observers 들에게 어떠한 방식으로 정보를 전달하는 아이 . . ? 아래 설명을 계속 살펴볼게요. notification .. 2022. 11. 21.
[RxSwift] Combining Operators 지난 filtering이나 transforming operators들을 살펴보자면 , , Swift 표준 연산자들과 아주 유사했는데요 ! Combining Operators들도 유사한 것들이 많다고 합니다 . . 하하 가봅시다 ~ Prefixing and concatenating 단순해석하자면 앞에 붙이거나 연결하는 것들 ? 입니다 . . 흠 1. startWith(_:) 현재 위치나 네트워크 연결 상태와 같이 현재 상태가 필요한 상황이 있습니다. 이럴 때 현재 상태와 함께 초기값을 붙일 수 있습니다. [코드] example(of: "startWith") { // 1 let numbers = Observable.of(2, 3, 4) // 2 let observable = numbers.startWith(.. 2022. 11. 18.
[RxSwift] Transforming Operators 최근에 공부를 못하고 . . 프젝이랑 코테 CS만 하다 . . 다시 정신차립니다 . . 빠르게 남은 파트 정리하고 다른 공부도 해야죠 ! 하하 Transforming elements toArray Observable의 독립적인 요소들을 array로 넣는 방법 [코드] example(of: "toArray") { let disposeBag = DisposeBag() // 1 Observable.of("A", "B", "C") // 2 .toArray() .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) /* Prints: ["A", "B", "C"] */ } map 표준 라이브러리 map과 같이 사용되며 Observable에서 동작합니다. enume.. 2022. 11. 17.
[ReactorKit] RxDataSources로 CollectionView 구현하기 공부한 것들 기록하려고 합니다 . . ! 혼자 공부한 것이므로 틀린 내용이 있을 수 있습니다 . . iOS - RxDataSources 프로젝트를 진행하면서 collectionView를 구현하는데 RxDataSources를 사용하였는데요. 기존에 DataSource를 사용하던 방식과 달리 따로 프로토콜을 채택하여 구현해줄 필요없이 데이터 바인딩을 통해 collectionView를 구현할 수 있는 방법입니다 . . ! 저는 ReactorKit을 사용하고 있기 때문에 RxDataSources를 사용하여 각각의 Cell에 전용 Reactor를 생성하여 Cell이 UI 업데이트를 할 때, 이 Reactor 인스턴스를 받아서 사용하도록 하였습니다. lazy var monthDataSource = DataSourc.. 2022. 11. 17.