Recent articles

Jump to a random post

Effectively using static and class methods and properties

Updated on: November 4, 2024

Swift allows us to use a static prefix on methods and properties to associate them with the type that they’re declared on rather than the instance. We can also use static properties to create singletons of our objects which, as you have probably heard before is a huge anti-pattern. So when should we use properties […]

Read post

Opaque result types and the some keyword in Swift

Updated on: July 4, 2025

If you’re using SwiftUI to build your apps, you will have noticed that your view’s body property is of type some View. The some keyword was introduced alongside SwiftUI and it’s part of a feature called opaque result types (SE-0244). In this post, we’ll take a look at what the some keyword is exactly, which […]

Read post

Generics in Swift explained

Updated on: August 21, 2024

Whenever we write code, we want our code to be well-designed. We want it to be flexible, elegant and safe. We want to make sure that Swift’s type system and the compiler catch as many of our mistakes as possible. It’s especially interesting how Swift’s type system can help us avoid obvious errors. For example, […]

Read post

Efficiently loading images in table views and collection views

Updated on: April 29, 2024

When your app shows images from the network in a table view or collection view, you need to load the images asynchronously to make sure your list scrolls smoothly. More importantly, you’ll need to somehow connect the image that you’re loading to the correct cell in your list (instead of table view or collection view, […]

Read post

Appropriately using DispatchQueue.main

Published on: December 3, 2019

Lots of iOS developers eventually run into code that calls upon DispatchQueue.main. It’s often clear that this is done to update the UI, but I’ve seen more than a handful of cases where developers use DispatchQueue.main as an attempt to get their code to work if the UI doesn’t update as they expect, or if […]

Read post

Changes to location access in iOS 13

Published on: December 2, 2019

If you’re working on an app that requires access to a user’s location, even when your user has sent your app to the background, you might have noticed that when you ask the user for the appropriate permission, iOS 13 shows a different permissions dialog than you might expect. In iOS 12 and below, when […]

Read post

Adding haptic feedback to your app with CoreHaptics

Updated on: December 23, 2019

One of iOS 13’s more subtle, yet amazingly fun and powerful frameworks is CoreHaptics. With this framework, you can add tactile feedback to your app. When implemented correctly, this kind of feedback will delight and amaze your users. It will make your app feel alive like it’s physically responsive to the touch input from your […]

Read post

Storage options on iOS compared

Updated on: July 7, 2025

iOS comes with several storage options and it’s not trivial to determine what you’ll store where. In this post, we’ll explore some of the most popular storage options on iOS and we’ll explore their strengths and weaknesses to help you make an informed decision.

Read post

Updating your apps with silent push notifications

Updated on: April 29, 2024

A lot of apps rely on data from a remote source to display their content. Sometimes the content on the remote source changes regularly, sometimes it changes only sporadically. In all cases, your users will want to see the most up to date version of the information that you have to offer them, and in […]

Read post

Expand your learning with my books

Practical Swift Concurrency (the video course) header image

Learn everything you need to know about Swift Concurrency and how you can use it in your projects with Practical Swift Concurrency the video course. It contains:

  • About ten hours worth of videos and exercises
  • Sample projects that use the code shown in the videos.
  • FREE access to the Practical Swift Concurrency book
  • Free updates for future iOS and Swift versions.

The course is available on Teachable for just $89

Enroll now