Depending on which country you wish to launch your mobile web app, the handset/browser mix may be different. AdMob (now Google Mobile Ads) used to publish a pretty good monthly report about the distribution of hits (per device manufacturer) they get by country – this gives a pretty good indication of what it’s actually like in the various markets. Sadly, since their acquisition by Google, they no longer update that report. Netbiscuits also publishes a metrics report showing that distribution (registration required). One very good site that breaks down Mobile OS by region and country is the Global Stats site.
Programming the Mobile Web by Maximiliano Firtman is a very good reference for Mobile Web development. According to it, the following are the major handset vendors and the main browsers supported:
|Apple||Safari on iOS||iPhone, iPod Touch, iPad|
|Nokia||WebKit||WebKit is mainly for S60 devices and S40s devices come with a basic web/xHTML browser. They also have a line of devices running Maemo which is a Linux-based OS but with the introduction of Windows Mobile 7 (and dumping of Symbian), it remains to be seen which way this will go|
|RIM||Blackberry browser||While the user experience of Blackberry’s web browser has never been good compared to iOS or Android, there are still a lot of them out there issued by companies to keep employees contactable. Also, many users have installed Opera Mini browsers to get a better experience.|
|Samsung||Android browser/Mobile IE/WebKit||Samsung produces Android, Windows Mobile and Symbian based handsets. Hence the browsers are the Android browser, Mobile IE and WebKit browsers accordingly. With the Galaxy S I/II/Tab and Nexus S it would seem that Samsung is investing heavily on Android|
|Sony-Ericsson||Android browser/Mobile IE/WebKit||Sony-Ericsson (like Samsung) produces Android, Windows Mobile and Symbian based handsets.|
|Motorola||Android browser||While in the past Motorola has supported several OSs, lately it has focused primarily on Android.|
|LG||Android browser/Mobile IE||LG produces Android and Windows Mobile based handsets. It also has 2 Symbian based handsets but has focused more on Android/Windows Mobile lately.|
|HTC||Android browser/Mobile IE||The original Google Nexus was from HTC|
|Android||Android browser||While Google is not a handset manufacturer, we included this here as it has become a key player as it now supplies many handset manufacturers with a good OS for their hardware. Besides Samsung/LG/Motorola/Sony-Ericsson, other players include Dell, Huawei, ZTE and a host of smaller handset makers based on the MTK chipset.|
However, in the last few years, there have been a number of players who have come into the browser market – some examples of this are Skyfire, Firefox for Mobile, Opera Mobile and Opera Mini and UC Browser (among others).
So how are the various browsers identified?
Each browser sends a different (with exceptions) User-Agent string with each HTTP request as part of the HTTP Header. Mobile-phone-specs.com has a pretty good list of mobile User-Agent (or UA) strings. Just browsing the site gives you an idea of just how many there are out there in the wild!
If you take a look at the list in detail, you will also notice what seem to be duplicates. For example, a Nokia 5800 XpressMusic may have the following UAs:
Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1/52.50.2008.24; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413
Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1/21.0.015; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413
The reason for this is that for a given device model, there may be different versions of the browser due to various updates of the firmware of the device.
How do we know what hardware support exists for a given handset model?
In other words, what are the Device Capabilities (or DevCap) of a particular handset model.
The answer is UAProf or User Agent Profile. In a nutshell, this is a XML detailing what hardware support the device model has (eg. MMS, mp3, png). The XML follows the RDF format and is usually published by the handset manufacturer. To simplify the classification and searching for UAProfs, the WURFL project was introduced. Some folks have taken the WURFL data and created very useful sites for developers who want to find the device capabilities eg. uaprof.com.
Of all the device capabilities, the screen dimensions is probably the most pertinent to Mobile Web developers. In Programming the Mobile Web, Firtman puts it in a very nice manner:
|Low End Devices||128×128 pixels, 128×160 pixels|
|Mid End Devices||176×220 or 176×208 pixels|
|High End Devices||240×320 pixels|
|Touch enable high end devices and Smartphones||240×480, 320×480, 360×480, 480×800, 480×854, 640×960 pixels|