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
Subscribe to my newsletter and never miss a post
Recent articles
Jump to a random postAppropriately using DispatchQueue.main
Published on: December 3, 2019Lots 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 postChanges to location access in iOS 13
Published on: December 2, 2019If 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 postIf you use Core Data or SwiftData in your apps, you might be aware that the larger and more complicated your set up becomes, the harder it is to debug. It’s at this point where you might start to get frustrated with your persistence framework and its black-box kind of implementation. You might think that […]
Read postOne 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 postiOS 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 postA 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 postApps send and receive data all the time. Some apps mostly read data from the network, others are more focussed on sending data to servers. Depending on your needs, you might need to be able to send data to a server as quickly as possible, or maybe you need to receive new data as soon […]
Read postDecember has always been a month of sharing for me. Sharing food and experiences with family, celebrating the end of what has (hopefully) been a wonderful year, reflecting and setting goals for the new year. And this year, I have decided to share something really special with the iOS community. In December I will publish […]
Read postYou might want to install two versions of your app side by side, like a development build and a release build. Or you might want each build to talk to a different backend so you don’t accidentally test against production data. xcconfig files make those kinds of tweaks predictable and easy to manage. In practice […]
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 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