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 | BREW | |
---|---|---|---|---|---|---|---|
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 | Unknown |
Application Development
Symbian | J2ME | Python | Flash Lite | .Net Compact | Microbrowser Based | BREW | |
---|---|---|---|---|---|---|---|
Foundation | C++ | Java | Python | ActionScript | C#, VB.NET, Managed C++ | XHTML (WAP 2.0), WML (WAP 1.2) | C++ |
Learning Curve | Steeper | Average | Excellent | Average | Average | Varies by Server-side scripting language | Unknown |
Debuggers | Unknown | Excellent | Average | Unknown | Excellent | Good | Unknown |
Emulator | Free Emulator | Free Emulator | Add-on to Nokia Emulator | Unknown | Windows Mobile 5 can be integrated with IDE | Many | Unknown |
Integrated Development Environment | Many choices | Eclipse, NetBeans Mobility Pack | Several | Macromedia Flash MX | Visual Studio 2005 | Many | Unknown |
Cross-Platform Deployment | Compile per target | Excellent - Bytecode | Interpreted language only on Nokia Series60 | FlashLite 2: Nokia Only | Windows Pocket PC | Excellent | CDMA handsets only |
Installer Packaging Options | SIS deployment | Jad/Jar packaging | Requires Python Runtime installed | Unknown | CAB Files | N/A | Unknown |
Development Tool Cost | Varies | Free | Free | Requires Application | Requires Application | Free | Unknown |
Capabilities
Symbian | J2ME | Python | Flash Lite | .Net Compact | Microbrowser Based | BREW | |
---|---|---|---|---|---|---|---|
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 | 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 | Unknown |
Phone Data Access | Full | Unknown | Partial through API: Calendar, Contact List | Unknown | Full | None | Unknown |
Runtime Speed | Best (Native), memory management | Average | Below Average | Unknown | Below Average | Average | Unknown |
Crippled Providers | Unknown | Yes - (Unknown) | Unknown | Unknown | None known | Dependent on data access plan | Unknown |
Popularity
Symbian | J2ME | Python | Flash Lite | .Net Compact | Microbrowser Based | BREW | |
---|---|---|---|---|---|---|---|
Developer Community and Support | Extensive | Extensive | Recent | Unknown | MSDN | Extensive | Unknown |
Market Penetration | Extensive | Extensive (also the basis of the Danger Sidekick Platform) | None (Recently Launched) | Average | Average | Extensive | Unknown |
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 is when mobile device carriers restrict hardware functionality
- Restricting loading of new applications
- Disabling or limiting Bluetooth access
Resources
Please see the linked pages for resources for the specific development platforms