• Swift - Comparable

    My last blog post I wrote briefly about Swift’s Equatable protocol, which allows the use of == and != between custom defined types. Naturally, I feel its fitting to talk a bit about Equatable’s close relative – the Comparable protocol. Adopting the Comparable protocol allows for a custom type to...


  • Swift - Equatable

    Mathematical notation provides the foundation to which programming languages are built. These universally understood symbols allow us to convey meaning and intent to our programs in a concise way. The mathematical operators utilized by Swift are just regular functions with special names. For example, the ‘==’ operator tests equality between...


  • Swift - Coordinators

    This past week I came across an interesting talk post by Soroush Khanlou introducing the idea of using coordinators when building iOS apps. I decided to take a crack at the concept by building out a small login/sign up workflow using coordinators to drive my app logic, in short, the...


  • UIStoryboard Woes

    Since their introduction, UIStoryboards have been a hot topic in the iOS community. Some people love them, some don’t. I’ve gone through stints of Storyboard use, but generally have come to avoid them. They’re deceptive time savers Here’s a little rundown of how easy it is to get sucked into...


  • What Makes a Developer Better?

    How to we define “better” in the context of software creation. What makes a software developer better? There really isn’t a common metric to define such a thing. Are they faster? Is the code they produce cleaner, more extendible or less buggy? Do they know more? Probably some combination of...