After settling on these strategic development questions, business technology leaders must settle on which platform best meets those needs. Here's perspective on several leading choices. We don't cover Palm in depth, since it's slipped to 2% of the smartphone market, says Gartner, while Symbian has half the world market, and the BlackBerry and iPhone make up about 70% of North America.
- Nokia's Symbian OS-based S60 platform has something for everyone -- C, C++, Java, Python, WRT widgets, and Flash-but the APIs require some getting used to. Symbian C++ and Open C/C++ (a C programming interface with runtime Posix libraries) programs are packaged as metadata files that must be digitally signed for security checks or the application won't execute. IT can therefore use security certificates to monitor and control in-house mobile applications.
- Android applications are written in Java, but not Java ME. Instead, the Android SDK is a combination of standard Java SE and Java ME methods and classes, as well as nonstandard ones. This means that there's a learning curve, even for seasoned Java developers. The Android Development Tools plug-in lets developers use Eclipse to write and debug applications. Again, Android apps must be signed or they won't run. The SDK does provide a developer key, but a private key is required for public distribution.
- BlackBerry applications can be developed several ways: a Java-based IDE that provides access to RIM APIs and an Eclipse plug-in; a rapid application development approach that focuses on Web services using Visual Studio or Eclipse plug-ins and supports any .Net or Java language choice; or a Web-based app approach referred to as Browser Development, which lets developers create apps using existing BlackBerry browser software. The downside to writing apps using BlackBerry API extensions is that it ties the application to a particular device. Still, that's no different than using the Android's unique Java classes.
- Windows Mobile uses the .Net Compact Framework, which makes development relatively straightforward for developers familiar with .Net languages such as C#, Visual Basic .Net, and (for native code) Visual C++. Because the .Net Compact Framework is a subset of the .Net Framework, components from .Net-based desktop clients, application servers, and Web servers are available. The upside is companies that have standardized on Microsoft platforms and developer tools can jump into mobile development. The downside is the the apps run on a single platform -- Windows Mobile OS.