# Why my software will be Apple-only

> I'm going to write some software. I'm sorry, but it'll be for Apple platforms only. This is why.

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. 😎

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.

## JavaScript

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](https://xkcd.com/2347/) 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.

## iCloud

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.