Desktop programmers have it easy. Most can still program for 90 percent of the market—Windows—and ignore the Mac OS and all the flavors of Linux. For smartphones, though, things are different. Globally, almost half the 175 million smartphones purchased in 2009 ran the Symbian operating system, and one-fifth were BlackBerries. Most of the rest, about 14 percent, run Windows Mobile, according to a February 2010 report from the IT research analysis firm Gartner. Developers who want to target the large and rapidly growing U.S. market, however, need to consider that the BlackBerry is by far the leading platform there with 42 percent, followed by Apple with 25 percent, while Symbian has less than 5 percent, according to research firm comScore.
Despite the market’s heterogeneity, the nexus of smartphones, wireless broadband, and network-based cloud computing constitutes a perfect storm of opportunity for application developers, luring their attention toward the new platforms. ”There’s a lot of cool things that notebooks or netbooks don’t do so well or can’t do,” says mobile-device-watcher Chris De Herrera. Phones are always on and always connected, pushing e-mail and SMS messages every minute. Smartphones with GPS give turn-by-turn directions, geocode the pictures they take, and search around you for movies, restaurants, and sales at your favorite stores. Smartphones can identify the songs you hear playing and read bar codes and other tags. But all those capabilities can make application development a nightmare.
To be sure, all smartphones have Web browsers. Yet a Web app optimized for one phone may not run well on others—even on other models of the same platform. Processing power, storage, and functionality differ wildly from device to device. You can minimize the differences by processing data back on a server—one of the reasons cloud computing is all the rage. But Dan Turchin, CEO of mobile applications developer Aeroprise, in Mountain View, Calif., warns, ”Mobile browsers aren’t particularly responsive, and when every click needs to go back to the server, you can wait minutes to process a transaction.”
Moreover, browser-based apps can’t tap into a smartphone’s best features. Mobile application vendor ProOnGo, in Chicago, for example, has a BlackBerry expense-tracking app that lets you photograph a receipt with the phone’s camera; the software then reads the text and folds it into your expense report. CEO Phillip Leslie says, ”Our deep integration with smartphone cameras wouldn’t have been possible with just Web app code, nor would some of the image-processing algorithms we use to manipulate the resulting images.”
Still, a native app for the BlackBerry won’t run on an iPhone. If you want to reach even 70 percent of the market, you have to program for more than one environment.
So how much work is writing that second version? The short answer is, a lot. ”If you intend to develop your application in the native environment of a specific device, ’moving’ it to another platform is synonymous with rewriting it,” says Brandon Trebitowski, who heads software development at ELC Mobile, the mobile development arm of ELC Technologies. ”Most mobile devices support different programming languages and have entirely different software development kits.”
”To do multiple versions, there was nothing we could borrow,” reports Ray Bernaz, founder and CEO of Socialibrium, whose products—developed first for the iPhone—help users manage their social networks. ”We had to redo the entire user interface and back end for the BlackBerry. There was no code we could reuse, as the iPhone and BlackBerry use different programming languages”—Objective C/C++ and Java, respectively.
Of course, new implementations can benefit from previous ones. ProOnGo’s Leslie says, ”Our Windows Mobile version took us 12 months to write. When you port it, at least the feature set is nailed down. It took only five months to port to BlackBerry, three to iPhone, and two to Android. The one place where we got some good portability is BlackBerry and Android, because they’re both Java-based.”
So which platform comes first? With nearly half the market, it would seem an easy choice—BlackBerry, which excels in business-related applications, such as time and expense trackers, business-card readers, apps for creating and distributing forms, and De Herrera’s favorite, an HP 12c calculator emulator. ”CPAs love this,” he says, because it can make interest calculations not easily done in Excel.