PragmaticBookshelf

PragmaticBookshelf

Devtalk Sponsor

A Combine Kickstart (PragProg)

Combine is about to replace all those techniques for asynchronously passing information around in an iOS or macOS App: Target-Action, callbacks, closures, delegates, notifications... all of them.

Daniel H Steinberg

Combine is about to replace all those techniques for asynchronously passing information around in an iOS or macOS App: Target-Action, callbacks, closures, delegates, notifications… all of them.

This hands-on, fast-moving kickstart introduces you to the future of declarative and reactive programming on Apple platforms. We focus on core concepts and building discrete, easy-to-understand, pieces of a pipeline that allows your app to react to changes in the state.

In your typical iOS or Mac app, the controller sees the view and the model and can send them messages directly. But how do they communicate back?

We have decades of experience using all sorts of devices. They all work fine but they all work differently.

The Combine framework unifies these different modes of communication into a single pattern. In fact, Apple has wrapped traditional methods like Notification, Timers, URLSession, and even KVO in Combine publishers so that they can participate as well.

We start with a UIKit example and transition to SwiftUI so that you can see that no matter which framework you are using for your user interface, the time is right for Combine. You’ll quickly understand the four pillars of Combine: publishers, subscribers, subscriptions, and operators and start building out pipelines that connect far away sources.

This code-along book is filled with examples that covers a myriad of use cases while providing you with the mental model to apply these techniques to your own projects.

This work was written and produced entirely by the author. We are proud to be distributing it.


Daniel H Steinberg is the author of more than a dozen books including the best selling books , A SwiftUI Kickstart, A Swift Kickstart, A Swift Kickstart, Second Edition, and Dear Elena. He has written apps for the iPhone and the iPad since the SDKs first appeared and has written programs for the Mac all the way back to System 7.

Daniel presents iOS, Functional Programming, SwiftUI, and Swift training and consults through his company Dim Sum Thinking. When he’s not coding or talking about coding for the Mac, the iPhone, and the iPad he’s probably cooking, baking bread, or hanging out with friends. Details on his training and speaking are on the Dim Sum Thinking website.


Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “devtalk.com" at checkout :+1:

Where Next?

Popular Macos topics Top

PragmaticBookshelf
Apple’s Swift programming language has finally reached stability, and developers are demanding to know how to program the language proper...
New
PragmaticBookshelf
Core Data expert Marcus Zarra walks you through a fully developed application based around the Core Data APIs. You’ll build on this appli...
New
PragmaticBookshelf
A Swift Kickstart is the perfect book for the experienced developer who wants to get serious about learning the Swift programming languag...
New
PragmaticBookshelf
This is one of those moments where everything changes. SwiftUI is the future for developers targeting Apple platforms and _A SwiftUI Kic...
New
PragmaticBookshelf
There’s nothing natural about Functional Programming. It’s awkward, it feels funny, ...And then one day you start to see the world differ...
New
PragmaticBookshelf
Combine is about to replace all those techniques for asynchronously passing information around in an iOS or macOS App: Target-Action, cal...
New
First poster: bot
Create macOS or Linux virtual machines - WWDC22 - Videos - Apple Developer. Learn how you can use the Virtualization framework to quickl...
New
PragmaticBookshelf
A quirky, fast-paced tour of the components of modern concurrency in Swift. Daniel H Steinberg Swift’s new async/await family is a ...
New

Other popular topics Top

PragmaticBookshelf
Design and develop sophisticated 2D games that are as much fun to make as they are to play. From particle effects and pathfinding to soci...
New
AstonJ
I’ve been hearing quite a lot of comments relating to the sound of a keyboard, with one of the most desirable of these called ‘thock’, he...
New
AstonJ
I ended up cancelling my Moonlander order as I think it’s just going to be a bit too bulky for me. I think the Planck and the Preonic (o...
New
dimitarvp
Small essay with thoughts on macOS vs. Linux: I know @Exadra37 is just waiting around the corner to scream at me “I TOLD YOU SO!!!” but I...
New
AstonJ
In case anyone else is wondering why Ruby 3 doesn’t show when you do asdf list-all ruby :man_facepalming: do this first: asdf plugin-upd...
New
AstonJ
If you are experiencing Rails console using 100% CPU on your dev machine, then updating your development and test gems might fix the issu...
New
PragmaticBookshelf
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or...
New
DevotionGeo
I have always used antique keyboards like Cherry MX 1800 or Cherry MX 8100 and almost always have modified the switches in some way, like...
New
New
AstonJ
If you’re getting errors like this: psql: error: connection to server on socket “/tmp/.s.PGSQL.5432” failed: No such file or directory ...
New