반응형

ios/Combine 5

Swift - Combine의 Publisher 알아보기 Just, Future, Fail, Empty, Deferred, Sequence

Publisher #Combine #Publisher Just 가장 단순한 형태의 Publisher 입니다. 에러 타입은 항상 Never 입니다. Just((0...5)) .sink { value in print(value) // 0...5 } Future 일반적으로 Publisher의 처리를 sink 라는 구독을 형태로 많이 처리하게 되는데 이 때 클로저를 전달하는 과정에서 콜백 기반의 completion 핸들러를 사용하게 되는데 Futrue를 통하여 더욱 깔끔한 코드 작성이 가능해 집니다. let myFuture = Future { promise in promise(.success(10)) } myFuture.sink { value in print(value) // 10 } URLSeesion 이나 ..

ios/Combine 2022.02.08

Swift - Combine 요약 (Publisher, Operator 종류)

Combine이 가지고 있는 기능들을 정리해보았습니다. 앞으로 해당하는 글을 계속 쓰면서 업데이트 할 예정입니다. 업데이트를 하게되면 해당 설명 아래에 링크를 추가하겠습니다! Publisher 종류 Just: 위에서 본것과같이 가장 단순한 형태의 Publsiher로 에러타입으로 Never를 갖습니다. Promise: Just와 비슷하지만 Filter Type을 정의할 수 있습니다. Fail: 정의된 실패타입을 내보냅니다. Empty: 어떤 데이터도 발행하지 않는 퍼블리셔로 주로 에러처리나 옵셔널값을 처리할때 사용됩니다. Sequence: 데이터를 순차적으로 발행하는 Publisher로 (1…10).Publisher로 이에 해당합니다. ObservableObjectPublisher: SwiftUI에서 사용..

ios/Combine 2022.02.04

SwiftUI - Combine (3) Combine의 생명 주기(Life Cycle)

Back pressure Combine은 구독자가 데이터의 흐름을 제어하도록 설계되어 있습니다. 그래서 구독자는 파이프라인에서 처리가 발생하는 시기와 대상도 제어합니다. 구독자가 얼마나 많은 정보를 원하거나 수용할 수 있는지에 대한 정보를 제공함으로써 파이프라인 내에서 처리를 주도한다는 것을 의미합니다. 이러한 요청은 구성된 파이프라인을 통해 전파되며 각 Operator는 차례대로 데이터 요청을 수락하고 연결된 Publisher에게 정보를 요청합니다. 이 것을 백 프레셔 라고 불리는 Combine의 기능이라고 합니다! 파이프라인이 취소되면 해당 파이프라인은 다시 시작되지 않습니다. 취소된 파이프라인 대신 새로운 파이프라인을 만들어야 합니다. 생명주기(Life Cycle) 1. 구독자가 게시자에게 연결되면..

ios/Combine 2022.01.21

SwiftUI - Combine (2) 핵심 개념 (Publisher, Subscriber, Operator, Subject)

Publisher(게시자) 요청 시 데이터를 제공해줌 구독이 없는 경우 Publisher는 데이터를 제공하지 않음 두 가지 유형을 제공함(Outpt Type, Failure Type) Subscriber(구독자) 구독자는 데이터를 요청하고 Publisher가 제공한 데이터(및 오류)를 처리해야 함 입력에 대한 유형과 실패에 대한 유형 두 가지 연관된 유형 구독자는 데이터를 요청을 시작하고 수신하는 데이터의 양을 제어함 Subscriber가 없으면 게시가 아예 되지 않기 때문에 Subscriber는 작업을 주도하는 것으로 생각할 수 있습니다. Operator(연산자) 연산자는 Publisher Protocol과 Subscriber Protocol을 모두 채택하는 클래스 게시자 구독 및 모든 구독자에게 결과..

ios/Combine 2022.01.20

SwiftUI - Combine (1) 소개 Combine을 사용하는 이유

SwiftUI로 iOS개발을 하다보면 자연스럽게 Combine을 접하게 됩니다. 사실 Combine에 대해 정확한 개념이 없더라도 개발하는데에 있어서 크게 무리가 없었어요. 하지만 큰 프로젝트를 진행하면서 시간의 흐름에 따른 값 처리 같은 부분, 코드의 퀄리티 등을 높이기 위해 Combine을 깊게 학습할 필요가 있다고 생각이 들어 Combine에 대한 공부를 시작해 보려고 합니다. 이번 글에서는 Combine에 대한 간단한 정의? 로 적어볼까 합니다! Combine? Apple에서는 Combine을 다음과 같이 설명합니다. 시간의 흐름에 따라 발생하는 이벤트를 처리하기 위한 Swift API Combine은 RxSwift와 유사한 Reactive Programming 라이브러리 입니다. 함수형 Reac..

ios/Combine 2022.01.18
반응형