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
- 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 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.
- 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
[edit] Resources
Wikimedia Commons has media related to: |
Please see the linked pages for resources for the specific development platforms
Categories: Operating systems | Computing platforms | Smartphones | Java platform | Java device platform | Dynamically-typed programming languages | Free software lists and comparisons | Object-oriented programming languages | Python programming language | Scripting languages | Embedded systems | Mobile phones | Consumer electronics | Mobile telephony