Android: fragments and fragmentation

09 Dec 2011

One of the banes of Android has been fragmentation and the other side (read: Apple acolytes) have jumped on this with zest, pointing out how slow many Android phones have been to receive the latest version of Android, if at all, and how Apple has a good track record of supporting older phones with the latest version of iOS.

While they are right, they are also missing the point.

The underlying philosophical difference between what was iPhone OS (and now called iOS, which many of us will associate more with Cisco’s enterprise class routers) is between one of a carefully pruned, walled garden and an open jungle, where all sorts of nice and not so nice surprises may lurk. In a show garden, one is expected to follow the rules. In the jungle, one must be much more self sufficient to survive.

For instance, with the move from Froyo to Gingerbread, the keyboard was greatly improved with tabs to help select text. True, many phones were stuck on Froyo (or even Eclair) for much longer than its owners ever thought, but if a user wanted a better keyboard, they could always download (and pay) for one, such as Swiftkey, from the Android market. No, it’s not the Gingerbread keyboard but some actually prefer it.

Or take voice recognition. Siri may be the hottest gal in town right now but Android has had voice recognition since Cupcake, if not earlier. The difference is that while Siri is capable of running on the iPhone 4, Apple has locked it exclusively to the 4S, probably for marketing purposes. Google’s voice recognition runs in the cloud and accuracy, while still not as good as Siri, has improved, not just for those running Gingerbread or Ice Cream Sandwich, but for anyone still holding onto an ancient Cupcake phone, circa 2009, as well.

The point being, while many features in a new OS version of Android are nice to have, life for older versions is not that of abandonware. For instance, Froyo did not have support for an RFID reader, but Gingerbread did, and was launched alongside the RFID-touting Nexus S. Is it such a big deal then for an older phone to not have an upgrade to control something it does not have? On the flip side, Froyo’s lack of proper support for dual front and rear cameras is more troublesome as many phones of the era did ship with two cameras.

The core email and market apps are apps, not baked into the OS, and evolve on their own timescale. Unlike in the Apple world, older phones enjoy almost the same functionality as newer ones, graphics and screen real estate permitting.

But the most important difference is the role of the software development kit how a new version of the SDK can compensate for features lacking in older software.

Take for example the new feature, called a fragment, that was introduced in Honeycomb (3.0) in May this year. In its simplest terms, a fragment is a pane in a window (an activity) that can be written once and run as part of a larger activity (think tablet with an email client with headers on one side and a message preview on the other; the headers and the message are each two fragments), or a stand-alone activity with one fragment in one activity (think of a phone with only the screen real-estate to show either the message list or the email body at one time).

The point of a fragment is to write the code once and then use it on different form factors and different orientations.

Now, rather than supporting this new feature called fragments starting from Honeycomb (3.0) onwards, Google’s SDK has been updated so that the code for fragments can run on any version of Android starting with Donut (1.6). In other words, the compiler and libraries compensate for the shortcomings of the OS and can work around it, seamless to both the programmer and the user.

It is a point that makes every sense to the programmers who make each phone ecosystem so great, but it is a point that the fanboys on both sides seem not to have taken into account in their war of words and statistics.

Que Sera, Sera.

Related content

No Comments Yet! Be the first to share what you think!