development


Diffable Data Sources and Data Storage — Part 1

When I first started programming iOS (back in iOS 3.2), many of my apps revolved around table views (UITableView). At first, I was surprised by how Apple makes you supply the data to a table view. You don’t just store all the data in the table view. Instead, there’s a separate object, the data source …

Diffable Data Sources and Data Storage — Part 1 Read More »


Tricks for Testing External Links

On iOS, there is no deep mechanism for interapplication communication such as macOS provides through Apple events. Your app is sandboxed; other apps cannot drive it. There is, however, a simple and safe mechanism for letting another app send small messages to your app, namely through external links. We are all familiar with links. Suppose …

Tricks for Testing External Links Read More »


Quibi, We Hardly Knew Ye

I mean, we knew it enough to mock it. Twice. But the point is, we won’t be getting to know it any better, because it is shutting down a mere six months after launch. In a Medium post, Jeffrey Katzenberg and Meg Whitman said, “we feel that we’ve exhausted all our options. As a result …

Quibi, We Hardly Knew Ye Read More »


Swift 5.2: No More Unsafe Pointer References

When people upgraded to Xcode 11.4, a lot of complaints started to appear on StackOverflow that code of the following form was giving trouble (this is an odd way to write this, but just bear with me): let color = // some UIColor var r = 0 as CGFloat var g = 0 as CGFloat …

Swift 5.2: No More Unsafe Pointer References Read More »


What I Look for When Refactoring

The Backstory My current assignment is working on a rather large app that had a huge summer push that involved scaling the team up to several developers per platform and the addition of a handful of third-party libraries. As anyone who has worked in iOS development will tell you, the App Delegate is often the …

What I Look for When Refactoring Read More »


Help Wanted, Help Offered

Hackathon  Last week we talked about the amazing response from the tech sector to the coronavirus — how 3D printers, app developers, and content creators are devoting their time to helping others during this unprecedented crisis.  This week we’ll tell you how you can help. Thursday Devpost announced the global COVID-19 online hackathon, open to all …

Help Wanted, Help Offered Read More »


Happy Path Democracy

Unless you’ve completely sworn off politics (honestly, we wouldn’t blame you), you’ll have heard by now about the disastrous failure of the app hired to report results of the Iowa Democratic caucus. Precinct chairs were supposed to enter primary election results into the app, but many had trouble getting it to work, partly because they …

Happy Path Democracy Read More »


The Fundamental Problem of Software: Translating Business Rules into Code

How Behavior-Driven Development (BDD) can help solve the fundamental problem of software.  Translating language – an example In true BDD fashion, let’s start with an example: Carlos is fluent in Spanish, but does not speak English. Mary is an English speaker who knows little to no Spanish. However, Carlos and Mary wish to communicate. What’s …

The Fundamental Problem of Software: Translating Business Rules into Code Read More »