logo
LinkedIn

Mobile Application Development

Mobile application development is a process for developing applications on handheld devices such as personal digital assistants, enterprise digital assistants or mobile phones. These applications are either pre-installed on phones during manufacture or downloaded by customers from app stores and other mobile software distribution platforms. 

Development Platform Choice

There are many platforms that a developer can choose for their applications. Each of these are mostly mutually incompatible (that is, an application developed on one platform will not run on another) and furthermore each handheld device only supports one particular platform.

Therefore to maximize the reach and revenue for their applications, a developer must decide carefully which platforms they will support.

Since the first handheld computers of the 1980s, the popularity of these platforms has risen considerably. Many cell phone models of the late 2000’s include the ability to run user-installed software.

Platforms which support devices from multiple manufacturers

  • Java ME This platform generally produces portable applications. Although sometimes device-specific libraries exist (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 use APIs such as the file system access API. This is relatively expensive and is rarely done, even for commercial applications. Java ME runs atop a Virtual Machine (called the KVM) which allows reasonable, but not complete, access to the functionality of the underlying phone. The JSR process serves to incrementally increase the functionality that can be made available toJava ME, while also providing Carriers and OEMs the ability to prevent access, or limit access to provisioned software.
  • Symbian platform 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 minimizing memory usage. TheSymbian 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. The platform is fully open source, mostly supplied under the Eclipse Public License. Over 300 million Symbian OS-based units have been shipped and Symbian holds more than a 50% market share globally.
  • Android Android is a Linux-based platform from the Open Handset Alliance, whose 34 members include Google, HTC, Motorola, Qualcomm, and T-Mobile. It is supported by over 34 major software, hardware and telecoms companies. The Linux kernel is used as a hardware abstraction layer (HAL). Application programming is exclusively done in Java. The Android specific Java SDK is required for development although any JavaIDE may be used.
  • .NET Compact Framework Used primarily for applications on Pocket PC/Windows Mobile devices, although it is now being extended to Android devices.
  • BREW Used for deploying applications on CDMA devices (but also supports GPRS/GSM models). Distributed via a Brew Content Platform. Little penetration in Europe. BREW can provide complete control of the handset and access to all its functionality. However the power provided bynative code with direct access to the handset APIs, has caused the BREW development process to be tailored largely towards recognized software vendors. While the BREW SDK (Software Development Kit) is freely available, running software on real mobile hardware (as opposed to the provided emulator) requires a digital signature which can only be generated with tools issued by a handful of parties, namely mobile content providers andQualcomm themselves. Even then, the software will only work on test enabled devices. To be downloadable on regular phones the software must be checked, tested and given approval by Qualcomm via their TRUE BREW Testing program.
  • Windows Mobile
  • Palm OS Strong enterprise following in the important US market.
  • Flash Lite Used for devices that support the Flash Lite player.
  • Microbrowser based. Lightweight functionality provided via a web-interface

Platforms for a single manufacturer's devices

  • 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 OS 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.

Execution environments

Windows Mobile, Palm OS, Symbian OS and iPhone OS support typical application binaries as found on personal computers with code which executes in the native machine format of the processor (theARM architecture is used on many current models). Windows Mobile also supports the Portable Executable (PE) format associated with the .NET Framework. Both Windows Mobile, Palm OS and iPhone OS offer free SDKs and Integrated Development Environments to developers. Machine language executables offer considerable performance advantages over Java.