Writing

Feed Software, technology, sysadmin war stories, and more.

Monday, November 5, 2012

Mind your glee for Android "fragmentation"

I'm not an iOS developer. I also don't do Android. In fact, I don't do any sort of mobile development at the moment. Still, I have friends who do, and they tell me about things they encounter. I also hear a few memes going around by virtue of reading the usual sources for nerd news. One of those mobile development memes boils down to two words: Android fragmentation.

My understanding is that people are reacting to the variety of devices, resolutions, pixel densities, CPU power, memory, storage space, and so on that exist within the world of Android. I personally don't know and don't care so I take their word for it. The one thing I do know about is the world of iOS devices, and I'm not sure I can say it's much better.

It's 2012, and if we back up two years to 2010, what is there to worry about in terms of backwards compatibility? Well, there's the original iPad which Apple has effectively orphaned, the iPad 2 which still seems to be alive, the iPad 3 which seems to be a dead end, the iPad 4 which is brand new, and the iPad Mini which is also brand new. They all have different characteristics relative to each other. Each of them also come in different flavors depending on whether you want cellular access or not, and if so, which provider it's on. I'll ignore the other variations in SKUs you get by virtue of having different colors or whatever else they might offer.

It seems to me that if you are concerned about iPad support, then you might have up to 5 different devices on which to test things. From what I can see from my iOS developer friends, this seems to mean that they accumulate a mighty stack of Apple devices which are just used for running pre-release tests and also reproducing errors after the fact.

I haven't even gone into the iPhone 4, 4S, and 5, and the different iPod Touch flavors from the past couple of years. They all have the possibility of running those same apps, and could presumably have weird problems which don't exist on other devices. I mean, there must be some reason why these people have all of these "tester" units, right?

Looking at this from the outside, I see a pain point, and experience suggests that where there's pain, there might be profit. I wonder if there might be a business model here: someone basically goes out and buys up every possible variation that might cause a problem, and then offers to be "remote hands" for a developer. They could install an instrumented build of some program in development and send back debug output so they can see what's going on.

The theory is that it might just be cheaper, easier and faster than expecting every developer for the platform to pony up another $400+ every time Apple decides to release yet another device.

It seems like you have surprisingly few options here: you can buy everything and test it yourself, you can outsource it to a willing party for the right amount of money, or you can just ignore the wails of customers on "non-core devices" and just hope it doesn't affect your business too much.

At the very least, it might be time for people to stop assuming that "fragmentation" is limited to a specific type of hardware. Given enough time, I imagine there will be a confusing number of products in any line from any manufacturer. Just wait and see.

Oh, incidentally, don't think the simulator will take care of your worries regarding compatibility. I went down that road late last year and ran into bunches of dumb problems. When the things which are broken can't be duplicated in a simulator, you will find yourself in the same situation.