Mobile app development
This article needs additional citations for verification. (September 2009) |
![]() | This article possibly contains original research. (September 2009) |
This page lists the known relative differences between the most popular mobile platform development options for handheld devices such as personal digital assistants, enterprise digital assistants 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. More detail on the subject can be found at the Mobile software article. A list of app stores and application download volumes per mobile platform can be found in the article list of digital distribution platforms for mobile devices.
Mobile development comparison
![]() | This article or section possibly contains synthesis of material which does not verifiably mention or relate to the main topic. (March 2008) |
Overview | |
---|---|
Java ME | Ideal for a portable solution, if the Java ME platform provides the needed functionality. Good for vertical applications that must be portable. Device-specific libraries exist for many devices and are commonly used for games, making them non-portable. Applications (including their data) cannot be larger than around 1 MB if they are to run on most phones. They must also be cryptographically signed in order to effectively use many APIs such as the filesystem access API. This is relatively expensive and is rarely done, even for commercial applications. |
Symbian | Very powerful for general purpose development. Designed from the start for mobile devices, the Symbian platform is a real time, multi-tasking OS specifically architected to run well on resource-constrained systems, maximising performance and battery life whilst minimising memory usage. The Symbian Foundation maintains the code for the open source software platform based on Symbian OS and software assets contributed by Nokia, NTT DOCOMO, and Sony Ericsson, including the S60 and MOAP(S) user interfaces. Portions of the platform's source code have already been moved to open source, under the Eclipse Public License. By mid-2010 this process will be complete, making the platform code available to all for free. Close to 300 million Symbian OS-based units have been shipped and Symbian holds more than a 50% market share globally. |
Android | Recently announced by the Open Handset Alliance, whose 34 members include Google, HTC, Motorola, Qualcomm, and T-Mobile, Android is a new Linux-based platform. Although it has only 2 fielded implementations, its support by 34 major software, hardware and telecoms companies makes it likely that the pace of adoption will increase. The Linux kernel is used as a hardware abstraction layer (HAL). Application programming is exclusively done in Java. You need the Android specific Java SDK. Besides the Android Java Libraries it is possible to use normal Java IDEs. |
BlackBerry | supports push e-mail, mobile telephone, text messaging, internet faxing, web browsing and other wireless information services as well as a multi-touch interface. It has a built-in QWERTY keyboard, optimized for "thumbing", the use of only the thumbs to type. The BlackBerry devices soon took a dominating position on
the north-American smartphone market. Also important for BlackBerry are the BES (Black Berry Enterprise Server) and the Mobile Data System (BlackBerry MDS). |
iPhone | The iPhone and iPod Touch SDK uses Objective C, based on the C programming language. Currently, is only available on Mac OS X 10.5 and is the only way to write an iPhone application. All applications must be cleared by Apple before being hosted on the AppStore, the sole distribution channel for iPhone and iPod touch applications. However, non-Apple approved applications can be released to jailbroken iPhones via Cydia or Installer. |
Lazarus | Ideal for prototyping and quickly developing database powered applications. Also useful for porting Object Pascal software to mobiles. Can access the native APIs when translated headers are available. |
Python | Ideal for initial prototyping and concept testing when functionality falls outside Java ME. |
.NET Compact Framework | Ideal for deployment on Pocket PC / Windows Mobile devices. While primarily still limited to Microsoft Windows Mobile devices, it is now being extended to Android devices as well via Mono. There have also been discussions about extending Mono to other mobile platforms, but nothing has happened to date. |
BREW | Ideal for deploying applications for deployment on CDMA-based networks (also supports GPRS/GSM models) with a deployed Brew Content Platform especially if OTA app deployment is desired. Little penetration in Europe. |
Pocket PC and Microsoft Smartphone | Ideal for enterprise applications with an existing PC infrastructure and options for significant development investment. However not cross platform and limited to Microsoft devices. |
Palm OS | Significant player with strong enterprise following in the important US market. |
Flash Lite | Ideal for Graphics-heavy options with a market that can support the Flash Lite player. |
Microbrowser Based | Ideal for lightweight functionality, a web-interface for an existing application with no latency concerns, or a widely varying platform base |
Application development
Foundation | Learning Curve | Debuggers available | Emulator available | Integrated Development Environment available | Cross-Platform Deployment | Installer Packaging Options | Development Tool Cost | |
---|---|---|---|---|---|---|---|---|
Symbian | C++ | Difficult (unusual C++ APIs, poor debugger support, and Symbian 9 breaks binary compatibility) | Good on latest version. | Free Emulator | Many choices | Compile per target | SIS deployment | Varies (free tools available) |
Java ME | Java | Average | Excellent | Free Emulator, Sun Java Wireless Toolkit, mpowerplayer | Eclipse,LMA NetBeans Mobility Pack | Average (many VM implementations have device specific bugs necessitating separate builds) | Jad/Jar packaging; PRC files under Palm OS | Free |
Android | Java | unknown | Debugger integrated in Eclipse, Standalone debugging monitor also available | Free Emulator | Eclipse, Undroid (Plugin for Netbeans) | Android only, because of Dalvik VM (march 09) | apk | Free |
BlackBerry | Java | Average | Debugger integrated in JDE | Free Emulator | JDE - BlackBerry Java Development Environment | BlackBerry only because of the RIM API | alx, cod | Free |
iPhone | Objective-C | Excellent | Integrated in the IDE | Bundled with IDE | XCode | only iPhone and iPod Touch | only via the App Store | SDK is free, but requires an Intel-based Mac. $99/year for developer signing key. |
Lazarus | Object Pascal | Excellent | Average. Can debug on the IDE via ActiveSync for Windows CE | Uses the emulators of the platforms | Lazarus IDE, including integrated GUI designer and debugger | Compiled language available for Windows CE, linux-based devices and a SymbianOS port is under development. | The native distribution format of each platform | Free |
Python | Python | Excellent | Average | Add-on to Nokia Emulator | Several, including plugins for Eclipse | Interpreted language available natively only on Nokia Series60 (and desktops) though there are ports to other mobile platforms, including PalmOS | Sis deployment with py2sis or can use Python Runtime | Free |
Flash Lite | ActionScript | Average | Good | Bundled with IDE | Macromedia Flash MX2004/8 / Eclipse | Excellent (Bundled - Top 5 mobile manufacturers, limited handset model support as of 3/06, best web compatibility) | SIS / CAB deployment or OTA/IR/Bluetooth SWF files | Varies (Free but limited with MTASC) |
.NET Compact Framework | C#, VB.NET, Basic4ppc | Excellent | Excellent | Free emulator (source code available), also bundled with IDE | Visual Studio 2008, 2005, 2003, Basic4ppc IDE | Windows Mobile, WindowsCE, Symbian-based devices (via third party tools) | OTA deployment, CAB files, ActiveSync | Most tools free (but commercial editions of Visual Studio required for visual designers) |
Microbrowser Based | XHTML (WAP 2.0), WML (WAP 1.2) | Varies by Server-side scripting language | Good | Many | Many | Basic Page rendering is very excellent. However per page customizations and tweaks are invariably required across different browsers. | N/A | Free |
Rhomobile | Ruby with HTML interface features compiled through an interpreter into native applications. | Excellent (in particular for Ruby developers) | Good | N/A, applications can run in Win32 runner, or in device emulators for supported platforms. | xCode or Eclipse, on-demand RhoHub version includes full IDE | Excellent (Supports iPhone (inc. 3.0), Windows Mobile, Blackberry, Symbian and Android) | OTA deployment, iPhone through App store, .SIS, .CAB, .APK, .COD | Free for GPL, Commercial Licenses Available. Subscription for RhoHub |
Blueprint (programming language) | XML routed through Yahoo Mobile servers and displayed in native browsers | Excellent (short list of allowed XML) | None beyond a schema check | N/A, translates to web or mobile as needed | N/A, any XML editor | N/A, translates to web or mobile as needed | Combined config upload at Yahoo with self-hosted dynamic XML | Any XML editor |
BREW | C (the APIs are provided in C with a C++ style interface) | Difficult (but easier, and less featureful, than Symbian) | Debugger support for the native ARM target code now available via ARM RVDS 3.0. ($6k) Can use Visual Studio to debug the x86 testing code. | No Emulator for the target ARM code, has a simulator for the x86 testing code. | Visual Studio 6.0, Visual Studio 2003 .net, Visual Studio 2005 | Compile for the specific BREW version available on the handset. | OTA | Related Dev Fees Typically Required for Brew App Certification - VeriSign annual fee for becoming a certified developer. Realview ARM compiler for BREW (The free GNU C/C++ is also available, but with limited function and support). TRUE BREW testing fee for distributing the application. |
Pocket PC | C, C++ | Average (excellent for Win32 developers) | Excellent | Free emulator (source code available), also bundled with IDE | Visual Studio 2008, 2005, eMbedded VC++ (free) | Windows Mobile, WindowsCE | OTA deployment, CAB files, ActiveSync | Free command-line tools or eMbedded VC++, or Visual Studio (Standard edition or better) |
Pocket PC | Basic4ppc | Excellent | Average | Average. Emulates interface on windows forms. | Basic4ppc IDE | Windows Mobile, WindowsCE | OTA deployment, CAB files, ActiveSync | Commercial tool required. |
Palm OS | C, C++, Pascal | Excellent | Average | OS 1.0 - 4.1: Free Emulator provided by PalmSource (Access); OS 5.0: - 5.4 Device-specific Simulators provided by Palm (palmOne) | Palm OS Development System (Eclipse), CodeWarrior, PocketStudio | Palm OS handhelds, or Windows Mobile with StyleTap emulator | PRC Files, PalmSource Installer (.psi) | Free (POSE or GCC for Palm OS), or commercial (CodeWarrior), or various commercial rapid-development frameworks |
Capabilities
Symbian | Java ME | Lazarus | Python | Flash Lite | .Net Compact | Microbrowser Based | Blueprint (programming language) | Rhomobile | BREW | Pocket PC | Palm OS | Android | iPhone | BlackBerry | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Graphical Interface | 2D, 3D Graphics (newer phones), Many Widgets, Visual Form-Based GUI Builder | 2D, 3D graphics (M3G or OpenGL ES), Many widgets, Visual Form-Based GUI Builder | 2D graphics, Many widgets, Visual Form-Based GUI Builder | 2D Graphics access, some simple widgets | 2D graphics, Many widgets | 2D, 3D graphics, many widgets, visual form-based GUI builder | Basic XHTML-forms (applies to XHTML-MP, CHTML browsers). Basic forms for WML 1.1 (WAP 1.1). | 2D Graphics access, some simple widgets | 2D graphics, 3D graphics (not available on all phones), limited widgets, no visual form-based GUI builder. uiOne (not available on most phones in the market) | 2D, 3D graphics, many widgets, limited visual GUI builder (dialogs only) | 2D, 3D Graphics, Many Widgets, Visual GUI builder | 2D, 3D (OpenGL ES) Graphics, Some Widgets, Third-Party GUI Builder | 2D, 3D (OpenGL ES) Graphics, Simplified 2D animation (Core Animation), many widgets, video, Interface Builder | 2D Graphics , SVG support (Plazmic Media Engine) | |
Functionality | No restrictions | Varies by handset - dependent on available included JSR's. No high-resolution pictures, Cell ID available on some phones), limited file access | No restrictions as long as translated headers are available | Partial through API: High resolution pictures, Cell ID | Partial through API | Limited audio access | Isolated to browser | Browser + Yahoo helpers (TBD: Yahoo Go Native access) | Partial through API | Powerful API access; specifics may vary slightly due to Operator application certification restrictions | No restrictions | No restrictions | Partial through API, Theoretically, no restrictions since all source is available. | Partial through API; apps are sandboxed on disk and cannot run in the background | Partial through API |
Phone Data Access | Full | Varies by handset - dependent on available JSR 75, the PDA Optional Packages. | Full, but also requires using the native API | Partial through API: Calendar, Contact List | None | Full | None | None | Full | Full | Full | Full | Full | Partial through API: Contacts, media library, photos | Full |
Runtime Speed | Best (Compiled language) | Average due to Java bytecode | Best (Compiled language) | Below Average due to Interpreted language | Below Average due to Interpreted language | Average | Average | Average | Average | Best (Compiled language) | Best (Compiled language) | Best (Compiled language) | Average due to Java bytecode | Best (Compiled language) | Average due to Java bytecode |
Crippled Providers | None known | None known | None known | None known | Not usually - Dependent on operator | None known | Dependent on data access plan | Dependent on data access plan | None known | Need a handset & application specific signature to run any application on a retail phone. Test signatures only work on phones with BREW debug mode enabled. | None known | None known | None known | No carrier crippling, but apps must be signed by Apple to run on any phone. Developers can designate up to 100 test phones. | Need a signature to run any application which uses the "net.rim.api" on a real phone. |
Breadth
Symbian | Java ME | Android | Lazarus | Python | Flash Lite | .Net Compact | Microbrowser Based | Blueprint (programming language) | Rhomobile | BREW | Pocket PC | Palm OS | iPhone | BlackBerry | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Developer Community and Support | Extensive | Extensive | Recent, growing | Recent, growing | Recent, growing | Extensive | MSDN | Extensive | Small yahoo forum only | Recent, growing | Limited at http://brewforums.qualcomm.com | MSDN | Extensive | Extensive but often inexperienced | Recent, growing |
Market penetration | Deployed on a large number of high end devices, including handsets by Nokia, Fujitsu, Mitsubishi and Sony Ericsson amongst others. | Extensive (also the basis of the Danger Sidekick Platform) | Growing | Average | Average | Average | Average | Extensive | Same as Microbrowser | Growing | High in Japan (KDDI). Was deployed via KTF in Korea, though Korea is now promoting its own hybrid BREW/JAVA-like technology "WIPI". Average in the U.S. (Verizon) and low in other countries, though there is growing presence in South America and China. | Extensive within Europe and a growing market within the US. | Fifth largest player in Smartphone market after Symbian, Blackberry, iPhone and Windows Mobile. | Phone's popularity varies by country (very popular in US, moderately so internationally); 75% of users use third party apps[1] | One of the largest player in Smartphone market. |
Distribution and Licensing | SymbianSigned for 3rd Edition (OS 9?) | None (Java Signed?) | Unknown | None | None | None | Unknown | None | None - Server Based Code | Unknown | Obtain Class ID from Qualcomm | Unknown | Unknown | Requires Apple-issued certificate, but no carrier negotiations | Code Signing |
Functional Capabilities
The abilities of any specific language or platform is one of the primary drivers when choosing a mobile development direction.
iPhone Native Application | iPhone Web Application | Android (operating system) | Palm Pre WebOS | |
---|---|---|---|---|
Development Considerations | ||||
Drawing and Animation | 2D and 3D accelerated drawing | Rendering using HTML5 and Canvas[2] element | ||
Data Storage | Protected file storage | Cookies and sqlite[3] | ||
Application Restrictions or Approval | Requires Apple App Store Approval | None Required | ||
Data Caching | Applications more than 10MB require loading over WiFi or iTunes Synch | Application caching controls [4] | ||
Prototype Frameworks | Unknown | Mobile Safari supported by Yahoo! UI Library | ||
Augmented Reality | ||||
Location Awareness | Permission-Based location support (Cell, WiFi, GPS) | Permission-Based HTML5 JavaScript location support (Cell, WiFi, GPS) | ||
See (Photos/Video) | Full access to hardware | None | ||
Hear (Audio Upload and Microphone) | Full access to hardware | None | ||
Feel (Accelerometer) | Full access to hardware | None | ||
Stay On (Turn off phone locking and background processing) | Suspend sleep, no background tasks | None | Unknown | Background process support[5] |
Keep Updated (Push Notification) | Register for Push notifications | None | ||
Integrate (interact with device Calendar or Contact-list) | Full access to device's data | None | ||
Communicate (P2P support over Bluetooth or network) | Full access to Bluetooth or network | None | ||
In-the-wild examples of Augmented Reality | 3+[6] | ? | ? | ? |
Evaluation criteria
- Any undetermined cells are marked "undetermined" to indicate a request for help from someone with the appropriate knowledge.
- Learning Curve is an approximation of how difficult it 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
- 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
See also
- Symbian
- Windows Mobile
- Android
- Java ME
- BREW
- Mobile Device Testing
- Mobile software
- Mobile Marketing
- Smarter Agent
- WAP
- WURFL and WALL
- Adobe Flash Lite
- MobiAccess
- Rhomobile
- TagsMe
- Omnis Studio
- ItsNat
- BlackBerry
References
- ^ http://blog.nielsen.com/nielsenwire/online_mobile/iphone-users-watch-more-video-and-are-older-than-you-think/
- ^ Making Graphics with iPhone's Canvas
- ^ HTML5 Web Storage Standard (sqlite)
- ^ Web Application Specifications
- ^ WebOSdev - background processing
- ^ Three iPhone Augmented Reality Applications
External links
![](http://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)
![]() | This article's use of external links may not follow Wikipedia's policies or guidelines. (September 2009) |