Mobile development
From Wikipedia, the free encyclopedia
This page lists the known relative differences between the most popular mobile platform development options for handheld devices such as a PDA or mobile phones. It is not intended to be an absolute guide to the various mobile development platforms, instead it is to help guide developers in choosing a mobile platform for development on Information appliances. More detail on the subject can be found at the Mobile software article.
Contents |
| Overview | |
|---|---|
| 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. |
| Symbian | Very powerful for general purpose development. The Symbian based S60 platform is strongly supported by Nokia with some support from other device manufacturers. In Japan NTT DoCoMo's Symbian based MOAP platform is also well supported by a number of manufacturers (Fujitsu, Nokia, Mitsubishi and Sharp amongst others). It should be noted, however, that MOAP is not an open development platform. Another Symbian based platform, UIQ, is less well supported (principally by Sony Ericsson). Currently large device deployments in Europe and Japan, with little penetration in the US market. |
| 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 currently available only as a developer pre-release. Although it does not yet have any fielded implementations, its support by 34 major software, hardware and telecoms companies makes it likely that it will be rapidly adopted from 2008. 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. |
| Python | Ideal for initial prototyping and concept testing when functionality falls outside Java ME. |
| .NET Compact Framework | Ideal for deployment on homogeneous Pocket-PC devices. However not cross platform and limited to Microsoft devices. |
| 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 plattform and limited to Microsoft devices. |
| Palm OS | Significant player with strong enterprise following in the important US market. PalmOS makes up the lions share of revenues for most consumer focused developers. |
| Flash Lite | Ideal for Graphics-heavy options with a market that can support the Flash Lite player. |
| TagsMe | Ideal for quickly and easily develop Mobile Applications or Sites with xml files. |
| Microbrowser Based | Ideal for lightweight functionality, a web-interface for an existing application with no latency concerns, or a widely varying platform base |
| Foundation | Learning Curve | Debuggers available | Emulator available | Integrated Development Environment available | Cross-Platform Deployment | Installer Packaging Options | Development Tool Cost | |
|---|---|---|---|---|---|---|---|---|
| Symbian | C++ | Difficult (unusual C++ APIs, poor debugger support, and Symbian 9 breaks binary compatibility) | Good on latest version. | Free Emulator | Many choices | Compile per target | SIS deployment | Varies (free tools available) |
| Java ME | Java | Average | Excellent | Free Emulator, Sun Java Wireless Toolkit, mpowerplayer | Eclipse, NetBeans Mobility Pack | Average (many VM implementations have device specific bugs necessitating separate builds) | Jad/Jar packaging; PRC files under Palm OS | Free |
| Android | Java | unknown | Debugger integrated in Eclipse, Standalone debugging monitor also available | Free Emulator | Eclipse | unknown | apk | Free |
| Python | Python | Excellent | Average | Add-on to Nokia Emulator | Several, including plugins for Eclipse | Interpreted language available natively only on Nokia Series60 (and desktops) though there are ports to other mobile platforms, including PalmOS | Sis deployment with py2sis or can use Python Runtime | Free |
| Flash Lite | ActionScript | Average | Good | Bundled with IDE | Macromedia Flash MX2004/8 / Eclipse | Excellent (Bundled - Top 5 mobile manufacturers, limited handset model support as of 3/06, best web compatibility) | SIS / CAB deployment or OTA/IR/Bluetooth SWF files | Varies (Free but limited with MTASC) |
| .NET Compact Framework | C#, VB.NET | Average | Excellent | Bundled with IDE | Visual Studio 2005, 2003 | only Windows Mobile | CAB files | Free (but only basic tools) |
| Microbrowser Based | XHTML (WAP 2.0), WML (WAP 1.2) | Varies by Server-side scripting language | Good | Many | Many | Excellent | N/A | Free |
| BREW | C (the APIs are provided in C with a C++ style interface) | Difficult (but easier, and less featureful, than Symbian) | Debugger support for the native ARM target code now available via ARM RVDS 3.0. ($6k) Can use Visual Studio to debug the x86 testing code. | No Emulator for the target ARM code, has a simulator for the x86 testing code. | Visual Studio 6.0, Visual Studio 2003 .net, Visual Studio 2005 | Compile for the specific BREW version available on the handset. | OTA | Related Dev Fees Typically Required for Brew App Certification - VeriSign annual fee for becoming a certified developer. Realview ARM compiler for BREW (The free GNU C/C++ is also available, but with limited function and support). TRUE BREW testing fee for distributing the application. |
| Pocket PC | C, C++ | Average (excellent for Win32 developers) | Excellent | Bundled with IDE | Visual Studio 2005 | only Windows Mobile | CAB files | Requires Visual Studio Standard or better |
| Palm OS | C, C++ | Excellent | Average | OS 1.0 - 4.1: Free Emulator provided by PalmSource (Access); OS 5.0: - 5.4 Device-specific Simulators provided by Palm (palmOne) | Palm OS Development System (Eclipse), CodeWarrior | Palm OS handhelds, or Windows Mobile with StyleTap emulator | PRC Files, PalmSource Installer (.psi) | Free (POSE or GCC for Palm OS), or commercial (CodeWarrior), or various commercial rapid-development frameworks |
| Symbian | Java ME | Python | Flash Lite | .Net Compact | Microbrowser Based | BREW | Pocket PC | Palm OS | Android | |
|---|---|---|---|---|---|---|---|---|---|---|
| Graphical Interface | 2D, 3D Graphics (newer phones), Many Widgets, Visual Form-Based GUI Builder | 2D, 3D graphics, Many widgets, Visual Form-Based GUI Builder | 2D Graphics access, some simple widgets | 2D graphics, Many widgets | 2D graphics, Many widgets, Visual Form-Based GUI Builder | Basic XHTML-forms (applies to XHTML-MP, CHTML browsers). Basic forms for WML 1.1 (WAP 1.1). | 2D graphics, 3D graphics (not available on all phones), limited widgets, no visual form-based GUI builder. uiOne (not available on most phones in the market) | 2D, 3D Graphics, Many Widgets, limited visual GUI builder (dialogs only) | 2D, 3D Graphics, Many Widgets, Visual GUI builder | 2D, 3D (OpenGL ES) Graphics, Some Widgets, Third-Party GUI Builder |
| Functionality | No restrictions | Varies by handset - dependent on available included JSR's. No high-resolution pictures, No Cell ID, limited file access | Partial through API: High resolution pictures, Cell ID | Partial through API | Limited audio access | Isolated to browser | Powerful API access; specifics may vary slightly due to Operator application certification restrictions | No restrictions | No restrictions | Partial through API, Theoretically, no restrictions since all source is available. |
| Phone Data Access | Full | Varies by handset - dependent on available JSR 75, the PDA Optional Packages. | Partial through API: Calendar, Contact List | None | Full | None | Full | Full | Full | Full |
| Runtime Speed | Best (Compiled language) | Average due to Java bytecode | Below Average due to Interpreted language | Below Average due to Interpreted language | Average | Average | Best (Compiled language) | Best (Compiled language) | Best (Compiled language) | Average due to Java bytecode |
| Crippled Providers | None known | None known | None known | Not usually - Dependent on operator | None known | Dependent on data access plan | Need a handset & application specific signature to run any application on a retail phone. Test signatures only work on phones with BREW debug mode enabled. | None known | None known | None known |
| Symbian | Java ME | Python | Flash Lite | .Net Compact | Microbrowser Based | BREW | Pocket PC | Palm OS | |
|---|---|---|---|---|---|---|---|---|---|
| Developer Community and Support | Extensive | Extensive | Recent, growing | Extensive | MSDN | Extensive | Limited at http://brewforums.qualcomm.com | MSDN | Extensive, largest developer network |
| Market penetration | Deployed on a large number of high end devices, including handsets by Nokia, Fujitsu, Mitsubishi and Sony Ericsson amongst others. | Extensive (also the basis of the Danger Sidekick Platform) | Average | Average | Average | Extensive | High in Japan (KDDI). Was deployed via KTF in Korea, though Korea is now promoting its own hybrid BREW/JAVA-like technology "WIPI". Average in the U.S. (Verizon) and low in other countries, though there is growing presence in South America and China. | Extensive within Europe and a growing market within the US. | Shares the US smartphone market with Blackberry |
| Distribution and Licensing | SymbianSigned for 3rd Edition (OS 9?) | None (Java Signed?) | None | None | Unknown | None - Server Based Code | Unknown | Unknown | Unknown |
- Any undetermined cells are marked "undetermined" to indicate a request for help from someone with the appropriate knowledge.
- Learning Curve is an approximation of how difficult it would be for a developer with reasonable proficiency in the Foundation language to both construct a Hello world on the mobile platform, as well as relative ease of accessing advanced mobile features. By nature, this will be the most difficult to keep a neutral point of view on, and is not intended to be a debate on the relative quality of C# vs. Java.
- Debuggers must be capable of
- Settable Breakpoints
- Step-through execution
- Mobile Integrated Development Environment evaluation is based on the availability of
- Emulator is based on availability and integration with development emulation options
- Low-Level Access includes the capability of accessing various forms of mobile device functionality
- Full-resolution digital photos
- Video capture
- Cell Tower ID
- File access
- Crippled Providers is when mobile device carriers restrict hardware functionality
- Restricting loading of new applications
- Disabling or limiting Bluetooth access
Please see the linked pages for resources for the specific development platforms
- J2ME
- BREW
- Symbian
- Mobile Device Testing
- Mobile software
- Mobile Marketing
- WAP
- Adobe Flash Lite
- TagsMe
- Android
Please only post non-official links if it is to a cross-comparison or rollup of information.
- Sun JavaME page
- Official Flash Lite information
- Java ME performance data
- TagsMe TagsMe page
- FieldCenter mobile form builder
| Mobile Phones | |||
|---|---|---|---|
|
|||