관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - SwiftUI] Combine 이란? 본문

iOS Combine (SwiftUI)

[iOS - SwiftUI] Combine 이란?

jake-kim 2022. 9. 13. 22:23

목차) Combine - 목차 링크

Combine

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

  • async 작업들을 이벤트 처리 연산자로 결합하여 처리하는 방법
  • 선언적인 프로그래밍 형태로 사용
    • Stream하나를 만들고 그 Stream에 필요한 operator를 덫붙여서 사용하는 선언적인 프로그래밍 방식
// 선언형 프로그래밍인 Combine 예제 코드
$username
  .debounce(for: 0.1, scheduler: RunLoop.main)
  .removeDuplicates()
  .map { $0.count >= 2 }
  .assign(to: \.valid, on: self)
  .store(in: &cancellableSet)
  • 선언적인 프로그래밍이 되면서, 클로저를 이용한 콜백지옥에서 벗어날 수 있는 장점이 존재
  • Combine을 사용하면 이벤트 처리 코드들이 중앙 집중화가 되어 더욱 읽기 쉬운 코드로 구현
    • 만약 Combine이 아닌 async-await나 closure를 사용한다면 어떤 코드가 어디서 실행될지 파악이 어려움이 존재

 

* async, sync, serial, concurrent 개념은 이전 포스팅 글 참고

 

* 참고

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

Comments