Paul’s Eclipse Day presentation made it obvious that there are some misconseptions about the whole “mobile web application” concept.
The core issue is that most “web applications” are essentially two different applications that are created using different technologies and interact between themselves using HTTP protocol. There is a remote application (e.g. an Apache server serving static pages or Tomcat with JSP pages or any other server running PHP, ASP and other scripts) and a local application written in HTML, JS and CSS. For years all “web application” developers’ attention was drawn to a server but with the advent of AJAX more and more code is moving to a browser.
“Mobile web applications” consist of only the client-side part so they are more “mobile applications” then “web applications”. The goal is to take the best of the both worlds – to combine flexibility and maturity of the client-side web technologies with pervasiveness and high availability of the mobile application. From the user point of view “mobile web application” is just a regular application that can be installed from application store (i.e. OVI store or Apple iTunes store) and ran from the regular application launcher UI. Unlike regular “web applications” these “mobile applications” can be used even when there is no network connection available.
Another trait that “mobile web application” share with other mobile applications is the ability to access native services like accelerometer, camera or address book. There is an ongoing effort to unify these APIs across all the platforms but at this moment each platform has its own API that is not compatible with others. This results in another common “mobile” problem of forcing the developers to rely on emulators to be able to test and debug application before deploying it on actual hardware.
Here are some answers to common questions on Mobile Web Runtimes and Tools for Mobile Web:
Can I deploy my PHP(or JSP or ASP.NET) application to mobile phone?
No. This is a server-side application and needs to be ran on web server. You can only deploy client-side code.
Can I publish to app store, like Ovi, Android Marketplace and others?
You can publish it on the Ovi Store and other stores.
Do I need to sign an application before distributing them?
This is really platform-dependent. You don’t need to sign the application for Symbian WRT but you may need to do it for other platforms.
Why TMW is proposed under Seqoyah and not the WebTools?
TMW does not intent to reimplement WebTools (including JSDT). Think of how Tools for Mobile Java rely on JDT for the core Java support – same goes for the relationship between TMW and WTP/JSDT. TMW is really focused on “mobile” parts.
Can I create an application for different platforms?
Yes, in most cases. It really depends on how much the application relies on mobile-specific APIs. There are some frameworks (i.e. PhoneGap) that allow consistent API across several mobile platforms.
What about standards support in mobile web browsers and mobile web runtimes?
Even though most mobile web browsers are based on a same WebKit engine they differ vastly in their capabilities. But still, all the platforms move in the same direction by implementing common standards like HTML5, CSS3 and other W3C specification. You can find a great comparison here.