Underneath the sleek exterior, the multi-touch display and the sliding keyboard of the upcoming Palm Pre smartphone is the real innovation: a new kind of operating system designed with the mobile Web in mind.
For the mobile enterprise, Palm’s webOS and companion Mojo software development kit offer a dramatically simpler way to build sophisticated mobile applications that are highly integrated with Web-based content and services, according to several developers working with these tools since early this year.
“It’s a completely new way of thinking about an OS on mobile devices,” says Christian Sepulveda, vice president of business development at Pivotal Labs. The San Francisco software development shop is building its own webOS application as well as several for third parties.
It’s the combination of these kinds of capabilities that excites developers. “Palm started with a clean sheet of paper,” says Tom Conrad, CTO for Pandora, an Oakland, Calif., company that offers a personalized Internet radio service, widely used on iPhones. Pandora just introduced a version for BlackBerry and in December started working with Palm on a webOS version. “Everything about the Pre feels like it’s ‘future-oriented,’ not an iPhone-inspired knockoff.”
The Pre (pronounced “pree”) smartphone, unveiled in January and due out by June 30, is only the first product that will run Palm’s webOS, though Palm so far hasn’t announced any other devices nor said much publicly about the OS. (O’Reilly Media is publishing “Palm webOS, 1st Edition,” by Palm Software CTO Mitch Allen.) Developers are restricted in what they can say by nondisclosure agreements, but they were able to confirm many of Palm’s claims for the OS, and to talk about building applications for it.
What’s known is that Palm’s new platform is based on the Linux 2.6 kernel, with some added open source and custom subsystems, such as telephony, touch-screen input, power management and so on. The kernel hosts what Palm calls the User Interface System Manager, which handles features such as navigation, application launching and notifications.
In that sense, webOS applications are like native applications. But they differ by running in the WebKit engine instead of interacting directly with an underlying OS.
“Your application is running as though it were a kind of series of dynamic Web pages in an embedded browser,” says Pandora’s Conrad. “It’s not compiled into ‘non-Web code.’ It executes within a true Web environment.”
Multitasking to the max
Multitasking — being able to run several applications at once on a mobile device — isn’t unique. RIM’s BlackBerry OS supports it, as does Microsoft’s Windows Mobile. Even Apple’s iPhone OS supports it, though Apple restricts third-party use of this capability.
But multitasking often is limited and hard to exploit in conventional platforms, according to Pivotal’s McFarland. “If you’re composing an e-mail on the iPhone, you can’t check other e-mails in the same thread, or check a Web site to add a link to the e-mail, or copy-and-paste something,” McFarland says. “You can’t do these kinds of things on most mobile platforms.”
By contrast, “webOS has fully embraced the notion of applications running at the same time, as PCs do,” Sepulveda says. “You can now write applications that are more complex.”
That ability raises the potential for problems, however. Apple restricts multitasking on the iPhone in part to prevent applications from interfering with each other or hogging limited memory, battery and CPU resources. The webOS developers wouldn’t go into details, but they say Palm has addressed those issues.
“I think you always run the risk of a programmer running amuck,” says Eric Marthinsen, a partner at Agile Commerce, a Lexington, Mass., development shop that specializes in building custom, Web-based systems for start-ups. Agile has been working with webOS and Mojo since early January. “But the way Palm has approached multitasking is very smart. It really mitigates that risk.”
Leveraging Web development standards
Marthinsen and others see Palm’s decision to base webOS on Web standards as a development watershed, because it leverages mature, well-documented, widely used technologies. Agile had little mobile development experience before it started working with webOS. “With Mojo, we were up to speed in weeks,” says Marthinsen. “The barriers for entry for developing on Mojo are very low.”
Agile was able to quickly build a mobile version of FlightView’s real-time airline flight tracking service (you can see a short demo here). The Pre displays a real-time map of the flight, while the application continually monitors the flight in the background, and alerts you to any changes in flight status.
But the application also interacts directly with other parts of the phone. A click will add a flight to your calendar, for example, or launch a phone call to the airline’s reservation service. By comparison, says Marthinsen, who uses an iPhone, “the iPhone is known for being fairly closed. With an [iPhone] app, you’re very separated from the other applications.”
“Palm has all kinds of great APIs to talk with the rest of the Pre architecture, to get location data, for example,” says Pandora’s Conrad.
(Apple is dramatically expanding the APIs available to iPhone developers, with 1,000 new ones in the 3.0 version of the iPhone OS, due out this summer.)
Palm Synergy is an example of how these elements can come together to create a new user experience. Synergy creates a unified logical view of different data sources and applications, such as contacts or calendar data, drawn from the phone, a corporate Exchange server and various Web accounts such as Google or Facebook.
“What’s exciting about Synergy is that today I have to think about where to go to get all these bits of information,” Conrad says. “What Palm has done is unified all this from the perspective of the user experience, by understanding there are certain kinds of online systems that share common semantics, which we can merge at the UI layer.”