22.00.0063: Why my software will be Apple-only

I’ve started learning to write Swift, Apple’s modern programming language. I’m going to write an app to help you manage your Johnny.Decimal index.

I think I have some pretty cool ideas. :sunglasses:

When you do this sort of thing, you have to choose a language and a platform. This choice is all trade-off. There isn’t one best-choice-for-everyone.


If there was going to be a common language, it’d be JavaScript. And I already know it! So why am I not using it?

With JavaScript, your desktop option is to build an Electron app. Slack is written in Electron. Discord is Electron. Electron is really popular.

I hate most Electron apps. They’re janky, they just don’t feel right. They use gigs of your RAM. They take ages to load. You end up with hundreds of dependencies and you’ve no idea what most of them do.

I know this because I’ve built web stuff. It’s cool to hate on JavaScript but I love it! It’s the only language I know.

But I won’t be using it to build a desktop-class app.

Native integration

I want to build something that can fully integrate with the thing that I use. I want it to be able to talk to my file system, my reminders, my calendar.

It has to feel right. It has to fit in. When you launch it it should feel familiar.


The other massive benefit to developing in Apple World is iCloud.

You know what the very last thing I want to build is? Like the last thing on Earth?

It’s a database of users. Oh boy do I not want your data.

As soon as I have it, I have to worry about encryption. There’s no way I’m keeping your stuff if it’s not end-to-end encrypted. And that’s really really difficult to do…

…unless you use the data stores provided, for free, without any additional login, by iCloud. Yes please.

iPhone and iPad compatibility

It doesn’t come for free but it’s pretty cheap from an effort perspective. Swift mostly just handles it. That’s nice.

I’ve tried Microsoft development

It was one of the first things I did when I quit my job last year: I spent a few months hacking about trying to develop a thing for MS Teams.

I have never been unhappier in front of a computer. Never again.

So, there it is. Sorry, @_FJ! You’re going to have to get a Mac, my friend.


For all the people enjoying freedom in the world outside Apple’s walled garden ecosystem, just know that my command-line tool johnnybgoode is only the beginning of my software ambitions for Johnny Decimal. And just like johnnybgoode, everything down the line will be supported on Windows and Linux, and even MacOS.