Completion Handlers in Swift

Completion handlers are everywhere in Swift. They are commonly used in Apple’s frameworks and many third-party libraries. They are often put forward as an alternative to delegation and the target action pattern, especially in the context of long-running work like fetching data over the network or processing images. You might see them referred to as “handlers” or “completion blocks”, simply “completions”, or maybe something else depending on the conventions of the code base you are working in....

October 22, 2022 · 14 min

My Journey Into App Development

The Kindling My journey to start developing software as my livelihood took a while. Looking back, I realize that I was always sort of around computers. I grew up in the age when regular people started using the internet. I had to take a few typing and computer classes in school as a kid. I had a few classes that touched on web development with various tools. My dad also did some work with computers and we always had at least one desktop around the house, and often more than one....

September 3, 2022 · 11 min

Pre Build Actions

I ran into this cool little piece of functionality in Xcode the other day that helped me solve a real problem. I have never seen anyone mention that you can do this, so I’m sharing it here in the hopes that it will help someone else out. I was recently working with a framework which uses a configuration file. This file is stored in JSON and is bundled with the app....

August 29, 2022 · 3 min

Stop Throwing Away Errors

We all know how it goes when we are trying to get something working. We want to get there as fast as we can and we get focused on the “happy path”. Maybe we’re not that familiar with the technology/language/concept, but we have one specific goal or task we are trying to achieve and we don’t care so much about the edge cases or what will happen when things go wrong....

August 27, 2022 · 14 min

Fixing an Unfixable Bug

If you have been an iOS developer for any length of time, you have certainly come across bugs that are hard to understand and hard to track down. And if you have an app out in the world that real human beings use you have probably encountered a bug or crash that is happening for some subset of your users, but that you cannot for the life of you reproduce on your device....

March 6, 2022 · 7 min