Fragmentation remains an issue for third-party Android application developers. The wide spread and slow rate of adoption for new versions of the operating system prevent developers from being able to use the latest APIs. But native application developers aren’t the only ones who are feeling the pain. A prominent Web developer has recently drawn attention to the challenges that Android version fragmentation poses for mobile Web development.
As we explained in some of our recent Android browser coverage, the platform’s default Web browser has historically not been very good at handling the most intensive application-like Web experiences. It lacks support for many modern Web standards and has difficulty handling things like animated transitions. Google is finally correcting the problem by bringing a full port of its excellent Chrome Web browser to the Android platform.
Unfortunately, Chrome for Android is only available for Android 4 devices, which represent only about 1.5 percent of the total Android ecosystem. A majority of Android users are still running version 2.3 and 2.2. The handset manufacturers are often slow to provide updates and in many cases don’t update old handsets past a certain point. This means that it will take some time for Android 4.x to become ubiquitous.
Web developers who want to support Android users will have to contend with a range of different browser versions that have different levels of support for modern Web standards. The apparent lack of consistency in browser performance and stability from one device to another makes matters worse. A blog entry by Dion Almaer, a well-known Web developer who is currently part of Walmart’s mobile engineering team, discussed the issue.
As he explained in his blog post, one of his recent Web development projects hit a snag when he found it was crashing the Android browser on some devices but not others. Aside from the version fragmentation issues, it seems that the actual WebKit builds are also simply bad on some devices. When conventional Web content can consistently crash a browser, the situation is bad.
“I shouldn’t be able to dump your core. From looking online I was shocked at the number of people complaining about some of these devices. To them, their browser crashes all the darn time,” he wrote. “As I went through the myriad of devices to test things, I started to cry as I thought about the amount of effort it would take to get massively broad coverage that doesn’t crash some users.”
Google and Mozilla have transitioned their desktop browsers to a rapid release model with very short development cycles. Coupled with good automatic update systems, this approach has helped to ensure that users always have access to the latest standards and the best possible performance. By comparison, Android users are lucky to get one major update during the two-year lifespan of their phone.
Google could potentially improve the situation considerably by making it possible for the platform’s browser and built-in HTML rendering engine to receive updates independently from the rest of the operating system. Because Chrome for Android is currently being distributed through the Android Market, it seems like there is a very good chance that the company will adopt that approach in the future when Chrome becomes the operating system’s default browser.
Modern Web standards provide an incredibly rich feature set and are paving the way for a future where mobile Web experiences are fully competitive with native applications. The lack of consistency between mobile Web browsers, even ones with the same rendering engine, is a roadblock that will have to be overcome in order for the mobile Web to continue advancing.