apple/SwiftUI, Combine

Combine 빠르게 공부 정리

lgvv 2022. 6. 3. 13:37

Combine 빠르게 공부 정리

 

SwiftUI를 공부하면서 RxSwift에서 점점 Combine으로 넘어가고 있음.

 

개인적으로는 SwiftUI는 Swift Concurreny와 제일 잘어울리고

UIKit은 Rx보다는 퍼스트파티인 Combine을 주로 사용하는데, Rx가 너무 익숙해서 그런지 UIKit 개발에는 Combine보다는 Rx를 주로 사용하는 거 같음.

 

 

(공식문서 링크)

https://developer.apple.com/documentation/combine

 

Apple Developer Documentation

 

developer.apple.com

 

 

 

Combine이란?

Combine Framework에 대한 설명

  • 이벤트 처리 오퍼레이터들을 결합함으로써 비동기 이벤트의 핸들링을 사용자가 다룸.
  • 조금 더 쉽게 말해보자면 Combine 프레임워크는 결국은 시간에 따라 값을 처리하기 위해 SwiftUI API를 제공
  • 값을 방출하는 Publisher와 값을 수신하는 Subscriber를 통해 처리.
    • RxSwift와 개념 자체는 매우 비슷함

 

 

최근에 Combine을 학습하는 이유

 

SwiftUI(iOS14)로 사용하는데 하는데 Rx가 확실히 더이상 필요하지 않음.

그리고 RxCocoa + DiffableDataSource 조합에서 내부 구현 문제로 크래시가 발생하기도 하고 점차 RxSwift 보다는 Combine과 Concurreny 진영으로 넘어가면서 코드의 취약점도 생긴다고 생각함.

 

Combine을 반드시 사용할 필요는 없음.

UIKit으로 구성된 프로젝트에서 RxSwift를 사용했다면 SwiftUI 및 Swift Conccureny 전환을 적절히 검토해서 한번에 넘어가는 것도 좋아 보임.

 

2020년부터 iOS 개발을 하고 있어서 iOS 12를 최소 타겟으로 서비스 개발을 하다보니까 RxSwift가 익숙한데, 애플 아카데미에서 최근에 학습하신 분이 RxSwift를 나쁜 레거시로 받아들이는 모습에 내가 Objective-C를 처음 마주했을 때 그런 감정이지 않나 싶다.

 

개발이 발전하고 시간이 흐르는 만큼 나도 변화하는 부분에 따라가야 하지 않을까 싶다.

 

 

 

오퍼레이터는 RxSwift랑 거의 동일해서 Rx랑 비교하고 정리는 굳이 하지 않음.

아 그리고 주의해야 할게 RxSwift랑 Combine이랑 Backpressure 관련해서 차이가 있는데, 증권 무손실 소켓 구조 설계할 때 Broker쪽 코드 다시 살펴봐야할 듯

 

 

 

 

 

 

(참고)

https://icksw.tistory.com/271

 

[Combine] Combine이란? - Combine 공부 1

안녕하세요 Pingu입니다.🐧 요즘 나름 열심히 공부하는 프레임워크인 Combine를 복습 겸 확실히 공부할 겸 써보려고 하는 Combine입니다.😄 공부할 것 중 우선순위를 둔 것이 Combine, SwiftUI인데, SwiftUI

icksw.tistory.com

 

 

'apple > SwiftUI, Combine' 카테고리의 다른 글

[iOS] NavigationSplitView  (0) 2023.08.05
Swift Combine Networking  (0) 2022.06.11
SwiftUI @StateObject  (0) 2022.06.02
SwiftUI State and Data Flow  (0) 2022.06.02
iOS 화면 캡쳐 및 녹화 감지 (feat. SwiftUI)  (0) 2022.06.02