Easy Auto Layout constraint groups

If you’ve been making apps for a little while, there’s a good chance you’ve had to design a view with two different states. Say, an “expanded” state and a “compact” state. Here’s a simple example: Doing this with Auto Layout (we all use Auto Layout now right?) can mean setting up a bunch of constraints […]

Xcode and Regex

The Problem Have you ever wanted to do a find-and-replace in Xcode like this? FIND: Created by Alpha on 150301. REPLACE: Created by Alpha on 150301. Updated by Beta (2017). The tricky thing here is that the date (150301) probably isn’t going to be consistent throughout your Xcode project, which makes a straightforward find-and-replace impossible. […]

9 tips for setting up a new Xcode project

There’s a development podcast called Mobile Couch I’ve been listening to more and more lately. They cover everything from git to ReactiveCocoa to working remotely, and they approach each topic with a great combination of experience, open-mindedness, and humour (and they’re from Australia). Anyways, just as I was really getting into the episodes, they recently […]

The many colours of “no tax”

After a great question from @gregheo and another call to the CRA, I’ve made a change to the “Filing HST for an App Company in Canada” article from a few months ago. The confusion came from the fact that there are two distinct ways to sell something with no tax: zero-rated sales (i.e., “taxable at […]

Basic array calculations in Excel

Array calculations are a great way to clean up your Excel worksheets, replacing columns and columns of “calculation” data with the same logic encased in one tidy little cell. This quick tutorial takes you through a basic example to show you how array calculations are done! The problem In the app I’m currently working on […]

For x in 1..3..10 ? Yes, please.

There’s some syntax in MATLAB I always really liked. If you type 1:10, you get an array (or “vector”) of [1,2,3,4,5,6,7,8,9,10]. If you want to increment the values by something other than 1, that’s easy. Type 1:3:10 and you get [1,4,7,10]. When I first learned of Swift’s Range syntax, I was happy to see that […]

Five Types of App Features

Yesterday, I came across this article by Henrik Kniberg that does a fantastic job of summarizing and refreshing the now-famous “MVP” approach, made popular in Lean Startup. The article tells some great stories from places like Lego and the Swedish Police force showing how user-focussed design works in practice. It’s a great read, and a great […]

Filing HST for an App Company in Canada

Filing HST/GST is something that many small companies in Canada have to do every few months. It’s not particularly hard for an app company, at least in my experience, but like many tax processes in Canada it’s not that intuitive or clear either. 🙄 So, I put together a basic workflow that I use (and regularly revise), and […]

Parsing Parse

Our biggest app uses Parse, so last week’s announcement that the service was ending was a shock. It will mean moving all our users’ data somewhere else, investing lots of time in the process, and all for an update that—best case scenario—users won’t even notice. Do I regret using Parse as a back-end? I’ve given […]

Hello World

After reading Thomas Hanning’s article, “10 Reasons You Should Blog As A Developer,” I finally got the motivational push I needed to start my blog as a developer… with life, reflections, and my stumbling attempts to get my head around politics and policy thrown in too. (And probably the occasional dog 🐕.) One of the many things that making products has […]