I have always done web development, but around iOS 5 I began tinkering with iOS development because I loved the iOS experience, and the idea of having access to the huge distribution of the App Store was enticing. I loved thinking up app ideas, and it became somewhat of an obsession for a while. I pursued ideas for games, to a grocery shopping helper app, to a social podcasting app, and finally an ARKit app. During my career as an iOS dev, I shipped 2 apps to the App Store, as well as built about 4 small apps for clients. I also released several(1, 2, 3) open-source projects for iOS.
So let’s get down to why I abandoned iOS development.
1. Terrible developer experience
If you are new to iOS development, the first thing you are greeted by is the $99/yr membership fee, which should serve as foreshadowing of Apple’s greed. But then you get to wrestle with provisioning profiles. Many a developer has built their entire stack overflow reputation on solving provisioning profiles issues alone, though they have gotten easier to work with in recent years.
But the biggest headache for me was APIs being rapidly deprecated. The iOS SDK changes once a year, not including minor releases, and if you don’t maintain your code in every app for every major and minor update, your apps will most likely break. It’s a lot of googling about why you are getting some error because Apple does not make things that break easily discoverable.
My ARKit app launched in iOS 11.0, and was broken by 11.3. So you spend lots of time chasing down Apple’s changes because they really have a hard time nailing down their APIs. This indecision makes the whole SDK brittle, and expensive to maintain.
2. It’s incredibly hard to succeed on the App Store
The huge distribution of the App Store also makes you almost invisible when you finally release an app. Compounding that, there are 2 things that really bug me about the App Store:
- App Store search is just awful. You can search the exact name of your app and see 2 ads, several stock Apple apps, and a bunch of 3rd party apps before you find yours. So Apple is already working against you. It forces you to compete with its own apps and funnels you to pay for their App Store search ads. It also ranks more reviewed apps higher, which forces you to hassle users for app reviews and play the chicken and egg game of getting reviews.
- You don’t get paid unless you make at least $10 per month. Getting people to pay for IAP is hard enough — but Apple is so greedy, it won’t even pay you unless you make at least $10 per moth. That $10 may seem small, but it’s symbolic of a herculean effort you made building a great app and finally publishing it. Why Apple can’t afford to pay developers when they have forked over the $99 membership, and contributed to Apple’s ecosystem is beyond me.
3. You’re reaching less than a third of mobile phone users
- find it,
- install it,
- open it.
4. Apple is in decline, both in hardware and software
This is a big one. And it sucks because I have always been a fanboy. But the Apple experience has been in decline for several years now. Apple’s QA has gotten worse, and their OS’s have suffered from some embarrassing bugs.
The iPhone has become prohibitively expensive, and some surmise this is a tactic to offset declining sales. Seth Godin and others make the case that the iPhone’s main selling point is as a status symbol. This doesn’t bode well for developers who are investing their valuable time into learning frameworks. That time can become a sunk cost. Developing iOS is a personal stake in Apple — you are betting on Apple’s success.
The open web is the way forward
The web is a fantastic platform because so many different organizations, individuals, corporations, and governments need and want it to succeed; globally. It is not owned and controlled by a single corporation that has you by the short hairs when you sign up. It depends on all parties agreeing on standards, and building hardened APIs that will survive on their usefullness and reliability. Angular, Vue and React are delightful frameworks to develop in, and they are all open source.
PWAs are becoming more and more capable and the browser’s abilities are growing exponentially. You can reach an amazing amount of users. You aren’t gated by the App Store. Open platforms really are a special thing. ✨
… oh yea, and Xcode sucks.