[iOS/Combine] Combine - Error Handling
·
IOS - Swift/Combine
Error Handling (챕터 16) - 지훈NeverFailure 타입이 Never인 퍼블리셔는 절대 실패할 수 없다는 것을 나타냅니다.public typealias Failure = Never// Just 등의 publisher에서 사용퍼블리셔가 절대 실패하지 않음을 컴파일 타임에 보장에러 처리 로직이 필요 없음특징간단한 sink 구독 가능 (에러 핸들링 클로저 불필요)Just("Hello") .sink(receiveValue: { print($0) })// 에러 핸들링 없이 값만 처리Never Failure 퍼블리셔들sinkJustEmpty@Published 프로퍼티 래퍼Timer.publish()assign(to:on:)func assign( to keyPath: ReferenceW..
[iOS/Combine] Transforming Operators
·
IOS - Swift/Combine
Transforming Operators의 핵심 개념Transforming operators는 upstream publisher로부터 받은 값들을 변형해서 downstream으로 전달하는 연산자입니다.모든 operator는 publisher이며, upstream 이벤트를 받아서 조작한 후 downstream으로 전달합니다.에러 처리가 필요한 경우가 아니라면 upstream의 에러를 그대로 downstream으로 전달합니다.Mapmap은 업스트림 퍼블리셔의 모든 값의 타입을 변환시키는 Operator입니다.특징map 연산자는 업스트림 퍼블리셔로부터 전달받은 각 요소를 지정된 클로저를 사용해 변환합니다.Swift 문법 map 함수와 비슷하게 동작하고, 한 종류의 데이터를 다른 종류로 변환할 때 사용됩니다.구..
subscription의 이해
·
IOS - Swift/Combine
A protocol representing the connection of a subscriber to a publisher.구독자와 퍼블리셔의 연결을 나타내는 프로토콜입니다.오~Subscription이란?Subscription은 Publisher와 Subscriber 사이의 연결을 관리하는 프로토콜입니다. 퍼블리셔가 데이터를 발행하고, 서브스크라이버가 이를 수신하는 과정에서 두 객체 간의 관계를 중재하고 제어하는 역할을 합니다.Subscription은 단순히 데이터를 전달하는것을 넘어 데이터를 요청하고, 전달하고, 구독을 취소하는 메커니즘을 제공하여 메모리 관리와 리소스 효율성을 보장합니다.Subscription은 Cancellable을 채택했네요.Cancellable은 나중에 다시 살펴보고! Subs..
Publisher - Just, Empty, Failure
·
IOS - Swift/Combine
JustJust는 가장 기본적인 Publisher 입니다.한 개의 아웃풋을 각각의 Subscriber에게 단 한 번 보내고, 종료합니다.다시말해서, 자신을 구독(subscribe)하는 구독자(subscriber)들에게 한번의 값만 전송하고 finish 하는 Publisher 입니다실제 코드로 보면, Failure가 Never로 고정되어있습니다.즉, Just는 에러를 발행할 수 없고 무조건 Output만 발행될 수 있다는것을 의미합니다.public struct Just : Publisher { public typealias Failure = Never public let output: Output public init(_ output: Output) public func receive..
Combine - Publisher 기초
·
IOS - Swift/Combine
Publisher는 직역하면 발행자입니다.데이터 스트림이나 이벤트를 생성하고 이것을 Subscriber(구독자) 에게 직접 전달하는 역할을 하는 객체입니다. 애플 공식문서에는타입이 시간 경과에 따라 일련의 값을 전송할 수 있음을 선언합니다. 다시말해, 구독자와 같은 하나이상의 관계자에게 시간이 지남에 따라서 값을 보내는(전달하는) 타입 입니다.관심있는 값이나 이벤트를 게시 (Publish) 하게 되는것이죠!데이터 스트림Publisher에서 연결되어 Subscriber까지 이어지는 데이터의 흐름이 생기는 일련의 과정을 Data Stream(데이터 스트림) 이라고 합니다.다시말해, 시간에 따라 연속적으로 발생하는 데이터 시퀸스입니다. 즉, 순차적으로 처리되거나 관찰됩니다.UpStream, DownStream..
[iOS/Swift] Combine - 시작하기 (Publisher ,Operator, Subscriber)
·
IOS - Swift/Combine
컴바하아인 Introducing Combine - WWDC19 - Videos - Apple Developer Combine is a unified declarative framework for processing values over time. Learn how it can simplify asynchronous code like networking,... developer.apple.com 컴바인을 사용하는 이유 텍스트 필드에 입력된 값을 다음 vc에 전달하는 코드가 있다고 가정할때, 1. Delegate 패턴 Delegate 패턴은 객체 간의 커뮤니케이션을 위해 인터페이스를 정의하고, 하나의 객체가 다른 객체를 대신해서 작업을 수행하도록 합니다. WelcomeViewController.swift p..