Core Concepts of Combine
No matter your coding background, you will need to get to grips with some of the core concepts of
Combine, what it does and how to perform some programming tasks in the same.
This article is here to help you!
What is Combine?
Combine is about what to do with values over time, including how they can fail.
This means that
Combine uses many of the functional reactive concepts that are used by
RxSwift (if you are familiar with that), but is Apple’s implementation is baked-in to the iOS SDK meaning it has the advantages of Swift, being type-safe and usable with any asynchronous
In addition to functional programming primitives like
reduce you can split and merge streams of data.
These steams are important as we can visualise events (keyboard taps, touches etc.) as such a stream that can be observed. The observer pattern watches an object over time, notifying changes — and applied over time this would produce a stream of objects.
Combine helps developers implement code that functionally describes actions that should be taken when data is received in such a stream.
When applied to an
Combine allows us to handle errors as they happen and more easily process data that relies on asynchronous
API. Applied to a UI, we can think of the user actions as a stream, and even test particular states that a host App can be in.
A good partner for
SwiftUI, yet there is no reason why you can’t use
UIKit to use
Combine, the same way as we could happily use
UIKit. I’ve created an example with a network manager that you might like to take a look at.
Understood. Let me describe them: