Web Browser Conundrum on Mobile Devices


One of the best talks I've attended at QCon London was the talk by Max Firtman about the state of web browsers on mobile devices. Max is the maintainer of mobilehtml5.org and author of the Programming the Mobile Web book, so he definitely knows a thing or two about the utter mess that is the mobile web today. At first glance, it seems that due to the dominance of iOS and Android mobile operating systems and their closed nature, the situation with the mobile web browsers would be simple. But once you get into details, the things get murky. Let's take as the first example iOS which commands 55% of the mobile web market. If user is using Mobile Safari, he'll get top notch performance. But if the user is browsing the web using any other application on iOS he'll get up to three times slower performance. Since Google Chrome on iOS also uses UIWebView for rendering pages, it's performance is not the same as that of Mobile Safari and it's behavior not the same as the behavior of Google Chrome on Android.

The next most popular mobile web browser is the default browser on Android platform which has 22% market share. But Android browser is very different on Froyo (Android version 2.3) than on the latest Jelly Bean (Android version 4.1). Due to hardware limitations many users cannot upgrade to the latest version of Android and the end result is a severe market fragmentation of Android browsers.

Yet another example that Max Firtman used to demonstrate the messy state of mobile web is Opera which has 12% market share. There are at least three entirely different mobile web browsers branded as Opera. The most popular is Opera Mini where rendering takes place on the proxy server. Consequently, processing user input (e.g. touch events) becomes a nightmare for programmers. Then we have the old Opera which had its own rendering engine and the new Opera which is now using webkit as the rendering engine.

Max presented several more examples of a messy state of mobile web browsers, but I hope you've got a good impression already from the few examples I've presented myself in this post that situation with web browsers on mobile devices is anything but simple. Just last week, we found one odd behavior of Mobile Safari ourselves, too. On iOS JavaScript events do not execute when user is scrolling the page.

The source of data about mobile web browsers market share is FavBrowser.com.

Enhanced by Zemanta