Digging Through the Latest webOS Developer Details
On Monday, Palm posted a rough draft of the first chapter of an upcoming webOS programming book, written by core members of the webOS team. Now that Palm has released some specific information about developing for webOS, we take a closer look at some of the new details and functionality within webOS and the Mojo SDK.
Like any first chapter in a programing book, its begins with a philosophical overview of the development model without going to heavily into the specifics. However, now that we've had time to read it over, a number of new details are presented and developers interested in a head start should definitely take a look.
The book's first chapter starts out by giving a architectural look into webOS stating:
[...] The core OS is based on a version of the Linux 2.6 kernel with the standard driver architecture managed by udev, with a proprietary boot loader. It supports an ext3 filesystem for the internal (private) file partitions and fat32 for the media file partition, which can be externally mounted via USB for transferring media files to and from the device.
What is Mojo?
Data storage is handled via the HTML5 storage functions will will allow developers to create on device databases. Its built on top of a SQLite layer and will provide high-level functions to support simple Create, Read, Update or Delete (CRUD) operations. Developers will also be able to access data from some of webOS's core applications, such as Contacts and Calendar.
The framework also includes notification services for popup messages and unobtrusive "banner" messages and a multi-tasking model. Applications can run in the background, managing data, events and services behind the scenes while engaging the user when needed.
Another important aspect of Mojo is its access to a device services API. Palm makes the case that the services functionality will "bridge the web and native app worlds" on the webOS platform. Through the Services APIs, developers will be able to access hardware features (such as location services, accelerometer data, the phone, and the camera). Palm also goes on to state that developers can leverage the core application data and services that have always been a key part of a Palm OS device.
Services will be accessed via a single controller function, serviceRequest. The request passes a JSON object specific to the called service and specifying callbacks for success and failure of the service request.
WebOS applications need to be signed for installation on a webOS device. Palm's Developer Portal will be providing application signing services as well as access to Palm's on-device Application Catalog.
What the SDK Will Include
While its still not clear when the official SDK will be made available (the latest rumors point to the time of the Pre's first release on Sprint), the book does detail what it will include and what platforms it will be compatible with. The SDK includes the development tools, sample code, the Mojo Framework, along with access to the Palm Developer Wiki, where developers will find formal and informal training materials, tutorial and reference documentation. Palm also provides registered developers with direct technical support by email or through interaction in a hosted developer forum.
The Palm Developer Tools (PDT) are installed from the SDK and include targets for Linux, Windows (XP/Vista) and Mac OS X. The tools enable you to create a new Palm project using sample code and framework defaults, search reference documentation, debug your app in the weOS emulator or an attached Palm device, and publish an application.