Recent articles

Jump to a random post

Installing multiple Xcode versions with xcversion

Updated on: February 10, 2020

As a developer that uses Xcode on a daily basis for multiple projects, you sometimes need to use different versions of Xcode depending on the project you’re working on. Or maybe you want to try out the latest Xcode beta, for example right after Apple announced it after WWDC. One way to manage is to […]

Read post

Loose coupling and the law of Demeter

Published on: December 17, 2019

When you’re designing a new component for your codebase, you will usually only think of the component itself, and the objects that it interacts with directly. If you’re designing a component that authenticates a user, you will typically only consider objects directly related to the authentication flow. You’ll take into account that there’s probably a […]

Read post

Sequencing tasks with DispatchGroup

Published on: December 16, 2019

When you’re building apps, there are times when you need to perform certain tasks before executing the next task. Imagine a scenario where you need to make a couple of API calls to a webserver to retrieve information before you can begin processing the information that’s fetched by all preceding API calls, so it can […]

Read post

Breaking an app up into modules

Published on: December 15, 2019

As apps grow larger and larger, their complexity tends to increase too. And quite often, the problems you’re solving become more specific and niche over time as well. If you’re working on an app like this, it’s likely that at some point, you will notice that there are parts of your app that you know […]

Read post

Using preconditions, assertions, and fatal errors in Swift

Updated on: January 19, 2024

As developers, we are often told that we should avoid crashing our apps at all costs. It’s why we are told that we shouldn’t force unwrap our optionals, that we should avoid unowned references and that we should never use try! in production code. In today’s article, I would like to offer you a counter […]

Read post

Testing your push notifications without a third party service

Published on: December 13, 2019

Many apps rely on push notifications to inform their users about interesting updates, important events, or interactions on social media that a user probably wants to know about. It’s the perfect way to grab your users’ attention and inform them about information they are likely interested in. To send push notifications, a lot of companies […]

Read post

Scheduling daily notifications on iOS using Calendar and DateComponents

Published on: December 12, 2019

On iOS, there are several ways to send notifications to users. And typically every method of sending push notifications has a different goal. For example, when you’re sending a remote push notification to a user, you will typically do this because something interesting happened outside of the user’s device. Somebody might have sent them a […]

Read post

Handling deeplinks in your app

Updated on: July 6, 2020

iOS 14 introduced a new way to build apps where you no longer need an App- and SceneDelegate for SwiftUI apps. Learn how to handle deeplinks for these apps in this article. On iOS, it’s possible to send users from one app to the next or to send them from a webpage into an app. […]

Read post

Measuring performance with os_signpost

Published on: December 10, 2019

One of the features that got screen time at WWDC 2018 but never really took off is the signposting API, also known as os_signpost. Built on top of Apple’s unified logging system, signposts are a fantastic way for you to gain insight into how your code behaves during certain operations. In this post, I will […]

Read post

Using Xcode’s memory graph to find memory leaks

Updated on: November 11, 2021

There are many reasons for code to function suboptimally. In a post, I have shown you how to use the Time Profiler to measure the time spent in each method in your code, and how to analyze the results. While a lot of performance-related problems can be discovered, analyzed and fixed using these tools, memory […]

Read post

Expand your learning with my books

Practical Swift Concurrency header image

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