Apple's magic developer numbers: 100, 100 million, and 1 billion
We've all heard huge numbers thrown around as measures of iPhone and iPad App Store success -- over 200,000 apps and 5 billion downloads being some of the most recent and most impressive. There's a couple of other numbers that are even more interesting when it comes to iPhone and iPad development: 100, 100 million, and 1 billion.
Roughly 100 million iOS devices have been sold to data and they are all broadly software compatible. There's some fragmentation to be sure -- older devices are slower, there's no cameras (yet) on the iPod touch and iPad, no GPS in iPod touch, iPad Wi-Fi, and the iPhone 2G. Apple mitigates this somewhat by offering services such as CoreLocation where, if no GPS is found, it gracefully degrades down to cell tower triangulation or Wi-Fi router mapping. Even the iPad with its odd-device-out 1024x768 display will frame iPhone apps or pixel double them, which is awkward but still workable, still compatible. When iPhone 4 ships, it will be precisely double the vertical and horizontal pixel count of previous generations, meaning older apps will simply look the same as they did before (using 4 pixels in the space they used to use 1).
Likewise, most iOS devices tend to get updated to the latest version of the OS, or at least fairly recent versions. While iOS 4 will drop compatibility for iPhone 2G and iPod touch G1, it will also be free for all other devices for the first time, ensuring iPod touch G2 and G3 owners are more likely to update.
Everything isn't perfect, but for a vast majority of apps it doesn't need to be. They just work.
The sheer size of that install base is stunning. Code an app once and deploy it to a theoretical 100 million devices -- and growing -- all with a drop-dead-easy to use icon on the home screen to help them get your apps?
That's where the 100 comes in. One of the single biggest advantages Apple had going into the App Store was iTunes and the ability to process credit cards and handle transaction at an international scale. There are App Stores now in almost 100 countries (could be 100 or more now, I lost count at 96). Making an app for 100 milion devices -- even if they were broadly compatible -- wouldn't be anywhere near as enticing if a developer couldn't sell them to more than 1 or 2 countries (especially for the many, many developers who live in those unserviced countries). Again, the App Store isn't literally everywhere, and due to local laws and ratings requirements they can't sell games in in a couple places, or have other restrictions, but also again, for the majority of apps it's an unmatched opportunity. When you consider Apple does all the processing and delivery heavy lifting for a 30% cut of paid apps, and 0% of free apps, allowing developers to develop and not spend time on managing that themselves, it's easy to see why many of them jump at the chance.
1 billion dollars paid out to developers, as mentioned in the comments below, makes manifest the potential market size of those 100 million devices in about 100 countries. At day's end -- and financial year's end -- many developers will go where the money is.
There's one last set of numbers to touch on as well. The iOS SDK frameworks. They provide an incredibly rich set of functionality developers get "for free" when making apps for the iPhone and they don't exist (as directly portable options) on other platforms. Accelerate alone offers 2000 hardware-powered math API for games. Never mind CoreAnimation, CoreData, Game Center, the UI elements, and everything else that rounds out the kit. If portability isn't the prime concern, they greatly enhance ease of development.
The flip side of that, of course, is the trade off in control made for convenience and opportunity. There are certain apps Apple won't let into their store, and no guarantee they won't pull an app (or whole class of them) even after they're in the store. Having humans review apps makes app review subject to human error. Also, for every hit-it-rich app in the store there will be many, many times more that don't break even.
For developers writing mainstream apps, nowhere near the edge-cases, it will probably never be an issue. Edge-cases, however, are often where some of the most interesting developments come from. Further, if you do use a lot of those API and you want to move to other or multiple platforms, you're likely in for a lot of recoding, including a lot from scratch.
Palm, with parties, cross-compilers, and the chance for a nice payday, and Google with factually challenged trash-talk at I/O and a lightning fast JIT (just-in-time compiler) and Flash support, aren't wasting the chance to show that off either.