Wednesday, June 24, 2009

Dealing with fragmentation

No, this isn't about defragging your hard drive. Nor about what happens when you send your iPhone sailing across the room. Recently our good friend Carmen Hughes of Ignite PR pointed us at an article by Tricia Duryee of entitled Why The iPhone May Be More Difficult To Develop For After The New One Arrives. Tricia's thesis can be summed up in a couple of sentences:
Engadget has dug up some technical specs on the upcoming iPhone 3G S that suggests the fragmentation within the App Store may begin soon. That means that going forward all of the apps may not work on all of the devices.
The Engadget article being referenced talks about how the new iPhone 3GS has hardware acceleration that supports OpenGL ES 2.0, but the hardware on the older iPhone and iPod touch models only support OpenGL ES 1.1.

Well, fragmentation is already a problem with the existing models -- no mobile phone in iPod touch, no GPS in iPod touch and first generation iPhone, etc. Most of the Cocoa Touch APIs will fail gracefully if the device doesn't support a requested feature, so unless your app is built around a particular hardware feature like GPS or video, your app can run on all models but hide or disable unsupported features.

And unlike Windows Mobile or Android (if Google gets the acceptance they're looking for), there's still only five major hardware revisions to test on: 3 iPhones and two iPod touch versions. The hardware capabilities are really very similar so far. The faster processor in iPhone 3GS might catch up a few inexperienced game developers, but I think the good ones will know to do primary testing on the lowest common denominator device and not build their event loop in a way that relies on processor speed (like some very old PC games did).

In the personal computer world, developers usually use the same computer to write and test their software simply because it's convenient. In the iPhone world it's not a problem to do your primary testing on an older device. I don't anticipate the common problem in the PC world where developers test their app on their shiny new high-end development machines, then release software that's dog slow on old low-end consumer machines. I think it'll actually be more common for iPhone developers to test mostly on iPod touch or older iPhone models (that's what we do at Able Pear).

Customers will need to pay closer attention to the compatibility info in the App Store, but I'm pretty sure iTunes won't let you buy something that won't run on your device. In addition, the typical lifespan of phones is several years shorter than for PCs, so I anticipate that the percentage of users on a particular model will drop off sharply after two years, compared to three to five for PCs.

So yeah, some customers will feel disappointed when that cool new game only runs on iPhone 3GS and they're still trapped in their AT&T contract and don't qualify for that sweet upgrade pricing. And others will feel gypped when that other cool new game looks really sweet on iPhone 3GS but kinda jaggy on their iPod touch. Is anyone really suprised by this? That's just the nature of the technology rat race.

No comments: