Today is a good day to code

Mobile Web Browsers

Posted: December 31st, 1969 | Author: | Filed under: Uncategorized | No Comments »

Mobile Web Browsers

Picture of IrvinThe state of the mobile web is really awful. I've been thinking about the difficulties in writing good web pages specifically for mobiles and I haven't found an acceptable method of delivering compelling web experiences on a mobile device.

The first problem is that the only, with a big caveat, cross platform markup that works on most phones is WML. WML is old as dirt, and it is very, very vanilla. In no way could a WML site be construed as delivering a rich user experience. WML renders quickly and is small enough to work from really tiny devices up through more complex devices like the PSP.

When a developer builds an interactive, Web 2.0 site, and then wants to port it to a mobile device, most of the frustration lies with the performance of the device. Even with the Flash Player lite, which is pretty good, isn't all it could be because most devices don't support Flash. The final result of the developer's efforts, are often a heavily stripped down version of the same site, with a fraction of the functionality.

The CPUs in mobile devices are not powerful enough. The PSP is different, it has a really powerful set of CPUs, and the browser is well thought out and implemented pretty well, but the Palm's blazer, which may be second only to the Opera mini browser, and Microsoft's stripped down version of IE 5.5, which is different on different mobile devices, are substandard, and non-standard.

The difficulty with standards lies with the performance problem. CSS is great, but support is limited by the devices performance. Some sites take minutes to render the CSS, so formatting pages in a standard way is very difficult and will often result in inconsistent user experiences depending on device. Microsoft and Google, as well as RIM with the Blackberry Enterprise Server are reformatting pages for mobile devices, using a server's CPU to make the page acceptible, but it is difficult for a developer to understand how their sites are going to come out of these systems without extensive testing.

JavaScript is yet another issue. JavaScript suffers with limited CPU power because many of the tasks, such as DOM manipulation are memory and CPU intensive. These tasks take no time on a modern desktop CPU, but on a mobile CPU they can kill it. Not to mention that AJAX sites use JavaScript libraries that are pretty hefty. XHR becomes a problem because threading is either difficult on most mobile CPUs or not possible, so you'd have to stop the current thread, store the state in memory, and process an XHR, then resume the prior thread. It would be more of cooperative multi-tasking, but the operations wouldn't be asynchronous, or even vaguely asynchronous anymore.

Until mobile devices have more powerful CPUs, and consistent browsers that support standards based design, using anything but WML or stripped XHTML will result in many different versions of the same mobile application, and heavy QA on every different type of device. The device simulators make this easier, but still not easy enough. The funny thing is that we developers are always complaining about IE, Safari, Opera, and Firefox not supporting standard consistently, but comparing them to mobile web browsers, they are a model of conformity.