Ever since last week’s introduction of iPhone OS 4 by Apple, one section number has been swirling through the heads of developers around the world: 3.3.1. In Apple’s latest license agreement for software that runs on iPhones, iPods, and iPads, Apple has restricted any software originally built using any languages other than C, C++, and Objective-C.
Adobe (among many others) isn’t a fan of these new terms. One of the most anticipated features of their upcoming CS5 suite is the ability to use Adobe Flash and convert programs into apps that could be used on the iPhone platform — well, at least before the change in terms by Apple.
I’ve been reading through developer responses over the last few days. Some people support Apple. Some think the change is a ploy by the fruit company to lock devs into using Apple products and therefore drive more Mac sales.1 Some people seem to think that Apple just flat-out hates developers.2
Personally, I’m right in the middle. I think developers should be able to use whatever tools they want to build their apps, but I also understand Apple’s position. I think it’s pretty simple, actually.
The core of Apple
To understand why Apple made the change, you have to understand Apple. Sure, they want to make money and encourage people to stay on the iPhone platform, but I believe that Apple’s desire to uphold the user experience for users of their iPhone-class devices is just as important to them.
Yes, I’d prefer that Apple would accept non-C/C++/Obj-C apps and at least give them a shot at a review. I still wish there was a way for advanced users to hook apps into their phone without using the App Store, too. Apple would prefer an experience where everything has been tested for quality before it reaches users at all. Seems like Apple’s taking the “well, if you don’t like it, nobody says you have to write for our platform” approach with this one.
Apple’s all about the experience. They’ve published extensive interface guidelines for programmers that detail how every element — right down to submit buttons — should work. They’ve decided not to approve apps based on their inconsistencies with the “iPhone’s distinctive user experience.” And now (as John Gruber explains well) they’re limiting apps that most often don’t match the quality or user experience of those built specifically for the iPhone.
A common cry from developers opposed to the change is that Apple has placed the needs of developers second. That’s true. But Apple isn’t first, despite what opponents of the change would like you to believe. The user and his experience with the product comes first. And that’s how it should be.
1. I don’t agree with this point at all. Apple has encouraged – not limited – people to build web apps specifically tailored for the iPhone, and they can be made without any review or approval by Apple. iPhone web apps can do almost everything native apps can do (less any functions that depend on hardware, of course).
2. I don’t agree with this, either. There are over 140,000 iPhone apps in the App Store, and I’d bet that many of those were made by people who wouldn’t otherwise have that level of opportunity and exposure to make money with software development. In addition Apple’s development terms are, in many ways, much less restrictive than those of Nintendo or Microsoft.