Combine: Asynchronous Programming With Swift
The best book to master asynchronous programming with Swift using the Combine framework! By Marin Todorov, Florent Pillet & Shai Mishali.
Who is this for?
Combine uses a multitude of advanced Swift features such as generics, so you should have at least an intermediate-level knowledge of Swift.
Covered concepts
- Reactive programming
- Combine operators
- Usage in real-world apps
- SwiftUI with Combine
- Error handling
- Custom publishers
Writing asynchronous code can be challenging, with a variety of possible interfaces to represent, perform, and consume asynchronous work — delegates, notification center, KVO, closures, etc. Juggling all of these different mechanisms can be somewhat overwhelming. Does it...
moreBefore You Begin
This section tells you a few things you need to know before you get started, such as what the hardware and software requirements are, where to find the project files for this book and more.
Section I: Introduction to Combine
In this part of the book, you’re going to ramp up by covering the basics of Combine and some of its building blocks. You’ll learn about the problems Combine aims to solve and some of the abstractions it provides to help you solve them: Publisher, Subscriber, Subscription, Subject and much more.
Section II: Operators
If you compare Combine to a human language, like English, operators are its words. The more operators you know, the better you can articulate your intention and the logic of your app. Operators are a huge part of the Combine ecosystem that lets you manipulate values emitted from upstream publishers in meaningful and logical ways.
In this section, you’ll learn the majority of operators Combine has to offer, divided into useful groups: transforming, filtering, combining, time manipulation and sequence. Once you’ve got your operator chops down, you’ll wrap up this section with a hands-on project to practice your newly acquired knowledge.
Section III: Combine in Action
You now know most of Combine’s basics. You learned how publishers, subscribers and subscriptions work and the intertwined relationship between these pieces, as well as how you can use operators to manipulate publishers and their emissions.
While theory is great and definitely useful, practical real-life knowledge is king!
This section is divided into five mini-chapters, each with its own focus on practical approaches for leveraging Combine for specific use-cases. You’ll learn how to use Combine for networking, how to debug your combine publishers, how to use timers and observe KVO-compliant objects and how resources work in Combine.
To wrap up this section, you’ll get your hands dirty and build an entire Combine-backed network layer — how exciting!
Section IV: Advanced Combine
With a huge portion of Combine foundations already in your tool belt, it’s time to learn some of the more advanced concepts and topics Combine has to offer on your way to true mastery.
You’ll start by learning how to use SwiftUI with Combine to build truly reactive and fluent UI experiences and how to properly handle errors in your Combine apps. You’ll then learn about schedulers, the core concept behind scheduling work in different execution contexts. You’ll follow up with how you can create your own custom publishers and handle the demand of subscribers by understanding backpressure.
Finally, having a slick code base is great, but it doesn’t help much if it’s not well tested. You’ll wrap up this section by learning how to properly test your new Combine code.
Section V: Building a Complete App
Mastery takes practice, and practice you shall!
You’ve made it through this entire book, an amazing feat by all means. It’s time to truly solidify the knowledge you’ve acquired by building an entire app using Combine and SwiftUI.