PhoneGap, Palm Pre, and the State of Mobile Apps

By on January 12, 2009 11:24 pm

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.

Comments

  • What almost all articles comparing the iPhone and Pre development models seem to leave out is that, to develop for the iPhone, you need a Mac!! For the 95% of people who use Windows or Linux, this is a massive blocker.

    I’d love to write some iPhone apps, and even have nothing against downloading the iPhone SDK and learning Objective-C. But dropping over a thousand euros just to play around and see if I can come up with something interesting? Not going to happen.

    So, congrats to Palm. Another small thing to note is that it seems that Palm’s Mojo framework for the Pre is based on Dojo, which is always nice :-)

  • We have just launched a product called MotherApp (http://motherapp.com/) that allows people to create iPhone apps without learning Objective-C or even owning a Mac.

    Just create a website based on MotherApp HTML specification. Then, MotherApp is a converter that takes your website as input and generates the native iPhone app as output. Finally, we will then send you the native app through email.

    Instead of creating an app by embedding a web browser inside, MotherApp actually builds the app using the iPhone SDK. This means:
    – Professional UI: All the UI widgets (such as buttons, tabs) are based on the iPhone SDK instead of emulated by web techniques.
    – Camera: Use camera to upload images to server.
    – Cache: Use cache to improve the performance and allow people to use the app offline.

    Our product is still very new and your comments are most welcome.

  • If they offer a custom API to access the phone features, they aren’t really using web technologies any more, are they? HTML means “write once, run anywhere!”.

    Using advanced CSS, SVG, and HTML5 database API a lot can be done with current web technologies. Sadly, hardware-specific features will always require some sort of … hack.

    It would be nice if there was a nice, standard way to request the user’s location – much like the iPhone’s “XYZ wants to use your location” feature of their native apps.

  • @Steven: the only way to really get effective standards is to have something to standardize on. Let them experiment and extend this round, and then standardize in a year or two after they’ve figured out what works and makes sense. I imagine this argument (lack of standards) is why Apple has not exposed these features, but I’d rather see extensions that can later be standardized, than no option at all.

  • Good and valuable information. Mobile app development is not an easy task, there are many mobile app development companies are doing itself perfectly. Here in India we are on of them.