A Functional Kickstart: Portland - Daniel Steinberg


Thinking Functionally in Swift 4.2

If you're familiar with the Swift Programming Language, and want to take your game to the next level, then this class is for you! 

This two-day course is for experienced Swift developers who are new to Functional Programming. Your instructor will be Daniel Steinberg, author of A Swift Kickstart.

This class will be held at the Holiday Inn Portland-Airport on October 17-18, 2018.


To book this course for your group, company, or public event see Booking and Availability.


At the end of this course, your approach to the code you write will change. You'll look at functions differently. They will be building blocks in the apps you write the same way objects have been up til now. Your code will be more modular and testable. The goal is not to replace the OO code you know and love so much as it is to add new and powerful tools to your toolbelt and to show you when to use them.

We begin by looking more closely at functions you use already. Next we explore higher order functions that either accept or return closures. We play with four canonical examples from the Swift Standard Library: map(), filter(), reduce(), and flatMap() and then create map() functions of our own. We expand to create and work with our own flatMap() and apply() functions.

We assume that you are an experienced programmer who has spent some time looking at Swift but you are new to Functional Programming. This course shows you how to add elements of a functional style to Object-Oriented and Protocol-Oriented Programming.


Syllabus Highlights

Basic Functions

Function Parameters
Avoiding Side effects
Embracing Generics
Introducing Custom Operators
Functions as properties

Higher Order Functions

Returning Closures
Consuming Closures
Capture Lists

Working with Collections


More with Map

Our Own Map

More with FlatMAp

Our Own FlatMap
Functors and Monads


Where Applicatives Fit
Apply with Monoids

Now what

Using Map and FlatMap and Apply
What changes in your code
Concrete Examples


Note: The order and contents of this course may vary.


You need a Mac with the latest version of Xcode 10 installed. We'll create Xcode playgrounds and iOS 12 projects throughout the course. If you want to deploy to your devices you'll need the appropriate certificates.


Daniel Steinberg

Daniel is the author of the best selling books A Swift Kickstart and Developing iOS 7 Apps for iPad and iPhone (the official companion book to the popular iTunes U series from Stanford University taught by Paul Hegarty).

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 iPhone, Cocoa, and Swift training and consults through his company Dim Sum Thinking. His books are available on the iBookstore. When he’s not coding or talking about coding for the Mac, the iPhone, and the iPad he’s probably cooking or hanging out with his daughter.

@dimsumthinking / dimsumthinking.com

Your registration gets you two days of hands-on training with one of the best trainers in the Apple developer community. Also included in your registration are Breakfasts and Lunches Wednesday and Thursday, as well as mid-morning/afternoon snacks and beverages. 

By registering for this event, you agree to abide by our Code of Conduct.

Registrations are transferable, non-refundable.

Group rates available

Have a group of three or more that you'd like to send to A Functional Kickstart? You're in luck!

Contact for group rates