Hi there 👋

Welcome to my website. This is where I write about what I am learning at the moment. You may find a lot of it boring and not all that well written, but hey, no one is forcing you to read it. I just needed an outlet/excuse to write some stuff. If anyone finds any of it beneficial that is totally a bonus. Feel free to peruse at your leisure or move on if this isn’t the place for you. And if you have any feedback (preferably constructive), go ahead and send it to any of the links below. Thanks!

Recent Posts

Programming Resources

This is a list of some good resources I’ve come across in my time trying to learn programming. It isn’t comprehensive, but I’ve had some people ask about resources to look into, so I thought I’d put my list together in one place. If you have a good resource you think is worth adding, let me know and I’ll take a look. Getting Started with Swift/iOS/MacOS The Swift Programming Language Guide Read this!...

December 6, 2018 · 2 min

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

5 Reasons to Use Typealias

Swift has many features that allow us as the users of the language to customize how we write code, while still giving us all the protections of a statically typed language. Today we’re going to talk about one of those features which seems small, but it packs a lot of punch. The typealias keyword lets you define a “type alias”, a custom name for a class, struct or any other existing type in Swift....

May 25, 2022 · 8 min

Writing Short Code Isn't The Point

I don’t know about you, but I have spent a lot of time trying to write code in the shortest, most elegant way possible. I have put a lot of thought and time and effort into it over the years. And I see it a lot in other people’s code as well. I have seen it from both junior and senior developers. I have seen it in new code bases and mature code bases, both large and small....

March 13, 2022 · 9 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

Algorithms in Swift - Intro

I am looking for an excuse to learn more about algorithms, so I am going to write a series of posts that cover some of the most common ones and examine at what they might look like in Swift. I know algorithms often feel like an academic topic – something for nerds in computer science classes. They can be intimidating because their explanations and examples tend to be math-heavy and there is a lot of hard-to-decipher jargon out there about them....

January 14, 2019 · 10 min

Advent of Code 2018 - Set up

Original Set up The first (meta) problem with Advent of Code is to figure out how you’re going to organize your code for these challenges. How get the input into a usable format, how to keep things in order and minimize the time it takes, etc. At first, I decided to code my solutions in Swift in an Xcode playground. The organization I landed on for that was to make a blank source file and to declare a public let day1Input: String in there....

December 10, 2018 · 6 min