rxcocoa 10

[RxFlow] 나만의 RxFlow 정리 #1

나만의 RxFlow 정리 #1https://github.com/RxSwiftCommunity/RxFlow 배경최근에 사이드 프로젝트를 수행하면서 Coordinator Pattern을 적용해 화면 구조를 만들었음. 해당 프로젝트 구조는 기본적으로 UIKit, ReactorKit, RxSwift를 기반으로 하고있고, 몇몇 화면과 컴포넌트들은 SwiftUI로 만들어서 UIHostingController를 사용하고 있음. 최근에는 Combine도 학습하고 있는데 RxSwift의 오퍼레이터들과 거의 비슷해서 이건 그냥 음,,, 딥하게 하지 않아도 알고 있는 것 같고.TCA도 학습하고 있는데, RxFlow를 배워도 사용할 환경이 없을 것 같아서 조금 고민되긴 함 그래도 아직은 RxSwift 기반으로 작성하는 코드가..

such module 'RxCocoaRuntime'

such module 'RxCocoaRuntime' SPM으로 RxSwift 받아서 RxTest, RxBlocking 사용하려니까 위와 같은 에러가 나타남.  아래 깃헙 issue를 보듯이 해당 문제는 다른 개발자분들도 많이 겪고 있는것으로 보임.https://github.com/ReactiveX/RxSwift/issues/2277 No such module 'RxCocoaRuntime' · Issue #2277 · ReactiveX/RxSwiftShort description of the issue: I'm facing a strange issue and I don't know if it is a bug or I'm just missing something. I'm currently working fo..

[Combine] Let's study Combine!

Let's study Combine!SwiftUI Combine 공부  ✅ 애플 공식 문서를 바탕으로 정리하였습니다.https://developer.apple.com/documentation/combine Apple Developer Documentation developer.apple.com   ✅ Combine이란?이벤트 처리 오퍼레이터들을 결합함으로써 비동기 이벤트의 핸들링을 사용자가 다룹니다!조금 더 쉽게 말해보자면 Combine 프레임워크는 결국은 시간에 따라 값을 처리하기 위해 SwiftUI API를 제공합니다. 값을 방출하는 Publisher와 값을 수신하는 Subscriber를 통해 처리합니다. RxSwift를 공부했다면 더욱 쉽습니다.   ✅ Combine을 공부하는 이유.SwiftUI(..

RxSwift Signal,Emit

RxSwift Signal, emit RxSwift를 사용하면서 코드 리뷰 과정에서 Signal이라는걸 보아서 공부해보자! Signal vs Driver공통점 에러를 방출하지 않고, 메인스레드에서 동작차이점Driver는 구독할 때 replay를 통해 emit이 발생Signal은 구독할 때 replay를 하지 않음   Signal은 주로 어떨때 사용할까?Signal은 replay되면 문제가 있는 스트림에 사용하면 됨.여러 코드를 살펴보는데 주로 ViewModel -> View로 가는 작업 즉, UI 관련한 것들에 Signal이 보임.개인적인 생각인데 그냥 드라이버 쓰는게 더 낫지 안을까란 생각emit은 Driver를 사용했을때 drive라고 생각정리Signal과 Driver가 주로 비교되는 것 같아서 ..

RxSwift ch 18. Table & Collection views

RxSwift ch 18. Table & Collection views이번 글은 RxSwift ch18을 공부하고 이를 기록하고자 함 목차BaseView 만들어보기 modelSelected 사용법Mutiple Cell Types BaseView 만들어보기 개발을 하다 보니 같은 UI도 여러개의 뷰에서 사용하는 경우가 있음하지만 이전에는 이 방법을 몰라서 그냥 복사 붙여넣기로 사용했었는데, BaseView를 사용해보고자 함.코드 샘플import UIKitimport RxCocoaimport RxSwiftimport SnapKitimport Thenstruct BaseView { var tableView = UITableView().then { $0.backgroundColor = .blu..

Extension Reactive (RxSwift)

Extension Reactive (RxSwift)RxSwift는 커스터마이징을 확장하여 사용할 수 있음.RxSwift 내부 코드를 분석하다보면 Reactive.swift 파일에 custom포인트로 사용하라고 안내하고 있음 연관포스팅[iOS RxStarScream 총정리](https://rldd.tistory.com/271)[iOS Starscream 총정리](https://rldd.tistory.com/272)[iOS RxDelegateProxy 만들어보기 #1](https://rldd.tistory.com/273)[iOS RxDelegateProxy 만들어보기 #2 - StarScream + RxProxy](https://rldd.tistory.com/274)[Extension Reactive (Rx..

RxSwift 06 RxDataSources

RxSwift 06 RxDataSourcesRxSwift에서 RxDataSource라는게 있어서 공부해보고자 함. 컬렉션뷰에서 섹션이 여러개면 난이도가 확 올라가는데, 이것도 정말 어렵다  목차 설치하기섹션 만들기전체 코드 리뷰 설치하기RxSwift를 사용하려면 cocoapod 을 통해 설치해야 함pod 'RxDataSources'  섹션 만들기아래처럼 선언하여 구성struct MySection { var header : String var items: [Item]}extension MySection : AnimatableSectionModelType { init(original: MySection, items: [Int]) { self = original sel..

Ch13. Intermediate RxCocoa

Ch13. Intermediate RxCocoa 오랜만에 RxSwift를 포스팅하고자 함.RxSwift 스터디를 했었는데, 스터디 후에도 너무 어려워서 기본기부터 다시 함. RxSwift는 MVVM에서 편하게 사용하려고 쓴다는데 클로저로 MVVM도 안써본 내가 RxSwift부터 하는게 너무 황당해서 스스로 클로저로 했을때 뭐가 어떤지를 겪어보았음 확실히 이 과정이 지나니까 RxSwift과 너무나도 당연한 흐름?이었음을 이해하게 되어서 이해도가 훨씬 높아짐앱 결과예제인데 보고 연습 CLLocationManager + Rx프록시로 묶어서 처리한건데 정말 깔끔하게 묶어내고 있음import Foundationimport CoreLocationimport RxSwiftimport RxCocoaextension C..

RxSwift Ch12. Beginning RxCocoa

RxSwift Ch12. Beginning RxCocoa애플의 CocoaTouch를 처리하는 RxCocoa에 대해서 알아보자.근데, 작성하다가 파일 한번 날아감 ㅠㅠㅠㅠㅠㅠ  코드 분석주석으로 설명searchCityName.rx.text // textField와 연결 .filter { ($0 ?? "").count > 0 } // 입력값이 존재하면 넘어가게끔 .flatMapLatest { text in // 가장 마지막에 구독된 스트림의 값만으로 갱신 return ApiController.shared.currentWeather(for: text ?? "Error") .catchErrorJustReturn(ApiController.Weather.empty) // ..