I'm Trevor, a Swift developer working mainly in iOS 📱. This blog is where I share my learnings, thoughts & insights. Thanks for reading!

Featured Posts:

Shortcut for ".compactMap { $0 }" in Combine (Swift)

I have this pet peeve where I don’t like to type out .compactMap { $0 } every time I want to remove nils from a publisher. Today I finally took some time to find a good alternative & I really like how ...

Read more

Refactor A Private Callback Based API To Use Async/Await

Last time we talked about how to refactor a callback based network call into an async/await based call. In that case, we had access to the underlying networking code & updated the entire chain of method calls to use async/await...

Read more

Refactor A Callback Based API To Use Async/Await

Recently I’ve refactored a few callback based network requests to use Swift’s new Async / Await syntax. Let’s take a look at how we can take a conventional callback based API method and improve its readability and simplicity...

Read more

Add an App Download Banner to Your Web Page

Let’s learn how to add a slick app download banner to your website! Apple officially calls this a Smart App Banner, because it changes its wording based on if the user has the app installed. If the app isn’t installed, the...

Read more

SwiftUI Divider Colors & Thickness

Another SwiftUI post coming your way! This time we’ll take a look at Divider and how we can change its color. As nice as it would be to change the divider color with tint or foregroundColor, we can’t do it that way 😭...

Read more

SwiftUI Alert With Styled Buttons

SwiftUI is the best thing since sliced bread, but I often come across simple problems that take longer than expected to sort out. Take for example an alert where I want to style the buttons. In my specific case it was a confirm...

Read more

I made a Swift syntax highlighting app

If you’re a Swift blogger like me, you probably have to come up with some easy way to highlight code syntax on the web. After some searching I came across Splash which was created by the relatively famous John Sundell (he uses...

Read more

Wait for a text field to have focus during an XCUITest

I was recently working on some XCUITests and attempting to get them working inside a CI/CD pipeline (Bitrise). It turns out that the virtual machines on Bitrise are a bit underpowered, so many things like building a project ...

Read more

Easily Keep Build Numbers And Marketing Versions In Sync

Let’s take a look at how to change all of your targets’ build numbers and marketing versions in a single place. I was surprised to find that a lot of developers don’t know this simple trick & manually change their build numbers...

Read more

Fix the cached launch screen image bug on iOS

Every once in a while you’ll probably make some changes to your launch screen, and I’ve run into a few headaches while doing it. Most recently I had trouble with an image not updating as expected. Let’s walk through what I did...

Read more

My Realistic Physics Contribution to ConfettiSwiftUI

I was recently working on my Wordie app & needed some confetti to celebrate a victory when the user guesses the correct word. I built the app completely in SwiftUI so I started searching for a confetti library I could drop in...

Read more

Debug Xcode Scheme Pre & Post Actions

Going along with my previous post about auto incrementing build numbers in Xcode, I thought it might be useful to share how I debugged Xcode scheme pre & post actions. Normally these actions don’t show error messages...

Read more

Auto Increment Your Build Numbers

If you're like me you probably get tired of manually incrementing your app build number in Xcode. After a few hours of testing I finally nailed down a simple solution that works on Xcode 13.2.1. Let's dive right in...

Read more

Building your first widget - Step 2

In step 1 we created the widget extension target & got it running on the simulator. Now let’s look at the basic parts of a widget. You’ll notice that Apple created a folder with your widget name & made a template file for you...

Read more

Building your first widget - Step 1

It was pretty cool when Apple gave us widgets with iOS 14. Finally we could customize our home screens with something more than just app icons! This is a simple walkthrough of how to add a widget to your app & what to put in...

Read more

Handle Multiple Async Callbacks with DispatchGroup

The first time I heard of a DispatchGroup was a few years into my iOS career - my teammate mentioned that he used it in his pull request code. He said this DispatchGroup made it easy to wait for multiple async callbacks...

Read more