This page summarizes the known 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. Wherever possible, the comparisons are relative, supporting a more neutral point of view
Mobile Development Comparison
Symbian | J2ME | Python | Flash Lite | .Net Compact | Microbrowser Based | |
---|---|---|---|---|---|---|
Overview | 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 |
Debuggers | 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 - Bytecode | Interpreted language only on 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 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
- Autocomplete
- Syntax highlighting
- 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
- Full-resolution digital photos
- Video capture
- Cell Tower ID
- File access
- 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