With Apple’s overhaul of how concurrency will work in Swift 5.5 and newer, we need to learn a lot of things from scratch. While we might have used DispatchQueue.async or other mechanisms to kick off multiple asynchronous tasks in the past, we shouldn’t use these older concurrency tools in Swift’s new concurrency model. Luckily, Swift […]
Read post
Subscribe to my newsletter and never miss a post
Recent articles
Jump to a random postThis post applies to the version of SwiftUI that shipped with iOS 15, also known as Swift 3. To learn how you can present a bottom sheet on iOS 16 and newer, take a look at this post. With iOS 15, Apple introduced the ability to easily implement a bottom sheet with UISheetPresentationController in UIKit. […]
Read postPresenting a bottom sheet in UIKit with UISheetPresentationController
Published on: June 30, 2021We’ve seen bottom sheets in Apple’s apps for a while now, and plenty of apps have followed this pattern. If you’re not sure what I mean, it’s the kind of sheet that takes up just a part of the screen and can be swiped upwards to take up the whole screen or downwards to be […]
Read postIf you’ve been following along with Swift Concurrency in the past few weeks, you might have come across the term "task local values". Task local values are, like the name suggests, values that are scoped to a certain task. These values are only available within the context they’re scoped to, and they are really only […]
Read postEvery since Apple announced a new Concurrency model in 2021, we’ve all been moving from completion handlers to async / await. That said, Swift Concurrency is much bigger than just async / await. It features a whole new Concurrency model that includes compile-time protection against data races, and new tools to prevent our code from […]
Read postWWDC Notes: Swift concurrency: Behind the scenes
Published on: June 10, 2021Meet async / await, explore structured concurrency, protect mutable state with actors should be watched first. Threading model Compares GCD to Swift. It’s not built on top of GCD. It’s a whole new thread pool. GCD is very eager to bring up threads whenever we kick off work on queues. When a queue blocks its […]
Read postWWDC Notes: Bring Core Data concurrency to Swift and SwiftUI
Published on: June 10, 2021Persistence everywhere Core Data takes care of many complexities to persist data. It converts in-memory graph to persisted data and takes care of all kinds of complex tasks like memory management. Core Data works on all platforms, and it’s great in Swift. Apple’s been working to make Core Data better with Swift over the years. […]
Read postWWDC Notes: Discover concurrency in SwiftUI
Published on: June 9, 2021When performing slow work, you might dispatch off of the main queue. Updating an observable object off of the main queue could result in this updating colliding with a “tick” of the run loop. This means that SwiftUI receive an objectWillChange, and attempt to redraw UI before the underlying value is updated. This will lead […]
Read postWWDC Notes: Meet AsyncSequence
Published on: June 9, 2021Map, filter, reduce, dropFirst all work in async sequences: for try await someThing in async.dropFirst() { } For example. AsyncSequence suspends on each element and receives values asynchronously from the iterator. AsyncSequences either complete with success or stop when an error is thrown. Implementing an AsyncSequence follows all the rules that a normal sequence follows. […]
Read postWWDC Notes: What’s new in SwiftUI
Published on: June 9, 2021A good way to get started with SwiftUI is to use it for new features. SwiftUI can be mixed in with UIKit and AppKit code. It also allows you to expand into new platforms, like macOS, with little to no work. Essentially, try to do new work with SwiftUI whenever you can. Better lists SwiftUI […]
Read postExpand your learning with my books

Learn everything you need to know about Swift Concurrency and how you can use it in your projects with Practical Swift Concurrency. It contains:
- Eleven chapters worth of content.
- Sample projects that use the code shown in the chapters.
- Free updates for future iOS versions.
The book is available as a digital download for just $39.99!
Learn more