This page summarizes the known differences between the most popular mobile platform development options. 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. Wherever possible, the comparisons are relative, supporting a more neutral point of view
Mobile Development Comparison
Symbian | J2ME | Python | Flash Lite | .Net Compact | Web Browser Based | |
---|---|---|---|---|---|---|
Summary | ||||||
Ideal for speed-critical applications with a long timeline and options for significant development investment. | Ideal for an all-around solution, if the J2ME platform provides the needed functionality | Ideal for initial prototyping and concept testing when functionaluty falls outside J2ME, and easier to get started with than Symbian | Ideal for Graphics-heavy options with a market that can support the FlashLite player | Ideal for deployment on homogeneous Pocket-PC devices | Ideal for lightweight functionality, a web-interface for an existing application with no latency concerns, or a widely varying platform base | |
Application Development | ||||||
Foundation | C++ | Java | Python | ActionScript | C#, VB.NET, Managed C++ | XHTML (WAP 2.0), WML (WAP 1.2) |
Learning Curve | Relatively more Challenging | Excellent | Excellent | Average | Excellent | Varies by Server-side scripting language |
Debugging | Unknown | Excellent | Average | Unknown | Excellent | Good |
Emulator | Free Emulator | Free Emulator | Add-on to Nokia Emulator | Unknown | Windows Mobile 5 can be integrated with IDE | Many |
Integrated Development Environment | Many choices | Eclipse, NetBeans Mobility Pack | Several | Macromedia Flash MX | Visual Studio 2005 | Many |
Cross-Platform Deployment | Compile per target | Excellent | Limited to Nokia Series60 | FlashLite 2: Nokia Only | Windows Pocket PC | Excellent |
Development Tool Cost | Varies | Free | Free | Requires Application | Requires Application | Free |
Capabilities | ||||||
Graphical Interface | Unknown | 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 | Unknown |
Functionality | No restrictions | No high-resolution pictures, No Cell ID, limited file access | Partial through API: High resolution pictures, Cell ID | Unknown | Limited audio access | Isolated to browser |
Phone Data Access | Full | Unknown | Partial through API: Calendar, Contact List | Unknown | Full | None |
Runtime Speed | Best (Native) | Average | Below Average | Unknown | Below Average | Average |
Crippled Providers | Unknown | Yes - (Unknown) | Unknown | Unknown | None known | Dependent on data access plan |
Market Range | ||||||
Developer Community and Support | Extensive | Extensive | Recent | Unknown | MSDN | Extensive |
Market Penetration | Extensive | Extensive (also the basis of the Danger Sidekick Platform) | None (Recently Launched) | Average | Average | Extensive |
Installer Packaging Options | SIS deployment | Jad/Jar packaging | Requires Python Runtime installed | Unknown | CAB Files | N/A |
Evaluation Criteria
- Learning Curve is based on interviews and discussions with developers, and is both an indication of "time before Hello world on the mobile platform" as well as 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.
- Mobile Integrated Development Environment is based on the availability of
- Code Completion
- Invalid Syntax Highlighting
- Syntax Highlighting
- Syntax Analysis
- Refactoring
- Debugging
- 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
- Crippled Providers includes mobile device carriers that reduce functionality provided by the device hardware
Resources
Please see the linked pages for resources for the specific development platforms