Combine: Asynchronous Programming with Swift — Complete Book Available!

Our new book, Combine: Asynchronous Programming with Swift, is 100% complete and available now. Find out how to get your own copy of this must-have book! By Tiffani Randolph.

Save for later

We’re happy to announce that our newest book, Combine: Asynchronous Programming with Swift, is now 100% complete!

🎉And, until next Friday, November 8th, you can get this book for $10 off! 🎉

Keep reading to learn:

Combine: Asynchronous Programming with Swift

Writing asynchronous code can be challenging, with a variety of possible interfaces to represent, perform, and consume asynchronous work — delegates, notification center, KVO, closures, and more. Juggling all of these different mechanisms can be somewhat overwhelming. Does it have to be this hard? Not anymore!

In Combine: Asynchronous Programming with Swift, you’ll learn about Combine — Apple’s framework to work with asynchronous events in a unified and reactive way that ensures your app is always up-to-date based on the latest state of its data.

With Apple’s introduction of the Combine framework in WWDC 2019, it’s clear that Apple aims to position declarative and reactive programming in Swift as a long-term investment; it’s a game-changer in how developers perform and compose pieces of asynchronous work, making it a must-have tool at your disposal.

Who is this book for?

This book is for intermediate iOS developers who already know the basics of iOS and Swift development but are interested in learning declarative/reactive programming and taking their app and state management to the next level.

You won’t need any prior experience in reactive frameworks such as RxSwift and ReactiveSwift. Instead, you’ll learn everything you need to take you from beginner to mastering Combine!

You’ll also find this book interesting if you’re interested in SwiftUI, as many of the reactive capabilities that keep your SwiftUI views up-to-date are built on top of Combine.

Various system frameworks, from Foundation all the way up to SwiftUI, depend on Combine and offer Combine integration as an alternative to their “traditional” APIs.

Topics Covered:

  • What & Why: Learn about the roots of Combine, what reactive programming is and the problems it solves, and how you can unify all of your asynchronous pieces of work.
  • Operators: Learn how to compose, transform, filter and otherwise manipulate different pieces of asynchronous work using operators.
  • In Practice: You’ll gain knowledge on various topics and techniques you’ll leverage when writing your own real-life apps, and you’ll get to practice these techniques with actual hands-on apps and projects.
  • SwiftUI: You’ll learn how Combine is deeply rooted within SwiftUI, which provides SwiftUI with the ability to reactively update its views based on the state of your app.
  • Advanced Combine: Once you’ve got a handle on the basics, you’ll dive into advanced Combine topics such as Error Handling, Schedulers, and Custom Publishers.

By the end of this book, you’ll be a pro in building fully-fledged applications using Combine’s various abilities!

What’s New in This Edition?

The complete first edition of Combine: Asynchronous Programming with Swift now has six new chapters:

Utilize what you’ve learned to finish developing an app that lets you fetch Chuck Norris jokes and translate them into another language :]

  • In Practice: SwiftUI & Combine: SwiftUI is the new user interface paradigm from Apple and it’s designed to interplay with Combine on a whole new level. In this chapter, you’ll work through a Combine-based SwiftUI project.
  • Error Handling in Practice: This chapter will teach you about Combine’s powerful typed error system, and how you can leverage it to handle errors both within your app as well as within Combine publishers.
  • Schedulers: In this chapter, you’ll learn what Schedulers are, how they relate to RunLoops, Dispatch queues and Threads, and how Combine extends Foundation to integrate with them.
  • Custom Publishers & Handling Backpressure: Creating your own publishers and operators is an advanced topic you’ll learn to master in this chapter, while also learning about and experimenting with backpressure management.
  • Testing: This chapter will introduce you to unit testing techniques for use with Combine code. You’ll go from testing basics in a playground, to applying what you’ve learned in adding tests to an existing iOS app project.
  • In Practice: Building a Complete App: You’ve gained valuable skills throughout this book, and in the last section you picked up some advanced Combine know-how too. In this final chapter, the pièce de résistance, you’ll build a complete app that applies what you’ve learned — but the learning is not done yet! Core Data in Combine, anyone?

Meet the Authors

The authors of this book might seem familiar: they’re also part of the force behind our incredibly popular book, RxSwift by Tutorials!

Scott Gardner

Scott Gardner has authored over a dozen books, video courses, tutorials, and articles on Swift and iOS app development — with a focus on reactive programming. He’s also presented at numerous conferences. Additionally, Scott teaches app development and is an Apple Certified Trainer for Swift and iOS. Scott has been developing iOS apps since 2010, ranging from personal apps that have won awards to working on enterprise teams developing apps that serve millions of users. Say hello to Scott on Twitter or connect with him on LinkedIn.

Shai Mishali

Shai Mishali is the iOS Tech Lead for Gett, the global on-demand mobility company; as well as an international speaker. He’s a highly active open-source contributor and maintainer on several high-profile projects – namely, the RxSwift Community and RxSwift projects, but also releases many open-source endeavors around Combine such as CombineCocoa, RxCombine and more. As an avid enthusiast of hackathons, Shai took 1st place at BattleHack Tel-Aviv 2014, BattleHack World Finals San Jose 2014, and Ford’s Developer Challenge Tel-Aviv 2015. You can find him on GitHub and Twitter.

Florent Pillet

Florent Pillet has been developing for mobile platforms since the last century and moved to iOS on day 1. He adopted reactive programming before Swift was announced, and has been using it in production since 2015. A freelance developer, Florent also uses reactive programming on the server-side as well as on Android, and he likes working on tools for developers like the popular NSLogger when he’s not contracting, training or reviewing code for clients worldwide. Say hello to Florent on Twitter and GitHub.

Marin Todorov

Marin Todorov is one of the founding members of the team and has worked on eight of the team’s books. He’s an independent contractor and has worked for clients like Roche, Realm, and others. Besides crafting code, Marin also enjoys blogging, teaching and speaking at conferences. He happily open-sources code. You can find out more about Marin at

Tiffani Randolph


Tiffani Randolph


Over 300 content creators. Join our team.