Today I saw two items come across my radar that were unrelated but connected when it comes to the concept of mobile device fragmentation as it relates to software developers’ API stability.
Grounding Software, an Apple advocate, recently got a vague phone call from Apple saying their three-times-accepted app for the iPad was being withdrawn from the App Store because it did not conform to new, unpublished standards that were unable to be described.
The developers of the app had invested real money and real time following Apple’s guidelines to create an app for the iPad. People liked it. They were making money. But Apple changed their policy on what kinds of apps were going to be allowed and removed the app. And to make matters worse, the only way they were finally able to get an “answer” to why they were rejected was after they emailed Steve Jobs himself.
People have argued for a while that Android is fragmented. They say it is inevitable when you have 60 different devices with different hardware and different capabilities that you’ll get fragmentation. I have to admit to thinking this very thing when I heard the goals for the platform.
A blog post today from Dan Morrill, Compatibility Manager for Google’s Android platform publicly addresses this concern. Each device that is given access to the Android Market is tested for compatibility through a suite of 20,000 tests. And software is forward-compatible, meaning apps designed for Android 1.5 are compatible with newer software releases.
Android’s compatibility guidelines are the same as Apples. In order to get the benefits of compatibility you have to write your app to adhere to the published SDK. No using secret or vendor specific API calls in your app. (and Android, with it’s open source platform, makes it a bit easier to discover)
The difference is that Android’s guidelines aren’t secretly changing.