With their announcement of the Pre last week, Palm has placed their bet that great mobile applications can be built using the same open web technologies that drive the desktop environment today. Web applications that run on modern desktop browsers are constantly pushing the envelope of the types of applications that no longer require a proprietary platform-specific SDK.
When Apple first launched the iPhone in 2007 their first answer to developers was similar to Palm’s new OS. Apple gave a long talks at its 2007 Worldwide Developers Conference about how you can build great applications using standard web technologies. Unlike Palm’s webOS the iPhone web SDK was severely lacking in many areas. Apple has corrected some of these shortcomings in the subsequent releases of their mobile browser. Mobile Safari now supports multi-touch gestures, basic rotation tracking, and hardware accelerated CSS animations. Unfortunately, Apple’s open web SDK still lacks many of the most critical features that would allow developers to build applications that take full advantage of the mobile environment.
By contrast, Palm’s webOS appears to treat web applications as first class citizens by providing direct access to the GPS location, acceleration, camera, and messaging functions of the phone. Adding these features to your existing mobile-ready web application should be trivial once Palm releases its SDK to the public. If you want to attempt the same feat on the iPhone, you have to download the 1.5GB iPhone SDK, learn Objective-C, and rewrite your application using Xcode. And if you want to test your app on real hardware you have to pay Apple a licensing fee of $99 (or $299 for enterprise development) and wait for approval.
Google’s Android platform had taken a similar, but more open, approach to application development. They have an excellent WebKit-based web browser that has the same sandbox limitations as the iPhone. They have a proprietary native SDK based on the Java SDK which makes it accessible to a wider group of developers than Apple’s SDK, but it still requires web application developers to rewrite their application and display logic in yet another proprietary environment.
Where Apple has failed to provide easy solutions for web developers, others have stepped in to fill the gap. The appropriately named PhoneGap project aims to make it easier for web developers to create native applications while still using their existing web development expertise. The project is attempting to create a single JavaScript API for use on the Android and Blackberry platforms as well as the iPhone.
PhoneGap does this by creating a skeleton application using the native API for each target platform. The application creates a mobile browser that lacks the usual browser chrome and loads a remote url into the browser or displays a web page that is embedded in the application itself. PhoneGap injects a JavaScript API into the browser that gives the web application access to the native functions on the phone. Currently, the PhoneGap project provides access to the phone’s location, camera, accelerometer, and vibration functions.
PhoneGap also supports offline web applications by allowing the application’s HTML and JavaScript to be loaded from local resources stored on the phone. This feature allows for much more JavaScript code to be loaded than would normally be feasible in a mobile web application. The existing SQLite database built into WebKit give the application the ability to download and store data locally and increases application performance and allows access to data when network coverage is spotty.
Although it is incredibly powerful, PhoneGap is far from a perfect solution. PhoneGap builds native applications that must be dowloaded through either Apple’s App Store or Google’s Android Market. With this approach, you lose the benefit of a zero-install web application; however, it can also a great way to distribute and sell mobile apps. Palm has yet to release many details about how their applications are build and deployed.
We will have to wait and see if Palm can improve upon this process when they release their SDK. If the Pre proves to be successful and popular with developers perhaps we will see similar functionality for web applications from Apple and Google in the near future.
Windows Mobile, by comparison, has seen little innovation since the iPhone’s release. Rumor has it that Microsoft’s mobile operating system may be getting a major refresh soon. Will Microsoft follow the lead of Palm, Google, and Apple and create a first class platform for mobile web development?
Native mobile application development can be difficult and costly, especially when attempting to support multiple platforms. Palm is attempting to reinvent itself with the Pre and looks to be creating a truly innovative environment for mobile application development. For those developers who already have major investments in their desktop web applications, the idea of reusing that code base is compelling. Time-to-market and ROI have to be considered when deciding to support the mobile environment. Using open web technologies that reuse existing application code and in-house developer experience could save considerable time and money for anyone looking to expand their product offering into the mobile environment.