Smartphones: A Tower of Babel for developers

Editor’s Note: This article is reprinted from InfoWorld. For more IT news, subscribe to the InfoWorld Daily newsletter.

In the fast-moving world of smartphones, application developers must make choices: Develop native applications for Apple’s iPhone or perhaps for the Palm Pre. Or maybe build for Symbian, the RIM BlackBerry, or Google’s Android. If you have the time and skills, you can build your application again and again for different phones, using native development resources.

Or you can build applications using frameworks and Web technologies to work on multiple brands—but any apps you build this way might not fully leverage some capabilities of specific phones.

The Tower of Babel of platform and SDK choices

Would-be mobile developers face a Tower of Babel environment, making it tough to figure out how—indeed, whether—to take the plunge into creating apps for the small but enticing mobile market. The pull is clear: With smartphones becoming more popular thanks to colorful, multimedia devices such as the iPhone, a whole new world of opportunity exists for developers—along with the burden of learning new SDKs.

“The underlying problem is that OSes and the runtime platforms on a lot of those mobile devices are very different, historically,” says Christian Kurzke, project lead for the Eclipse Mobile Tools for Java project and developer-tools architect at Motorola.

The result: “The different devices have very different development frameworks and application frameworks,” notes independent analyst Bill Weinberg.

And even among phones running the same software platform, there may not be much unity in development. “I did some experimentation with Android, but I found that there were huge differences between each of the Android devices,” says Christopher Allen, who has primarily developed for Apple’s iPhone and is founder of the iPhoneWebDev online developer community.

Such disunity is also possible for more consistent platforms. For example, Verizon plans on releasing an SDK to develop Windows Mobile and BlackBerry apps tuned to its network, so developers might end up having different versions of the same app for different networks. Motorola also plans its own SDK for Android development with Motorola-specific libraries, though the company claims developers can use the tools to develop apps that run on non-Motorola devices as well.

Plus, third-party options for standardized platforms add to the mix. Although Apple has its own SDK for the iPhone, developers can use third-party iPhone app dev tools. The same holds true for BlackBerry, where developers can employ third-party BlackBerry app dev tools other than RIM’s if they choose.

Can HTML 5 overcome mobile disunity?

But perhaps Web technologies such as HTML 5 can help ease the burden of supporting different devices. “HTML 5 really, really helps with mobile development,” says Hampton Catlin, a developer for the Wikimedia Foundation, best known for its Wikipedia site. The specification offers capabilities such as JavaScript Canvas for graphics, he notes.

“Instead of using Objective C [which is used with the iPhone] or using Java in the case of Android, basically what you’re doing is you’re loading a very complex Web page on the phone” via HTML 5, Catlin says.

The WebKit browser engine in particular offers great support for HTML 5, Catlin says. Applications using it can run on iPhone, Palm Pre, and Android, he notes, and developers can work with familiar technologies such as CSS and JavaScript. This approach still requires a separate build for each device, but most of the code is the same, with about 20 lines of custom bootstrapping code for each device, Catlin says.

The Pre is particularly suited for an HTML 5-based Web app approach, says Charles Taylor, senior .Net developer at Break.com. “There’s a world of difference. iPhone development is more like the traditional Mac OS development,” he says. “The Palm Pre, on the other hand, is a lot more rapid development.”

Google and Palm have trumpeted the support of HTML 5 on their devices as making it easier for developers to create applications. In both cases, their SDKs lets developers extend the generic HTML 5, CSS, and JavaScript capabilities to take advantage of device-specific functions. Apple, which declined to talk to InfoWorld for this story, supports some HTML 5 capabilities on the iPhone and provides an SDK that lets Web apps tap into iPhone-specific functions. (Microsoft also declined to talk to InfoWorld for this story.)

