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
Subscribe to my newsletter and never miss a post
Recent articles
Jump to a random postIf 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 postWhenever 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 postWhen 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 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 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