In this corner: the current champion of the mobile phone market, the iPhone. In the other corner: a scrappy open source challenger, Android.
While the iPhone has without a doubt been the big success story of the past year in the mobile phone world, many other companies are planning to release similar devices this year to challenge its status as the undisputed king of smartphones. Some of the more intriguing competitors for the iPhone will be those devices that are powered by Android, Google's open source mobile platform.
Google said in November that it developed Android to spur innovation among developers to create applications for mobile phones that wouldn't be exclusive to particular carriers or devices. In contrast to the iPhone, which developers previously had to unlock in order to create and distribute their own applications, Google said that Android would create a truly free environment for third-party developers.
Months later, Apple decided that it wanted to encourage third-party application development as well and released its software developers kit (SDK). Additionally, Apple said it would help developers distribute their applications by creating an AppStore that would let consumers browse and purchase individual applications much as they do with music and movies on the iTunes store.
So now that Apple and Google are both openly courting third-party developers to write applications for their platforms, the question becomes just what those platforms offer developers in terms of ease of use, support and distribution models.
Jason Cline, a senior software engineer at Web application developer Sitepen, says that the broad differences between the iPhone and Android SDKs are related to trade-offs between greater freedom and greater accessibility. Thus, for instance, while Apple may control which applications it will allow onto the iPhone, it compensates by having an AppStore that makes distributing and selling the applications a relative snap, says Cline. Additionally, Cline says that the iPhone operating system and presentation is so accessible and user-friendly that it has set the standard for other mobile operating systems.
"Android is a completely open system, while Apple is definitely more of a closed system," he says. "They say, 'Here's a very small box that you can work in.' It's a very nice box that has a lot of nice features, but as a developer, you're a little bit constrained."
Benoit Schillings, CTO for software developer Trolltech, notes that Apple not only gets to pick and choose which applications it will sell in its AppStore but also prevents developers from making applications that modify or compete with existing iPhone applications, such as Web browsers.
"Apple definitely puts restrictions on what kinds of applications can be written," he says. "It blocks the door to Java and other applications frameworks. In their SDK contract, they prevent you from opening up new programming language and they keep control of putting new language on the phone."
The programming language used for each platform is one of the key differences between the iPhone and Android SDKs. Android is a Linux platform that uses Java as its programming language, whereas the iPhone employs a mobile variation of the Mac OS X that uses the Apple-developed Objective-C as its programming language. Hal Steger, vice president of marketing for open source software company Funambol, thinks that Android has the upper hand in this particular matchup since Java is a more widely known programming language.