Xcode Instruments is a developer tool that comes for free with Xcode. It has a lot of useful tools to inspect and improve your app. Although it has a lot to offer, it’s often an area which is a bit less known. In this blog post, I’ll show you how I’ve improved the performance in …
Error handling in Combine explained with code examples
Once you get started with Combine you’ll quickly run into error handling issues. Each Combine stream receives either a value or an error and unlike with frameworks like RxSwift you need to be specific about the expected error type. To be prepared on those cases I’ll go over the options available in Combine to catch, …
Array vs Set: Fundamentals in Swift explained
An Array and a Set seem to be quite the same in the beginning. They’re both collection types and have quite a lot of similarities. Still, we’re often tempted to use Arrays instead of Sets. While this does not have to be a problem it could definitely be better to sometimes go for a Set …
Xcode refactoring options explained with examples
A brand new Xcode refactoring engine was introduced in Xcode 9. Although this is quite a few Xcode versions ago it is still a quite unknown functionality for a lot of us. You might have read my blog post on command-click options but do you know how to extract methods or variables? The Xcode refactoring …
Unused images and resources clean up in Xcode
Unused images can exist as a result of iterations in a project. Once a feature is no longer needed and remove, it’s not always cleaned up completely. Therefore, it’s useful to know how to clean up your Xcode assets. Just like in my blog post on cleaning up unused localized strings, I’ll go over a …
UIKeyCommand how-to add keyboard shortcuts & speed up your workflow

The UIKeyCommand class allows you to add keyboard shortcuts to your app. Although they might seem useful for iPad only, there are reasons to add this to your iPhone app as well. They’re easy to set up and they work in the simulator! After I wrote Shortcuts essentials in Xcode to speed up your workflow …
Combine debugging using operators in Swift

Combine debugging can be hard with long stack traces which don’t help at all. Asynchronous callbacks follow up on each other rapidly and easily make it hard to find the root cause of an issue. It’s next to the big learning curve one of the most common reasons to not go for reactive programming in …
Creating a custom Combine Publisher to extend UIKit
A Custom Combine Publisher can add missing functionalities to UIKit elements you use every day. A lot of boilerplate code can be removed and implementations can be simplified. A simple example is responding to UIControl events. The standard library comes with a few great extensions to, for example, decode JSON easily and assign values to key …
Using Xcode Previews with existing UIKit views without using SwiftUI
Xcode Previews have been added in Xcode 11 and allow you to quickly preview the current state of your view. Although you might think that you need to use SwiftUI to make use of this great new feature, it’s not true! Whether you’re working with a custom UIView or with a custom UIViewController, they both …
Dynamic Member Lookup combined with key paths in Swift
Dynamic member lookup has been introduced in Swift 4.2 with SE-195 and already allowed some pretty nice solutions to for example implement JSON parsing. Just like the @propertyWrapper keyword as discussed in last weeks blog post, it can be used with a @ keyword: @dynamicMemberLookup. As quoted from the proposal, dynamic member lookup has been added …