Apple has made some headline-grabbing announcements at its Worldwide Developer's Conference this week. The biggest headlines have been grabbed by the new iPhone 4 and the Safari 5 browser. However from the programmer's point of view there are bigger things happening.
The big surprise was the shear enthusiasm with which Apple is trying to make iOS 4 (the operating system that runs on all iHardware) a good place for programmers to work in. iOS 4 is pre-installed on the new iPhone 4 and can be downloaded to earlier iPhones, to the iPad and to the recent iPod Touch. This effectively makes iOS 4 the new target development environment for all but the very oldest iHardware.
Steve Jobs spent much time explaining how good the deal was and how it will be getting better. He pointed out that Apple was about to sell the 100 millionth iOS device and hence it represents a big potential market. He also pointed out that the iPhone had 28% of the mobile phone market.
He delivered the good news that the App Store has to date paid $1 billion from royalties, representing 70% of total income, to developers. Which still leaves Apple with nearly $430,000 for essentially running a website and vetting apps.
On the subject of vetting apps Jobs added that there were 225,000 apps on sale and of the 15,000 submitted each week 95% are approved. The most common reasons for rejection were quoted as the app not doing what it was claimed to, the use of private APIs, and crashing. Of course in a free market you would be allowed to place for sale things that didn't do what they claimed and buggy software.
Also announced at the conference was the imminent start (1 July) of iAds, which are essentially in-App advertising built into iOS 4. All we as developers have to do is place the ad into an App and Apple does the rest, in other words it acts as an advertising network. The profit is split 60% to the developer and 40% to Apple.
A long list of big brand names are claimed to be ready to start advertising, with sophisticated interactive video ads to the tune of $60 million already booked for the year. It is also claimed that iAds will keep users within the App rather than forcing them to switch contexts.
This isn't the first time that applications have been paid for by advertising. Adware is a well-established, and fairly disreputable, phenomenon almost universally hated by users. The reason is simply that to make enough income from ads it has always been necessary to slowly move down-market and present users with tacky and disruptive advertising. Clearly iAds are going to have to maintain their initial quality and continue to engage the user with innovative and entertaining ads. If the need for quantity over quality begins to dominate iAds then it is likely that user will have the traditional negative reaction.
At the conference Jobs repeatedly stated as Apple's goal "to help our developers earn money". It's a good sentiment but you have to ask what else is there for Apple to gain apart from their share of the profits?
Arguably the first in-roads Apple made into the desktop market were to people who "think different" - i.e. the creative spirited, mostly non-programming, users. In fact the Mac was promoted as "the machine for the rest of us", i.e. the dumb people. By contrast the IBM PC became the dominant platform because it was relatively open and easy to develop for. Apple might have had an appeal to people who think differently, but the IBM PC appealed to people who thought logically, i.e. programmers, and this resulted in essential software turning up on the PC first or very soon after it appeared on the Mac.
With iOS 4 making its way to be the dominant mobile operating system Apple is, this time around, attracting the logical thinkers by offering them a clear route to making a profit. However to play ball in the Apple arena you have to swallow some fairly unpleasant conditions.
- You can't use anything but Apple hardware to develop your App - consider the number of Macs that must have been recently acquired to generate 15,000 Apps per week!
- You can't use any software development environment you like,
- You can't even pick the language of your choice, it more or less has to be Objective C
- You can't sell your App anywhere other than the App store
- and you can't innovate by digging around inside the system.
In other words you can think as different as you like as long as it is within a fairly narrow set of tracks as laid down by Apple.
In this era of open source this is unacceptable to a lot of programmers - except of course as a way of making a profit on a novel idea.
There are attempts to break out of the Apple straight jacket but at the moment none of these alternatives has attracted enough of a following to stir Apple into action so we have no clear idea if any will be allowed in the long run and any freedom gained might be just temporary.
This is a situation we have not seen the like of for many years, if ever. A single company is telling us how to write applications, what platforms to use for development, what APIs to use and even judges the quality of our product. This is a honey trap.