A lot of people have understandably took my “Serious doubts” article to mean that nobody should develop for the iPhone or that Apple wants to kill us all or that I personally want to stop developing for the iPhone. None of these are true.
I don’t believe that Apple is being malicious, despite the many emails I’ve received over the last few days to that effect (“Apple has always hated developers!”). On the contrary, every Apple employee I’ve spoken to has been pleasant and truly seemed to have good intentions. The App Store problems seem to be caused by a strict culture and policies requiring secrecy by default, a lack of accurate capacity planning, and an aging and probably neglected internal management-software infrastructure. None of these are malicious or evil, but they can only be changed by large efforts internally, which take a lot of money and — more importantly — a lot of time.
Watching Apple manage the App Store is like watching Congress legislate for the internet: it’s very slow and the internal systems and assumptions are outdated, and while progress is being made, it seems impossible to keep up with the relevant issues at the rate they’re going.
Developing for the iPhone is great if you don’t have a strong financial need to be in the App Store. The troubles are annoying and frustrating, and can create severe inconsistencies in sales, release dates, update availability, and income. This is why I question the ability to run a serious business in the App Store: if you have deadlines and budgets and expenses and full-time employees (what I was considering a “serious business”), and you need tight control over release dates or PR or the content of your App Store page, this just isn’t a great environment at all.
For independent developers like me, it’s such a fulfilling development environment with potential money to be made — not enough to sustain most “serious businesses” unless you luck out with one of the top apps (and even that’s usually fleeting), but enough for an individual’s side income.
I’m going to continue developing for the iPhone for one key reason: I’m a developer, and I use an iPhone. I can’t and won’t make software for a platform I don’t use. I wrote Instapaper because I wanted it to exist, and I love being able to share it with the world with the App Store. If that ever becomes impossible or impractical, I’m going to keep writing it for myself anyway, and I’d probably write something else for the App Store.
I keep writing about this because I love Apple’s products, including this amazing little internet-connected computer that I always have in my pocket wherever I go, and there aren’t nearly as many flaws and shortcomings as most similar products. Developing for it is great — I can come up with nearly any idea that I want to exist, then make it happen, then always have it on my pocket computer. That’s amazing.
I want all of this to be great, including the App Store, because most of it already is. And, unfortunately, the only way to get a lot of changes made at Apple is to publicly blog about your complaints. I wish that weren’t the case, but it’s effective: if nobody complains about something, nothing happens, but if everybody complains about it, it gets fixed.
I don’t plan to leave iPhone development for the foreseeable future. But you’ll know if I do, because that’ll be the day I stop finding flaws and shortcomings in it. When most iPhone developers stop complaining about the App Store, Apple would truly have a problem: they’d know that we all left.