This page lists the known relative differences between the most popular mobile platform development options for handheld devices such as personal digital assistants, enterprise digital assistants or mobile phones.
Java ME
Ideal for a portable solution, if the Java ME platform provides the needed functionality. Good for vertical applications that must be portable. Device-specific libraries exist for many devices and are commonly used for games, making them non-portable. Applications (including their data) cannot be larger than around 1 MB if they are to run on most phones. They must also be cryptographically signed in order to effectively use many APIs such as the filesystem access API. This is relatively expensive and is rarely done, even for commercial applications.
Symbian
Very powerful for general purpose development. Designed from the start for mobile devices, the Symbian platform is a real time, multi-tasking OS specifically architected to run well on resource-constrained systems, maximising performance and battery life whilst minimising memory usage. The Symbian Foundation maintains the code for the open source software platform based on Symbian OS and software assets contributed by Nokia, NTT DOCOMO, and Sony Ericsson, including the S60 and MOAP(S) user interfaces. Portions of the platform’s source code have already been moved to open source, under the Eclipse Public License. By mid-2010 this process will be complete, making the platform code available to all for free. Close to 300 million Symbian OS-based units have been shipped and Symbian holds more than a 50% market share globally.
Android
Recently announced by the Open Handset Alliance, whose 34 members include Google, HTC, Motorola, Qualcomm, and T-Mobile, Android is a new Linux-based platform. Although it has only 2 fielded implementations, its support by 34 major software, hardware and telecoms companies makes it likely that the pace of adoption will increase. The Linux kernel is used as a hardware abstraction layer (HAL). Application programming is exclusively done in Java. You need the Android specific Java SDK. Besides the Android Java Libraries it is possible to use normal Java IDEs.
BlackBerry
Supports push e-mail, mobile telephone, text messaging, internet faxing, web browsing and other wireless information services as well as a multi-touch interface. It has a built-in QWERTY keyboard, optimized for “thumbing”, the use of only the thumbs to type. The BlackBerry devices soon took a dominating position on the north-American smartphone market. Also important for BlackBerry are the BES (Black Berry Enterprise Server) and the Mobile Data System (BlackBerry MDS).
iPhone OS
The iPhone and iPod Touch SDK uses Objective C, based on the C programming language. Currently, is only available on Mac OS X 10.5 and is the only way to write an iPhone application. All applications must be cleared by Apple before being hosted on the AppStore, the sole distribution channel for iPhone and iPod touch applications. However, non-Apple approved applications can be released to jailbroken iPhones via Cydia or Installer.
Lazarus
Ideal for prototyping and quickly developing database powered applications. Also useful for porting Object Pascal software to mobiles. Can access the native APIs when translated headers are available.
Python
Ideal for initial prototyping and concept testing when functionality falls outside Java ME.
.NET Compact Framework
Ideal for deployment on Pocket PC / Windows Mobile devices. While primarily still limited to Microsoft Windows Mobile devices, it is now being extended to Android devices as well via Mono. There have also been discussions about extending Mono to other mobile platforms, but nothing has happened to date.
BREW
Ideal for deploying applications for deployment on CDMA-based networks (also supports GPRS/GSM models) with a deployed Brew Content Platform especially if OTA app deployment is desired. Little penetration in Europe.
Pocket PC and Microsoft Smartphone
Ideal for enterprise applications with an existing PC infrastructure and options for significant development investment. However not cross platform and limited to Microsoft devices.
Palm OS
Significant player with strong enterprise following in the important US market.
Flash Lite
Ideal for Graphics-heavy options with a market that can support the Flash Lite player.
Microbrowser Based
Ideal for lightweight functionality, a web-interface for an existing application with no latency concerns, or a widely varying platform base.