Recent articles

Jump to a random post

Find and copy Xcode device support files

Updated on: October 13, 2020

Every once in a while I run into a situation where I update my iPhone to the latest iOS before I realize I’m still using an older version of Xcode for some projects. I usually realize this when Xcode tells me that it "Could not locate device support files". I’m sure many folks run into […]

Read post

Enforcing code consistency with SwiftLint

Published on: March 30, 2020

If you’re ever amongst a group of developers and want to spark some intense discussion, all you need to do is call out that tabs are better than spaces. Or that indenting code with two spaces is much better than four. Or that the curly bracket after a function definition goes on the next line […]

Read post

Calculating the difference in hours between two dates in Swift

Published on: March 25, 2020

Sometimes you need to calculate the difference between two dates in a specific format. For instance, you might need to know the difference between dates in hours. Or maybe you want to find out how many days there are between two dates. One approach for this would be to determine the number of seconds between […]

Read post

Adding your app’s content to Spotlight

Published on: March 23, 2020

On iOS, you can swipe down on the home screen to access the powerful Spotlight search feature. Users can type queries in Spotlight and it will search through several areas of the system for results. You may have noticed that Spotlight includes iMessage conversations, emails, websites, and more. As an app developer, you can add […]

Read post

Profiling and debugging your Combine code with Timelane

Published on: March 16, 2020

When we write code, we write bugs. It’s one of the laws of the universe that we can’t seem to escape. The tools we have to discover, analyze and fix these bugs are extremely important because without good debugging tools we’d be poking at a black box until we kind of figure out what might […]

Read post

What is @escaping in Swift?

Updated on: January 20, 2025

If you’ve ever written or used a function that accepts a closure as one of its arguments, it’s likely that you’ve encountered the @escaping keyword. When a closure is marked as escaping in Swift, it means that the closure will outlive, or leave the scope that you’ve passed it to. Let’s look at an example […]

Read post

Using Result in Swift 5

Published on: March 2, 2020

As soon as Swift was introduced, people were adding their own extensions and patterns to the language. One of the more common patterns was the usage of a Result object. This object took on a shape similar to Swift’s Optional, and it was used to express a return type that could either be a success […]

Read post

Expand your learning with my books

Practical Combine header image

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

  • Thirteen chapters worth of content.
  • Playgrounds and 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