Mobile app development

This is an old revision of this page, as edited by Benjaminhill (talk | contribs) at 01:41, 27 February 2006 (Application Development). 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 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 functionality falls outside J2ME, and easier to get started with than Symbian Ideal for Graphics-heavy options with a market that can support the Flash Lite 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 available Unknown Excellent Average Unknown Excellent Good Unknown
Emulator available Free Emulator Free Emulator Add-on to Nokia Emulator Unknown Windows Mobile 5 can be integrated with IDE Many Unknown
Integrated Development Environment available 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 (Compiled language), lots of memory management options Average due to Java bytecode Below Average due to Interpreted language Unknown 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

  1. 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.
  2. Debuggers must be capable of
    • Settable Breakpoints
    • Step-through execution
  3. Mobile Integrated Development Environment evaluation is based on the availability of
  4. Emulator is based on availability and integration with development emulation options
  5. 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
  6. 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