Mobile app development

This is an old revision of this page, as edited by Benjaminhill (talk | contribs) at 18:16, 23 February 2006 (Evaluation Criteria). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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
Results
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

  1. 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.
  2. Mobile Integrated Development Environment is based on the availability of
    • Code Completion
    • Invalid Syntax Highlighting
    • Syntax Highlighting
    • Syntax Analysis
    • Refactoring
    • Debugging
  3. Emulator is based on availability and integration with development emulation options
  4. Low-Level Access includes the capability of accessing various forms of mobile device functionality
  5. 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