Mobile development

From Wikipedia, the free encyclopedia

This page summarizes 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.

Contents

[edit] Mobile Development Comparison

Overview
Symbian Strongly supported by Nokia with waning support from other device makers. Currently large device deployments in Europe, with little penetration in the US market.
Java ME Ideal for an all-around solution, if the Java ME platform provides the needed functionality.
Python Ideal for initial prototyping and concept testing when functionality falls outside Java ME.
Flash Lite Ideal for Graphics-heavy options with a market that can support the Flash Lite player.
.NET Compact Framework Ideal for deployment on homogeneous Pocket-PC devices.
Microbrowser Based Ideal for lightweight functionality, a web-interface for an existing application with no latency concerns, or a widely varying platform base
BREW Ideal for deploying applications for deployment on CDMA-based networks with a deployed Brew Content Platform especially if OTA app deployment is desired.
Pocket PC and Microsoft Smartphone Ideal for enterprise applications with an existing PC infrastructure and options for significant development investment.
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.

[edit] Application Development

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 Free
Python Python Excellent Average Add-on to Nokia Emulator Several, including plugins for Eclipse Interpreted language only on Nokia Series60 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 Windows Mobile CAB files Free for 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) No Debugger support for the native ARM target code. 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 CDMA handsets only - 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 Windows Mobile CAB files Requires Visual Studio Professional or better
Palm OS C, C++ Excellent Average Free Emulator provided by PalmSource (Access). Eclipse, CodeWarrior Palm OS handsets only PRC Files Requires Application

[edit] Capabilities

Symbian Java ME Python Flash Lite .Net Compact Microbrowser Based BREW Pocket PC Palm OS
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
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
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
Runtime Speed Average largely due to limited functionality of handsets where Symbian is available 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)
Crippled Providers Unknown Yes - (Unknown) Unknown 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

[edit] Breadth

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 low end Nokia devices Extensive (also the basis of the Danger Sidekick Platform) Average Average Average Extensive High in Japan and Korea, average in the U.S. (Verizon, Sprint Nextel), low in other countries. Extensive within Europe and a growing market within the US. Shares the US smartphone market with Blackberry

[edit] Evaluation Criteria

  1. Any undetermined cells are marked "undetermined" to indicate a request for help from someone with the appropriate knowledge.
  2. Learning Curve is an approximation of how difficult is 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.
  3. Debuggers must be capable of
    • Settable Breakpoints
    • Step-through execution
  4. Mobile Integrated Development Environment evaluation is based on the availability of
  5. Emulator is based on availability and integration with development emulation options
  6. 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
  7. Crippled Providers is when mobile device carriers restrict hardware functionality
    • Restricting loading of new applications
    • Disabling or limiting Bluetooth access

[edit] Resources

Wikimedia Commons has media related to:

Please see the linked pages for resources for the specific development platforms