Ajit Jaokar

Subscribe to Ajit Jaokar: eMailAlertsEmail Alerts
Get Ajit Jaokar via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Related Topics: RIA Developer's Journal, iPhone Developer, XML Magazine, OpenAjax Alliance News

RIA & Ajax: Article

Mobile AJAX - Frequently Asked Questions

The first Rich FAQ we are presenting is the long overdue Mobile AJAX FAQ

Q: What is the difference between AJAX platforms, frameworks, toolkits and libraries?
AJAX platforms, such as the Opera Platform or NetFront's Embedded Ajax, when installed on the device, make it easy to develop applications and widgets using standard Web technologies, including Ajax.

There is, however, a big difference between platforms on the one hand and frameworks, toolkits, or libraries on the other. While the latter are usually loaded along with the Web application into the browser each time, i.e., in the form of an external JavaScript file, platforms are typically installed once on the device and then loaded as required by the applications run on top of it. For example, Opera Platform widgets require the Opera Platform while Nokia Widgets require the S60 platform.

Q: What existing Mobile AJAX frameworks, toolkits, and libraries should I use?
Currently there are no specific Mobile AJAX frameworks, toolkits, or libraries.

qAll that is required for AJAX on mobile devices is support for:

  • HTML
  • JavaScript
  • XHR - XMLHttpRequest
  • DOM - Document Object Model or at least innerHTML support
One library, specifically aimed at providing an abstraction for AJAX functions for constrained Web browsers, is currently under development by PavingWays. The library called Frost is an open source project and will be released under an MIT license in mid-2007.

Q: Can I use existing frameworks, libraries, and toolkits?
Some existing frameworks, libraries, and toolkits may indeed work on some mobile browsers. Generally however, these libraries require too much memory and implement features that may simply never be used on a mobile device (i.e., drag + drop). With increasing mobile browser capabilities, this will become less of an issue as browser vendors are already aiming to make their next-generation browsers work with these toolkits; however, the overhead is still there. It can be assumed that some of these frameworks will release mobile versions, so it's more a question of when will we begin to see mobile-specific browser support within these libraries and toolkits.

Q: What is the relationship between Mobile AJAX and Mobile Widgets?
In its entirety, AJAX is comprised of XMLHttpRequest + DOM Scripting + XHTML/CSS. Functionally, two things are happening here: data is being fetched asynchronously and the information thus fetched is being rendered on the client through JavaScript.

Most widget engines are using the asynchronous part uniformly but are making their own changes to the rendering (display) part. While this leads to fragmentation of widget technology, the fact still remains that AJAX, i.e., Asynchronous I/O and visual rendering, are the core technologies underpinning widgets.

When it comes to the mobile environment, we are seeing the same phenomenon, i.e., we see Mobile Widgets powered by Mobile AJAX and also some fragmentation. Also, it should be noted that we are seeing the first attempts at standardization of widgets from the HYPERLINK "http://www.w3.org/TR/widgets-reqs/" W3C.

Q: Which browsers support Mobile AJAX?
This is the list of currently known mobile browsers supporting AJAX, which means they feature the XMLHttpRequest or an equivalent ActiveX (as in the case for IE Mobile). Some of these browsers currently exist and are widely used; others are in development and are not yet available.

  • Opera Mobile (>= 8.x, not Opera Mini)
  • IE Mobile (WM 5.0/2003)
  • S60 3rd ed. (WebKit/KHTML core)
  • Minimo (Mozilla based)
  • OpenWave (>=Mercury)
  • NetFront (>=3.4)
  • Safari Mobile (iPhone)
It should be noted that support for the XMLHttpRequest object or ActiveX is usually not enough to fulfill AJAX tasks. The browser needs to support JavaScript to a level that it can manipulate and display the retrieved data via the DOM, although innerHTML support can be enough in many cases. CSS support is also a rather important feature, e.g., to hide some content areas and show others.

There are also other devices than phones that feature Web browsers to look at, for example, gaming consoles, such as the Nintendo DS and Wii or Sony's PSP or PlayStation 3. These devices - partly mobile, partly fixed - feature Web browsers (Opera for Nintendo, NetFront for Sony) that are comparable to those found on mobile devices such as cell phones. Some of these constrained browsers support AJAX (for instance, Opera browsers in Tranzas set top boxes). Another significant similarity is that these devices also feature very constrained input methods, sometimes less than on cell phones, e.g., four buttons and a four-way directional pad on the PSP.

Q: Which enterprise applications employ Mobile AJAX?
SoonR is one of the early pioneers of Mobile AJAX and seems to always be the preferred example. The SoonR application is primarily concerned with access to files on the desktop from a mobile device. It mainly supports Opera Mobile and S60 3rd edition for AJAX functionality, but there also is a basic version for other browsers without AJAX. Enterprise applications offer an opportunity for Mobile AJAX because they provide a rich browser-based experience on a mobile device and, at the same time, are not constrained by the need to access device APIs (for instance pPhone book APIs on a phone).

Q: What is the role of the Apple iPhone with respect to Mobile AJAX?
While this is speculative since enough details of the iPhone are not known, Apple has said that the iPhone will not include Java and may include Flash. It is very likely that the Web browser of the iPhone will support AJAX. If that happens, then widgets could play a major role on the iPhone with Mobile AJAX as one of their enabling technologies. If so, it would help the uptake of Mobile AJAX post launch of the iPhone.

How do applications like mojax or bling software fit in?

Mojax and Bling Software are examples of applications that use Mobile AJAX with Java as middleware. AJAX makes a great presentation layer, but isn't ideally suited for working with device-level APIs (Bluetooth, camera, XML, etc.) where technologies such as J2ME/BREW/C++ are already being used extensively. Thus, it is possible to use the combined strengths of each technology (J2ME + AJAX) to create the best experience possible.

While not leveraging open standards exclusively, these applications can very well make sense and they show that AJAX technology is a major building block in application development - either based on the Web browser or on a Java/C++ application.

In fact, Sun is taking a similar approach with its Java FX technology.

More Stories By Ajit Jaokar

Ajit Jaokar is the author of the book 'Mobile Web 2.0' and is also a member of the Web2.0 workgroup. Currently, he plays an advisory role to a number of mobile start-ups in the UK and Scandinavia. He also works with the government and trade missions of a number of countries including South Korea and Ireland. He is a regular speaker at SYS-CON events including AJAXWorld Conference & Expo.

Comments (2)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.