Rendering engines are used in games as well as mobile browsers, and are specifically specialized frameworks dedicated to parse HTML tags, draw images, text, and lines on a canvas area allocated for web content. In addition to retrieving content from the web or local repositories, these engines have become increasingly popular for managing state transitions, providing APIs to control and access XML and HTML content retrieved from a server, and for properly displaying web applications containing embedded Javascript.
These engines are not dependent on specific support from a desktop platform and have been ported to ARM-based architectures. The most popular open source engines are, Webkit and Gecko 14.4. Proprietary engines include Presto, Mercury (OpenWave) , Netfront, and Internet Explorer (Trident). There are many other engines on the web, but many have not been as popular.
As previously mentioned, Webkit is an open source project which has quickly become the defacto standard as the engine of choice for the Mobile Web. Webkit provides extensive support to HTML 2.0 including features such as AJAX, CSS, Javascript, and a plug-in framework. Webkit has been modified to be enhanced with touch-based interfaces and zooming capabilities to facilitate viewing and further interface small handsets with full-fledged HTML web applications. Additionally, the same AJAX-based support, or Web 2.0 applications, is now capable of asynchronously updating personal mobile web content.
WebKit development is done under LGPL licensing, as is Gecko, from the Mozilla project, and both are available online. Mobile developers can compile ports of both WebKit and Gecko into ARM-based architectures with some modifications, provide libraries, and, or, create applications using these rendering engines on Linux-based open platforms.
In addition to the mobile browser war, there is also a strong battle on the platform side for leadership, and as the browser and platform converge, the competition is becoming heated. Webkit for instance has been already ported over to OS X (Apple's Tiger) hence providing support for Mac, iPod and iPhone, Webkit has additional ports for Linux as part of the Google Android project, Qt , and obviously Windows-based platforms, except not yet seen running on Windows CE/Smartphone.
Gecko (Firefox) on the other hand, is falling behind on features and capabilities compared to iPhone and Google Android. However, Skyfire has been able to use Gecko as part of their server transcoding solution. Different from Webkit and client-based rendering, Skyfire uses a proprietary protocol in all exchanged made from its browser and rendering server. Additional functionality can be seen on Skyfire, including Flash and Shockwave support, which are supported at the server-level.
14.4 Mobile Browsers
Table 14.2 shows a summary of open source as well as commercially available popular mobile browsers. WAP-based browsers are still the most popularly deployed among handsets, OpenWave continues to be the market leader in this area . WAP browsers are, in many cases, tied to proprietary device functionality, including features such as WAP-push messages and e-mail.
Graphical browsers can be seen today in many J2ME-enabled phones, including the Opera browser. Opera has released several J2ME applications with ports that include Windows Mobile and Linux-based devices. Opera Mini 4 and Opera Mobile use a server-transcoding approach in which original HTML content is rendered at public or private servers, depending on what version is in use. Opera browsers rely heavily on server-transcoding. Opera browsers also provide some scripting support, similar to Javascript,
by utilizing “Opera widgets,” but this is non-standard and does not work across all other browsers. Similarly, Netfront, Openwave, and Operacall run on BREW (Built-in Runtime Environment) to support CDMA devices.
Netfront uses a proprietary, platform independent rendering engine and includes full HTML support and WAP-based browser. Skyfire requires server-based rendering and has become widely popular on Windows mobile devices. As expected, by using Gecko as server-trasncoding solution, it's expected that most behaviors seen with Gecko browsers will also be seen on Skyfire's J2ME and Windows Mobile clients.
14.5 WebViews and the Future of the Mobile Web
As platforms, both Apple's iPhone and Google Android expand their web engine framework so it can also be used by other applications, and restrict it as a feature exclusive to the mobile Web views allow a mobile developer to create basically any User Inteface (UI) design using standard Web-based technology. This HTML-content could be retrieved from a remote server, or from a local file on the device.
This versatility on the web engine can be extended in many ways including managing resources, and manipulating the Document Object Model (DOM) retrieved from an HTML site. Figure 14.1 depicts an Android application instantiating a “WebView” element.
In mobile browser platforms, the DOM can only be modified as part of the JavaScript embedded in the HTML page. Web views allow this model to change, programmatic DOM changes are conceivable to be made without creating additional Javascript support, and hence hide logic from the HTML content which could be publicly available on the Internet.
Fig-1: Instantiating a Webview Object on Android
Figure 14.1. Instantiating a Webview Object on Android
Even though web views are not a new concept, they have not been widely popular on the desktop. Some instant messaging clients reuse an HTML rendering engine view that programatically retrieves HTML and Web content as messages and widgets. Unfortunately, embedding this content was cumbersome and in many cases hard to manage, considering the lack of AJAX and CSS support on those browsers. As the web becomes more interactive, and web applications can be executed as part of the mobile browser and also as part of an standalone native application, this approach becomes more feasible to implement and maintain.
As expected, a server-transcoding approach is hindered heavily by native rendering support that maps to the direct-delivery paradigm. Server transcoding may not be suitable for web application development, especially as the adoption of web views becomes more popular. In addition, server-transcoding may be relegated to mobile browsing only. Hence, as web applications become more pervasive and popular, this requirement will leave server-transcoding approaches as primarily suitable for low-tier devices, and as a result with less support than expected. Additionally, Motorola provides a similar approach to deliver mobile web content and web application development on Mobile Handsets by using WebUI framework 14.6. This framework provides tools to create mobile web content that can be rendered in some of the most popular Linux-based phones made by Motorola.
Share with your friends: |