So what do developers really think of the various operating systems they build apps for? For starters, Apple's walled garden isn't all that bad; Android's flexibility can be a pain; and making apps for BlackBerry smartphones is a headache. Oh, and Windows Phone 7? Love the development tools.
Developers play an important part in making mobile operating systems and the smartphones that run them successful. A good app elevates a smartphone from just a cell phone to a mobile computer than can both entertain and inform.
But things get complicated pretty quickly when developers set out to create an app. They have to deal with different generations of an operating system, different form factors, compatibility issues and unexpected glitches with hardware – and that's all before the app is even tested to see if it works properly.
Here's a platform-by-platform look at the advantages and disadvantages of the top mobile operating systems, from the developer's point of view.
Apple's iOS platform has an obvious reason to be popular with developers: Its market share is gigantic and it rakes in boatloads of cash.
The Apple App Store will generate more revenue this year than Android Market, BlackBerry App World and the Ovi Store combined, according to recent estimates from IHS iSuppli.
If your app gets into the top ranking in the App Store, you're on the gravy train to success.
But if you dig a little deeper, you realize the size of Apple's application storefront can actually make things more difficult to developers for one simple reason: Its massive size means there's a ton of competition.
"People still think they can put a small amount of effort into an app and have a measure of success. On Apple, that's certainly not true," says Scott Michaels, vice president of Atimi Software, which first began developing apps for the iPhone in 2008 at Apple's request.
A new app in the App Store is a very small fish in a very big pond. There are more than 350,000 apps in the Apple App Store, and rising. Getting apps noticed can be a big problem, and can limit a company's ability to get a return on their investment in a given app. An app has to rise well above the competition to succeed on iOS.
One of the perceived downsides of iOS is that it's closed source – Apple controls the operating system and all the apps sold through the App Store.
This walled garden approach has been criticized for being too restrictive and dictatorial, but developers say the limitations Apple imposes on its API can actually make it easier to do their jobs.
Ivan Ozhiganov, who heads business development at Azoft, says iOS is a "stable and well-tested platform with no unexpected surprises for the developer."
Ozhiganov says that unlike other platforms, there's no "OS version/resolution nightmare" – essentially, the restrictions Apple places on its developers ensures that an app made for iOS will run seamlessly across the different generations of the iPhone without the need for substantial adjustments.
Apps developed on iOS work consistently across all the different generations of iPhone and iPad without needing major tweaking. Each generation of iPhone in Apple's iOS portfolio has essentially the same form factor, except with upgraded components, so developers don't have to reinvent the wheel every time Apple comes out with a new smartphone.
Of course, there are some downsides as well. Apple is notoriously slow to approve new apps; makes unexpected and dictatorial changes to rules concerning which apps will be approved; forces its developers to use its own app development tools; and iOS apps must be written in Objective-C, which isn't as widely known as Java.
"The wonderful thing about Apple is you get a uniform performance. The worst thing about Apple is you have to stay inside their box," says Susan Krostag, director of marketing at development company Appiction. "They do it for a reason: It works well."
However controversial Apple's iron grip on its platform has been with developers, there's no quibbling with results. The App Store's sales are expected to rise 63 percent to $2.91 billion this year, according to IHS iSuppli. Android Market, by comparison, is expected to post sales of $425.36 million. Even as Android makes its seeming inevitable gains in market share, the App Store is still expected to retain a 60 percent share of revenues from apps in 2014.
At first glance, Android would seem to be the best of both worlds. It has enough market share to put Apple on guard while providing its developers the flexibility of open source and a programming language they're more familiar with, Java.
However, that flexibility is something of a double-edged sword.
Not only do developers have to make sure their apps work across different versions of the operating system, but Android's rapid adoption by handset manufacturers means they have to accommodate many different form factors, from tablets and touchscreen-only devices like the Samsung Galaxy S to smartphones with slide-out qwerty keyboards like the HTC Evo Shift.
Polina Koronkevich, an Android app developer at Appiction, says the four different versions of Android currently on the market are less of a concern than the variety of form factors running the operating system.
"There are so many different devices and they don't always work the same," Koronkevich says. "The hardware, like the camera in a phone, might be documented one way but doesn't necessarily work the way you expect it to."
Depending on the manufacturer, a device's hardware may perform differently than expected, making it more difficult to develop apps leveraging a smartphone's camera, Bluetooth capabilities or keyboard. The fragmentation is essentially inevitable, since Android can be installed on virtually any device because it's an open-source technology.
Daniel Gonzalez, vice president of Sourcebits Technologies, agrees with Koronkevich: Form factor fragmentation is a huge issue for Android developers.
"If you're looking at an app that requires a custom UI, fragmentation is a huge problem," Gonzalez says. "If an app requires hardware like Bluetooth, that can create problems with quality assurance because of hardware made by different manufacturers."
The added complexity of the various form factors, their hardware quirks and the four versions of Android currently on the market can make life difficult for Android developers.
A well-trod saying about Java fragmentation is applicable to Android as well. At first, it was write once and run everywhere – now, it's write once and test everywhere. If developers want a pixel-perfect app on par with offerings for the iPhone, they'll need to spend time testing their Android apps for edge cases where their app might not perform as expected.
However, Gonzalez says the complexity isn't enough to deter him from developing for Android – yet.
"It's a problem, but it hasn't reached that critical mass yet where it's kind of a deal breaker," he says. "I think Google realizes it's something they're going to have to tackle and set some standards, reel that control back in."
Google's limited release of Android 3.0 Honeycomb points to the company's growing awareness of the need to address fragmentation within the operating system. Honeycomb is only being released to certain tablet manufacturers, making it more akin to closed source than open source.
Android's fragmentation issues, while something of a hassle, haven't deterred the platform's growth. New numbers from Canalys put Android's share of the global smartphone market at 35 percent in the first quarter, ahead of Apple's 19 percent share.
RESEARCH IN MOTION'S BLACKBERRY
BlackBerry may still be popular in the enterprise space, but it sure isn't popular with developers. Not only has the operating system failed to catch up to iOS and Android, it's difficult to develop for. The lack of backward compatibility between different versions of the platform, combined with clumsy developer tools and a dizzying array of form factors, makes creating apps for BlackBerry anything but a cakewalk.
"Developing for BlackBerry is a nightmare situation," says Patrick Emmons, co-founder of Web and application development firm Adage Technologies.
BlackBerry developers must support different form factors, from the touchscreen-only BlackBerry Storm to the Pearl, which has a qwerty keyboard but no touchscreen.
However, the real complexity comes when developers have to make apps across the various generations of BlackBerry smartphones, since there's a limited amount of backwards compatibility between different versions of the operating system.
Emmons says fragmentation of the form factors and capabilities of different BlackBerry smartphones and a lack of compatibility between different versions of the BlackBerry operating system make it difficult to develop an app that works across multiple BlackBerry devices.
All it takes to confirm this is a quick review of the revisions Research In Motion (RIM) has made to its BlackBerry platform.
RIM's newly announced BlackBerry 7 isn't backwards compatible with older BlackBerry smartphones because their graphics capabilities aren't up to snuff, so those phones can't be upgraded to the latest version of the platform. BlackBerry 6, announced last August with the launch of the BlackBerry Torch, is only backwards compatible with a select number of BlackBerry smartphones already in the market.
In addition, the QNX operating system running on RIM's PlayBook tablet isn't compatible with its BlackBerry operating system, but will run Android apps.
The complexity in the company's BlackBerry portfolio means that developers have to tailor apps for specific phone models, an extra step they don't usually have to take for Android and almost never have to resort to for the iPhone.
"If you want to get in BlackBerry's app store, you'll have to create five to six different versions to get 80 percent of BlackBerry users covered for a given application," Emmons says. "Apple, Android and Windows all saw that - that you need a consistent development environment. Developing for the iPhone isn't great, but at least it's consistent."
Emmons isn't the only developer with a beef against BlackBerry. Several other development firms agreed that developing for BlackBerry is a complex task, to say the least.
"BlackBerry, unfortunately, is a pain," says Intersog CEO Igor Fedulov. "You have to specify exactly what devices you target your applications for. Essentially, it's the hardest platform to develop for."
Sourcebits focuses mainly on iOS and Android development – for good reason. "If you're a developer who wants to develop for BlackBerry, you've got a lot of legacy devices, then BlackBerry 5, then the Torch and a whole new round of devices with BlackBerry 6," Gonzalez says. "They don't go out of their way to make it easy for developers in the first place."
At Appiction, Krostag says the company will develop for BlackBerry if a client requests it, but they try to either avoid the platform altogether or get their customer to go with a Web app.
"When someone wants BlackBerry, we try to talk them out of it," Krostag says. "If we know we have to develop for one specific BB model, it's no problem, but if someone asks us to develop across all BlackBerry devices, they will not get uniform performance, so we suggest to them a Web app."
Of course, RIM's customer base of corporate executive types isn't exactly the type to demand Angry Birds on their smartphone, so courting developers might not be RIM's top priority. Developers say the tools RIM provides to build apps are clumsier than those provided by its competitors, another sign that apps are somewhat low on RIM's priority list.
If RIM's efforts to court developers are any indication, RIM may be more interested in securing its bread-and-butter enterprise customers than making inroads into the consumer space. However, if the company has any hopes of competing against iOS and Android, it might want to think more closely about ways to rein in fragmentation.
MICROSOFT'S WINDOWS PHONE 7
Given the massive market share of iOS and Android, and the enterprise appeal of BlackBerry, why would anyone develop for Windows Phone 7, given its relatively limited scale?
There are a few reasons. Its development tools are, in the words of Emmons, a "joy to work with," and there's a chance that Microsoft will pay you to develop for the platform. The company recognizes that developers don't have much of an incentive to make apps for its platform, given the technology's limited reach in the marketplace, and sometimes hires developers to create apps for Windows Phone.
"If you look at what Microsoft has done historically, they've always been very good to their developers," Gonzalez says.
Microsoft has taken a middle-of-the-road approach to the openness of its platform. Developers must pay a license fee to develop on the platform, the ecosystem of Windows Phone devices is closed and Mircosoft controls the development tools, but the company's approval process for new apps is lighter than Apple's.
Microsoft's friendliness towards developers could serve it well in its tie-up with Nokia on Windows Phone 7. If successful, Nokia's dominance in the global handset market could dramatically increase Windows Phone 7's importance in the global smartphone market.
However, Nokia doesn't expect to come out with new Windows Phone 7 devices until 2012, and those smartphones will have to be up to par with steep competition from Android-focused manufacturers like Samsung and HTC. It will be a long time before the market will determine how successful Nokia's Windows Phone 7 devices will be.
The Symbian platform began to lag behind other operating systems, so Nokia said it would begin to make phones based on Maemo, but then decided to combine the Linux-based technology with Intel's Moblin for its MeeGo operating system, only to ditch the plans in favor of Windows Phone 7 in February. Symbian, meanwhile, got transferred over to Accenture. While the platform has maintained its share of emerging markets, its future is somewhat hazy.
With Maemo and MeeGo in the scrap heap, and Symbian on its way there, Nokia's developers have no choice but to move to Windows Phone 7.
Nokia CEO Stephen Elop warned the transition could be painful, and it probably will be. Elop has sent a clear message to Symbian developers since he announced Nokia's smartphones would move to Windows Phone 7: Move on, or move out.
BOILING IT DOWN
No matter how difficult or easy a platform is to develop for, a developer's final decision about which operating system to build for rests on their client's needs and the potential for return on investment.
"I think the ultimate criteria to the developer are how much exposure and revenue they can get on a platform," says In-Stat analyst Allen Nogee. "That isn't necessarily a platform with the most applications, although those platforms tend to attract the most developers."
Still, market share remains a hugely important criteria when developers pick a platform.
The scale and generous revenues provided by iOS continue to be alluring to app developers despite the fact that the App Store's size can make it difficult for an app to gain users.
Android's rapid adoption and flexibility made it an overnight success with developers, while BlackBerry's systemic fragmentation problems leaves some wondering if developing for the platform is worth the effort.
Then there's Windows Phone 7, which has yet to emerge from its cocoon but shows signs of promise, and Symbian, which is on its way out. This is not an exhaustive list of operating systems – there's Samsung's Bada and Palm's webOS as well. To be sure, there's plenty of competition for developers' attention.