apple/RxSwift, ReactorKit 31

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가 주로 비교되는 것 같아서 ..

iOS RxAction (RxSwift Community)

iOS RxAction (RxSwift Community) RxSwift를 사용하면서 모든 챕터를 다 알아두면 좋을 것 같아서 보게 되었음.이거 좀 유용할 것 같다는 생각이 든달까? RxSwift Communtiry에 Pinned도 되어있음 깃헙 위치- https://github.com/RxSwiftCommunity/Action  샘플 예시 아주 간단한 예시이고, RefreshControl에서도 사용할 수 있음RxCommunity - Action 부분에서 Tests를 가보면 다른 예시도 볼 수 있으니까 궁금하면 확인해보기!!import UIKitimport RxCocoaimport RxSwiftimport SnapKitimport Thenimport Actionclass ActionViewControl..

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..

iOS RxDelegateProxy 만들어보기 #1

iOS RxDelegateProxy 만들어보기Delegate를 RxSwift에 통합하여 사용하기 위해 Proxy를 만드는 방법을 학습  연관포스팅[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 (RxSwift)](https://rldd.tistory.com/275)  샘플코드목차Pro..

iOS RxStarScream 총정리

iOS RxStarScream 총정리 iOS 개발에서 Socket 통신을 위해서 Starscream을 사용하고 있음.Starsream을 RxSwift에서 편하게 사용할 수 있게 만들어주는 오픈소스 라이브러리. Starscream을 사이드프로젝트 및 회사에서 사용하는데, 인턴 작업에서 이를 도입하기로 해서 리드해서 작업하기로 함.Starscream 자체를 RxSwift로 Proxy를 활용해 감싸서 사용할 수도 있지만, 오픈소스부터 분석해서 추후에 기여도 가능한 방향으로 설계하고자 분석   연관포스팅[iOS RxStarScream 총정리](https://rldd.tistory.com/271)[iOS Starscream 총정리](https://rldd.tistory.com/272)[iOS RxDelegateP..

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) // ..

🐉 RxSwift 4Hour - Step3(Rx)

✅ 내가 도저히 모르겠어서 코드를 하나하나 보면서 해석해보는 시간을 가지려고 해. 왜 내가 어렵게 생각했을까? -> 기존에 비동기 처리를 GCD등을 이용하여 처리해왔었고, 굳이 어떤 부분에서 rx를 이용해서 비동기를 처리해야하는지 설계시에 확 떠오르지 않는다. -> rx를 사용해서, subject나 relay를 가지고 코드를 작성하는 것이 기존의 delegate를 이용한 코드보다 직관적으로 느껴지지 않는다. -> 코드에 대한 이해가 부족하다. (사용법에 능숙하지 않다) 아무튼 마스터하기는 해야하는데, 테이블 뷰 구성도 쉽게 못하는 걸로 보아서,, 일단 코드를 해석하는 것 부터 해보려고 한다. (목차) 1. APIService 2. API 요청으로 받아온 데이터는 어떻게 처리가 될까? - 테이블 뷰 아이템..