Learn more about Xcode

Supporting Universal Links on iOS

Published on: July 4, 2025

Universal Links are a fantastic way to allow users to share your app’s content through URLs that work on the web, iOS devices, and more. Learn how you can set up Universal Links for your app by setting up entitlements as well as your server.

Read post

Testing push notifications in the Simulator with Xcode 11.4

Updated on: August 19, 2020

For years we’ve had to resort to using physical devices when testing push notifications. With Xcode 11.4, Apple finally gives developers the tools needed to test push notifications on the iOS Simulator. I’m going to assume you already know how to add push notifications to your app. If you’ve never added push notifications to an […]

Read post

Five tips to write better todos in Xcode

Updated on: February 10, 2020

We all write the dreaded // TODO: and // FIXME: comments every once in a while. Sometimes we do it because we know our code can be better but we’re not sure how, other times we don’t have the time to write an optimal solution because of deadlines, and other times we just want to […]

Read post

Dependency injection with Storyboards and Xcode 11

Updated on: February 10, 2020

For years I have had a bit of a love and hate relationship with Storyboards. I love how easy they make it for me to set up my AutoLayout constraints, but they can quickly grow unwieldy and for large projects with multiple developers Storyboards are hard to use because of merge conflicts that occur when […]

Read 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

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

Configuring projects with xcconfig

Updated on: February 10, 2020

Sometimes you want to be able to install two versions of your app side by side, for example, a development version and a release version that show up as individual apps by giving them different bundle identifiers. And maybe they should also use different versions of your REST API depending on the type of build […]

Read post

Enforcing modular code with frameworks in Xcode

Updated on: February 10, 2020

Every iOS developer I know dreams of writing code that’s DRY, modular, testable and reusable. While this is a great goal to strive for it’s often quite hard to write code that is completely modular. It just takes one oversight to blow most of the modularity you have achieved right out the window. One technique […]

Read post

Clean derived data from Xcode, the simple way

Updated on: February 10, 2020

Update for Xcode 11: Unfortunately, it appears that this method of cleaning derived data no longer works😕. Looks like we’re stuck purging ~/Library/Developer/Xcode/DerivedData/ by hand again. If you do know of a workaround similar to the one described here, send me a tweet and I’ll update this post! Any iOS developer that has spent significant […]

Read post

Expand your learning with my books

Practical Core Data header image

Learn everything you need to know about Core Data and how you can use it in your projects with Practical Core Data. It contains:

  • Twelve chapters worth of content.
  • Sample projects for both SwiftUI and UIKit.
  • Free updates for future iOS versions.

The book is available as a digital download for just $39.99!

Learn more