Recent articles

Jump to a random post

Adding custom keys to the SwiftUI environment

Updated on: September 6, 2024

In Xcode 16, it’s possible to add custom keys using the convenient @Entry macro. Sometimes you’ll find yourself in a situation where you want to conveniently pass some object down via the SwiftUI environment. An easy way to do this is through the .environmentObject view modifier. The one downside of this view modifier and corresponding […]

Read post

Five things iOS developers should focus on in 2022

Updated on: April 24, 2024

A new year has started and most of us are probably figuring out what we should focus on this year. Whether it’s learning new things or expanding our knowledge on topics we’ve already learned about in the past, there’s always something that deserves our attention in the world of iOS development. In this short post […]

Read post

Forcing an app out of memory on iOS

Updated on: April 24, 2024

I’ve recently been working on a background uploading feature for an app. One of the key aspects to get right with a feature like that is to correctly handle scenarios where your app is suspended by the system due to RAM constraints or other, similar, reasons. Testing this is easily done by clearing the RAM […]

Read post

Understanding how and when SwiftUI decides to redraw views

Updated on: May 16, 2025

There’s a good chance that you’re using SwiftUI and that you’re not quite sure how and when SwiftUI determines which views should redraw. And arguably, that’s a good thing. SwiftUI is clearly smart enough to make decent decisions without any negative consequences. In fact, you might even have set up your app in a way […]

Read post

Understanding Swift’s AsyncSequence

Updated on: April 24, 2024

The biggest features in Swift 5.5 all revolve around its new and improved concurrency features. There’s actors, async/await, and more. With these features folks are wondering whether async/await will replace Combine eventually. While I overall do not think that async/await can or will replace Combine on its own, Swift 5.5 comes with some concurrency features […]

Read post

Using async await in Swift to build an image loader

Updated on: July 4, 2025

Async/await will be the defacto way of doing asynchronous programming on iOS 15 and above. I’ve already written quite a bit about the new Swift Concurrency features, and there’s still plenty to write about. In this post, I’m going to take a look at building an asynchronous image loader that has support for caching. SwiftUI […]

Read post

What exactly is a Combine AnyCancellable?

Updated on: April 24, 2024

If you’ve worked with Combine in your applications you’ll know what it means when I tell you that you should always retain your cancellables. Cancellables are an important part of working with Combine, similar to how disposables are an important part of working with RxSwift. Interestingly, Swift Concurrency’s AsyncSequence operates without an equivalent to cancellable […]

Read post

Building a token refresh flow using async await in Swift

Updated on: July 4, 2025

One of my favorite concurrency problems to solve is building concurrency-proof token refresh flows. Refreshing authentication tokens is something that a lot of us deal with regularly, and doing it correctly can be a pretty challenging task. Especially when you want to make sure you only issue a single token refresh request even if multiple […]

Read post

Using Swift’s TaskGroup for tasks with varying output

Updated on: July 7, 2025

Earlier, I published a post that shows you how to use Swift Concurrency’s task groups. If you haven’t read that post yet, and you’re not familiar with task groups, I recommend that you read that post first because I won’t be explaining task groups in this post. Instead, you will learn about a technique that […]

Read post

How to use async let in Swift?

Updated on: April 24, 2024

In last week’s post, I demonstrated how you can use a task group in Swift to concurrently run multiple tasks that produce the same output. This is useful when you’re loading a bunch of images, or in any other case where you have a potentially undefined number of tasks to run, as long as you […]

Read post

Expand your learning with my books

Practical Core Data header image

Learn everything you need to know about Core Data and how you can use it in your projects with Practical Core Data. It contains:

  • Twelve chapters worth of content.
  • Sample projects for both SwiftUI and UIKit.
  • Free updates for future iOS versions.

The book is available as a digital download for just $39.99!

Learn more