dotSwift 2020

Swift training: Combine

February 5, 2020 Paris, France

Register now

Combine training

Introducing the Combine Framework

We have partnered with our host Daniel Steinberg to provide this Swift training on February 5, 2020 (2 days after dotSwift).

There are three changes coming to the way data flows through our iOS and Mac applications: there will be an emphasis on single-direction flow, the code we write will be declarative, and there will be a unification of Apple APIs for asynchronous events. All of this is captured in the new Combine framework. This one day class gets you up to speed with the techniques and mind-set to master this approach.

What you'll learn

The Combine framework provides a unified way for handling asynchronous data flow in your iOS and Mac applications.

You learn to take advantage of the publishers that Apple has introduced in UIKit, AppKit, Foundation, SwiftUI, and elsewhere.

You create subscriptions by subscribing to publishers with assign and sink.

We review concepts from functional programming that you've use with Arrays in Swift to motivate the step that makes Combine so useful. Often the type that the publisher is publishing and the type that the subscriber needs don't match. Combine's operators make it easy to transform types, filter out what you don't want, and combine publishers together. We'll spend a lot of time working with these operators that allow us to access the full power of Combine.

The Path to Combine

  • We begin with MVC
  • Delegates and Protocols
  • Closures
  • View Models and Presenters

Functional Foundations

  • Arrays
  • map
  • filter
  • zip
  • flatMap

Extended Example

  • Published
  • Assign
  • Map
  • Zip
  • Other Operators
  • Sink
  • Dispose Bag
  • Store
  • Separating the concerns

Examples (chosen from below)

  • Notifications
  • URLSession
  • CoreData
  • Passthrough

For who?

This hands-on, one day introductory course is for experienced Swift developers who are new to the Combine framework.

What you need

You need a Mac running the latest version of Xcode. You'll create projects throughout the day.