🍎 iOS/RxSwift 4

[RxSwift, RxCocoa] 주요 Operator 특징 및 차이점 정리 (계속 업데이트 예정)

혹시 틀린 부분이 있다면 지적해주시면 감사하겠습니다 :) 1. map vs flatMap vs compactMap https://limjs-dev.tistory.com/139 https://huniroom.tistory.com/entry/RxSwift-Transforming-Operator-toArray-map-compactMap 공통점 : 모두 Observable을 특정 로직을 적용하여 데이터를 바꾼다. 차이점 : - map은 변환 아이템을 Observable로 바꿔 return해주고, - flatMap은 단순히 Observable로 바꾸는게 아니라 평평하게 하나의 Observable로 바꿔준다. 예를들어 map은 Observable 이렇게 return 해주지만 flatMap은 Observable 이렇..

🍎 iOS/RxSwift 2023.03.16

[RxSwift] Disposable, Dispose, DisposeBag

Disposable, Dispose RxSwift에서, 옵저버는 subscribe를 통해 이벤트를 전달받아서 처리하게 되는데, subscribe는 이후에 Disposable 을 반환한다. 또한 Disposable에는 'Dispose resource' 할 수 있는 dispose() 메소드가 제공된다. dispose의 원래 뜻은 '처분하다' 로, 이를 통해 유추해보면 이벤트에 대한 처리를 마치고 더이상 처리하지 않으니 구독을 해제해라! 라는 의미인 것으로 보인다. 정리하자면 subscribe의 반환값으로 Disposable 이 반환되고, 이벤트 처리가 끝나면 해당 구독을 유지할 필요가 없으니 구독을 해제해주는 과정이 dispose() 라고 할 수 있다. dispose를 꼭 해주어야만 하는 이유는, 구독이 끝..

🍎 iOS/RxSwift 2023.03.16

[RxSwift] RxSwift + MVVM + Moya 적용 (feat. tableview binding)

Podfile # Moya with rx pod 'Moya/RxSwift', '~> 15.0' # RxSwift & Cocoa pod 'RxSwift', '~> 6.5.0' pod 'RxCocoa', '~> 6.5.0' # SwiftyJson pod 'SwiftyJSON', '~> 4.0' 1. 엮을 API의 구조 header x-access-token : jwt 토큰 response { "isSuccess": true, "code": 1000, "message": "성공", "result" : [ { "profileImageUrl" : "이미지 링크", "roomId" : 255, "title" : "test", "repUserName" : "Runnber6421", "recentMessage" : "..

🍎 iOS/RxSwift 2023.01.19

[RxSwift] 곰튀김 RxSwift + MVVM 정리

1. 왜 비동기 프로그래밍을 하는가? 생활 예로, 마트에서 물건을 살 때 계산 줄을 서는 것을 생각하면 쉽다. 먼저 온 순서대로 한사람 한사람씩 계산되는 과정이 '동기적 프로그래밍'이다. 여기서, 어떤 사람이 물건을 엄청 많이 샀다던가, 계산 중에 다른 물건을 집어온다거나 할 때, 뒤에 서있는 고객들은 그 문제의 사람이 계산을 마칠 때까지 기다리는 수밖에 없다. 이와 같이, 동기적으로 프로그래밍을 한다면 한 작업이 끝날 때까지 그 뒤의 어떤 작업도 진행되지 않기에, 화면 로딩, 통신 연결 등의 비효율을 높이고, 사용성 또한 급격히 떨어진다. 코드가 한 페이지에서 동기적으로만 일을 하게 된다면, 아마 페이지 최상단에 있는 것부터 하나씩 또 하나씩 로딩이 될 것이며, 설상가상 시작하면 중간에 물릴 수도 없으..

🍎 iOS/RxSwift 2023.01.16
반응형