Of course, there’s a trade-off between the simplicity of the HTML 5-based approach favored by the Pre and the SDK-specific approach favored by the iPhone. “Even though the iPhone’s more complex to build for, that complexity also comes with power,” Taylor says. “You have the ability to do much more with the iPhone than you have with the Palm Pre at this time.” He cites gaming as one advantage of the iPhone over the Pre.

The HTML-oriented SDKs that go semi-native

A twist on the Web app approach is the use of an HTML-oriented SDK such as Rhomobile Rhodes platform for building mobile applications. Rhodes is among a grouping of products intended to provide the ability to write an application to run on multiple platforms. Rhodes can create a native application for iPhone, Symbian, Android, Windows Mobile, and BlackBerry, says Rhomobile CEO Adam Blum. Developers write to a model-view-controller container and a set of HTML templates for views. Applications are written in HTML and Ruby, then compiled to native executables, he said.

Wikimedia’s Catlin says that Rhodes is good at some things such as synchronizing data to a phone. But he is more a proponent of HTML 5. “The difference is that Rhodes launches a Web server on your phone,” he says, while with WebKit, a static Web site is loaded.

Appcelerator Titanium is similar to Rhodes. Supporting Android and iPhone, the Titanium framework features APIs for building native desktop and mobile applications, leveraging HTML, CSS, and JavaScript. The product tries to map as close to native APIs as possible, says Nolan Wright, Appcelerator’s CTO.

“Overall, what’s happening in the market is the adoption of Web technologies on mobile phones,” says Purnima Kochikar, vice president of the Forum Nokia Developer Community at Nokia. That lets developers’ Web skills translate to mobile phones, she says. Plus, “moving from one application platform to another becomes simpler,” though she notes that almost all phones require testing of the resulting apps.

But the Web app approach does introduce the issue of not taking advantage of specific platform capabilities. Thus, most platforms let developers do it either way. Developers can build Web apps that run on the iPhone, or use Apple’s tools to build iPhone-native apps, for example. Also, RIM offers a Java development environment for building BlackBerry applications as well as a Web development option for building browser-based programs. The Web apps can leverage widget programs created in the BlackBerry SDK. These widgets are essentially Web applications that have access to native applications in the device, creating a bridge between the generic Web app and the target device. Of course, such widgets run only on the BlackBerry. Apple’s iPhone SDK has a similar capability that lets developers use both Web apps and native libraries together.

The forthcoming LiMo mobile Linux platform’s development environment will use the Bondi widget specification (developed by a consortium of carriers called the Open Mobile Terminal Platform) to allow the creation of Web-based applications that provide a consistent set of capabilities and user experience across specific LiMo devices, notes Andrew Shikiar, the LiMo Foundation’s marketing director. Some custom porting may be needed, he notes.

Eclipse tries to deliver a unified mobile app dev platform—for some devices

The Eclipse Foundation’s Pulsar initiative is looking to provide a semblance of unified development for mobile apps, focused on building for Java MIDP handsets but still requiring individual SDKs. So-called feature phones — the pre-iPhone type of device that comprises the majority of cell phones sold today, such as those from LG and Samsung, and offer less multimedia and application functionality than smartphones—are the primary target for Pulsar. It’s meant to help developers “target most of the [feature phones] running MIDP in the market today,” says Motorola’s Kurzke.

Pulsar provides an Eclipse-based development environment that accesses appropriate SDKs for developers to build handsets from multiple vendors. Currently supported devices are Android using Motorola’s SDK, Nokia S60 series using Nokia’s C++ SDK, and BlackBerry using RIM’s Java framework. Eclipse hopes to add backing for Symbian phones next year.

Break.com’s Taylor, however, was not optimistic about prospects for the project to provide unified development for multiple platforms, given differences in screen resolutions, capabilities, and operating systems.

This story, "Smartphones: A Tower of Babel for developers" was originally published by InfoWorld.

To comment on this article and other Macworld content, visit our Facebook page or our Twitter feed.
Shop Tech Products at Amazon