By Simon Williams
Simon Bisson unravels the world of the mobile device and the various platforms available to users and developers.
HardCopy Issue: 43 | Found In: Business, Development | Published: 01/02/2009 | Last Revision: 06/07/2010
The latest generation of mobile devices feature fast processors, plenty of memory and high quality screens, making them ideal for many business applications. However, while the desktop and server worlds have consolidated around three main platforms (Windows, Mac OS X and UNIX) with .NET and Java as the two main development platforms, the mobile world remains fragmented – and has recently been made more complex by the arrival of two major new players.
Microsoft Windows Mobile
Microsoft’s Visual Studio development environment includes a desktop emulator that allows you to see exactly what your application is going to look like and how it’s going to run.
Microsoft’s mobile platform mixes a suite of Office applications - including push email - with native and managed development tools. The underlying Windows Mobile operating system comes in three variants: one suitable for traditional PDAs, a standard version for keypad-driven smartphones, and a professional edition for pen and touch controlled devices (often with full QWERTY keyboards).
Windows Mobile is a familiar environment for Windows developers as it offers many of the standard Windows APIs and is supported by Microsoft’s Visual Studio development environment. The .NET Mobile Framework allows rapid application development using C# and Visual Basic managed code, and the run time is bundled with the latest versions of Windows Mobile. Applications can be tested using a PC-based device emulator and deployed using the desktop ActiveSync tools or over-the-air as CAB files.
Application data can be stored locally thanks to SQL Server Mobile Edition which means that remote users can work offline and synchronise data with the server when a network connection becomes available. One area where Windows Mobile lags much of its competition is in its browser, although an update that uses a browser based on Internet Explorer 6 is available for device manufacturers.
Initially a closed platform, a major operating system upgrade in 2008 opened the iPhone up to developers. Apple initially encouraged developers to take advantage of the iPhone’s desktop-quality browser and large screen, as well as proprietary HTML tags that allowed some integration with the hardware and with built-in applications. The 2.0 software upgrade also introduced push email from Microsoft Exchange email servers.
Applications for the iPhone are developed using Apple’s XCode IDE and are cross compiled to the device’s ARM processor. A desktop emulator allows applications to be tested before deployment, and registered developers are able to deploy test versions to a limited number of devices. Applications can be sold through Apple’s own App Store, though this requires paying a nominal fee for access plus a 30 per cent transaction fee on all purchases. Enterprises can use Apple’s desktop administration tools to deliver their own applications without having to go through the consumer store.
The initial device was only capable of EDGE connections. However the second generation iPhone 3G adds location services and GPS to the platform, along with a 3G data connection. One issue facing developers is the lack of true multi-tasking, though Apple provides a workaround in the shape of a session management API. A cloud-based synchronisation service is promised to enable applications to run in parallel with cloud services, enabling messages to be cached for delivery while devices are offline or users are working with other applications.
It was RIM’s BlackBerry that introduced the world to the concept of always-on push email. The heart of the platform is a secure connection between the device and a server through RIM’s own network operating centres. The server manages mail, connecting to your mail servers and pushing new items to mobile devices. Consumers and small businesses can use RIM’s own servers, but these offer fewer features than BlackBerry Enterprise Server (BES). Businesses using BES, for example, can push policies to devices, controlling how they are used.
The latest hardware include multimedia features and a new Web browser. These allow them to work with AJAX Web applications, and to render full screen Web pages.
Sun Java ME
One thing that links most smartphones is support for Java. Sun’s Java Micro Edition is an open source runtime environment that supports a subset of the desktop Java SDK, along with a selection of mobile specific APIs. There are Java ME runtimes for Symbian, Windows Mobile, PalmOS and RIM’s BlackBerry, though the actual capabilities differ between implementations.
There are a large number of Java applications for mobile devices, covering the spectrum from games to business applications. It’s easy to develop your own applications too as Sun’s NetBeans includes mobile development tools, and there are mobile features built into the popular Eclipse platform.
The newest entrant in the mobile platform space, Google’s Android is a Java-based platform with an open source foundation. It offers links to Google’s own online services and includes a mapping tool based on the popular Google Maps service that can be used in conjunction with GPS and a phone’s accelerometer as a digital compass, overlaying mapping information on the real world. There’s limited connectivity with enterprise email at present, although there’s support for businesses that use the Google Apps services.
Android applications are developed using a dialect of Java and get considerable access to the phone hardware through a wide range of APIs. Google currently provides an Eclipse-based development environment that allows applications to be developed and tested on the desktop through a range of device simulators. Applications can be distributed from any Web site, over the air, although Google does provide a central clearing house along with application management tools. A high quality WebKit-based browser gives access to most AJAX-based Web sites, and a version of Flash has been demonstrated.
Android is a very new platform which means it is likely to change considerably over the next couple of years.
Symbian’s mobile ancestry takes it back to the Psion Series 3 and EPOC. It’s a well designed and extremely capable platform with a wide range of features that help developers get to grips with the latest hardware. The Symbian platform supports many email services (Nokia includes ActiveSync capabilities on its high end devices) and works across a wide range of devices.
Applications are developed using a non-standard dialect of C++ and developers need to work with specific user interface SDKs, such as S60 or UIQ. Most development takes place in Carbide.c++, a free Eclipse-based IDE from Nokia, although runtimes exist for many popular dynamic languages and there is support for J2ME. Applications need to be signed before they can access hardware or network functions, and there is a programme called Symbian Signed which supports this.
Nokia has recently announced that it will be using the Symbian Foundation to take the operating system open source in 2009. The latest versions also support the open source WebKit browser framework used by Apple’s iPhone and Google’s Android.
Palm’s operating system is one of the oldest mobile platforms around and is a direct descendent of the version that shipped with the original Palm Pilot. Applications run in a single tasking environment and use a handwriting-based input system or a tap keyboard.
The applications that ship with Palm OS include email and contact tools, as well as a sophisticated agenda planner. These can sync with most common desktop PIMs, including Lotus Notes and Microsoft Outlook, using a desktop synchronisation tool. There is push mail for mobile devices from third parties. Palm OS includes a TCP/IP networking stack and a basic Web browser.
The current Palm platform is dated, and Palm itself has been working on a new operating system for some time which is expected to launch in early 2009.
It’s hard to pin down mobile Linux distributions as there are several and they compete for development resource. One project, Openmoko, has developed reference hardware in the shape of the FreeRunner phone which is used for its own Linux-based operating system and for other projects, including a QT-based operating system originally developed by TrollTech.
Much mobile Linux work now targets the Mobile Internet Device where higher-powered hardware mean that a near-full Linux experience can be offered.