Rethinking application environments

Andreas Constantinou 7,436 views
Vote This Post DownVote This Post Up +1 rating
 
Loading ... Loading ...

Handset software is a fascinating topic in the mobile industry, albeit one that is often misunderstood. Application environments like Java, Flash Lite and Qtopia open the world of handset software to developers and allow the handset GUI to be customised. Here I introduce a new taxonomy for application enviroments and explain why seemingly distinct technologies like S60, Widsets, Maemo, Qtopia and Openwave MIDAS are essentially part of the same landscape.

[Note: I have updated this article in response to much feedback and comments (thanks Nick, Philippe and Malcolm). Thanks also to Judy Breck maintainer of the Carnival of the Mobilists for selecting this article as post of the week.]

Today there are 10s of different tools technologies for opening up handset software to developers and generally those who want to customise the handset GUI in some shape or form. These range from skins designers, to games developers, to operators who want to create a ’signature’ look & feel spanning the entire user interface. I would argue that application environments include not only Java, as well as environments for creating skins, desktop UIs (a.k.a. idle screens) and core applications (dialler, menu system, email, messaging applications, etc which are entirely different to downloadable applications).

Contrary to popular understanding, openness is not an exclusive privilege of open operating systems (OSes) as I argued in a previous research paper. A range of technologies exist to ‘open’ access to the handset software internals, and can be divided in two categories: external and internal application environments.

The distinction between external and internal environments is down to several variables: level of functionality exposed to an application, who can access that functionality (certified apps only?), depth of integration (e.g. can you replace core apps such as the dialler and contacts application), when an application can be installed (at the point of manufacture, before the point of sale, or after the point of sale) and who can install the application.

1. External application environments, i.e. those which allow application development and handset customisation after the software has been embedded in the handset ROM. These are generally accessible to external developers, scripters and designers. Examples are:
- Nokia’s S60, SonyEricsson’s UIQ, Microsoft’s Windows Mobile and Qualcomm’s BREW, which are advanced platforms. These can also be viewed as external application environments, in that they offer a rich set of APIs for application development and deployment post-load, in other words environments designed for developing downloadable but not core applications. For example companies like DreamSpring have created good contacts replacement applications for UIQ and S60. However such applications are not a complete replacement for core apps (such as the contacts app) since the can only hide the built-in app, and they are not able to access sensitive APIs such as the voice-dialling API as this is hidden by the handset manufacturer. See my comment on this post for further analysis on why S60/UIQ etc are designed as external and not internal app environments.
- Open C (POSIX APIs on top of Symbian), which are C/C++ APIs aimed for use by application developers
- Java 2 ME (in its myriad forms and extensions), Python for S60, .NET Compact Framework and AppForge, a range of application environments for developers or scripters
- Adobe’s Flash Lite aimed at scripters and designers developing graphics-intensive apps.
- S60 ActiveIdle, Windows Mobile homescreen framework and Nokia’s Widsets, a range of technologies for allowing developers to customise the UI desktop (aka idle screen)
- Nokia’s Carbide.UI theme edition tool for deep skinning of the handset GUI

2. Internal application environments, i.e. those which allow application development and handset customisation before the software has been embedded in handset ROM (and in certain cases during the handset lifetime, too). These are accessible to handset manufacturers, network operators and handset distributors. Examples are:
- Openwave MIDAS, a ‘deep’ scripting environment for creating operator-customised applications
- SVG players from Ikivo and BitFlash for developing graphics-rich, interactive applications such as Vodafone’s Live! Cast.
- TAT’s Cascades, Digital Airways’ Kaleido and Mentor Graphics’ Inflexion (previously NextDevice), which are rapid prototyping tools software frameworks for rapidly creating custom end-to-end user interfaces (i.e. the entire suite of core applications) from scratch.
- e-SIM (now part of SKY Mobile Media) and Comneon’s APOXI, which are development tools for building suites of core applications (albeit tools which are more aimed towards engineers than designers).
- Trolltech’s Qtopia, Maemo’s Hildon port, ALP’s Hiker, OpenMoko’s application framework, TTPCom’s Ajar and Windows CE app framework, which are sets of C/C++ APIs for creating core applications and managing application communication and lifecycle.

In the next diagram I attempt to classify the above application environments in terms of the extent of customisation which they permit and the time at which they can be applied.

The x-axes show, the time of customisation is directly related to the barriers to customisation; internal application environments are mostly accessible to the manufacturers and partners, whereas external application environments are accessible to all. Note that the chart is quite extensive but it is still work in progress.

The y-axis shows that there are four broad types of customisation that can be applied via application environments:
- change of themes and skins across the handset (e.g. Carbide UI theme edition)
- development and deployment of downloadable applications (using e.g. S60, UIQ, Windows Mobile, BREW)
- replacement of a core application (e.g. replacing the idle screen or contacts app)
- core application re-design (redesigning the entire user interface from scratch)
Taxonomy of application environments

This landscape map is very revealing, but still it doesn’t do enough justice to highlight some important parameters of application environments: the cost of customisation, the part of the software stack which a technology provides, and the target addressable market in terms of breadth of device models. Another important parameter is why customisation is applied: this can be to re-enforce branding (and retain customers) or to provide easier discovery of, and access to, new services by operators and third parties.

A couple of noteworthy remarks on the map:
- Flash Lite is moving from an application environment for downloadable, graphics-intensive apps, to an environment for creating other core applications such as the idle screen and the dialler (see the Samsung D900 implementation for example).
- Java is also moving towards enabling development of desktop UIs (aka idle screens) and some core apps, thanks to the capabilities introduced in MIDP3.

So what are the trends in application environments? On one hand all ecosystem players, from operators to manufacturers and beyond are striving to reduce the high time-to-market impact of pre-launch customisation. At the same time, external application environments do not reach as far as core applications (desktop UI, dialler, menus, email/calendar/contacts applications, camera application, etc), due to the lack of modular design of most operating systems today (including Symbian/S60 and Windows Mobile, the so-called ‘open’ OSes).

Therefore, a number of technologies are being introduced to bring much-needed modularity within application environments, both pre- and post-launch. These range from rapid application creation tools from TAT, Digital Airways and Mentor Graphics, to Open Plug’s FlexibleWare modular software development framework and Red Bend’s Embedded Feature Delivery technology. These technologies will be impacting not only handset development practices, but also making an impact to the consumer market. Within the next year we should hopefully be seeing many more examples of unique GUIs such as Vodafone’s Simply range and B&O’s Serene handset.

Thoughts ?

14Mar2007
Malcolm Lithgow

I would disagree very strongly with the positioning of S60 and Windows Mobile on the graph. These environments are exactly the same as those used to develop the core apps “pre-load”, and are quite capable of creating apps that replace the built-in software to a very significant extent.

So they should both be down on the same level as Maemo (since both even allow device drivers, etc. to be written).

That is the fundamental difference between these environments and, for example, Java on most phones.

 
21Mar
Andreas Constantinou

Malcolm,

You raise a very interesting point: Given that S60 and Windows Mobile can be used to develop core apps ‘pre-load’, they are targeted to OEMs/ODMs as much as external developers and should therefore be positioned where Maemo is on the chart.

I ‘ve given this some thought, and here’s my conclusions. I believe you are right to an extent. To get to the bottom of this I believe we have to consider the commercial intention and the technical capabilities of S60 and WM before categorising them as pre-load or post-load.
- Technically, WM for example has features designed for OEMs/ODMs, and other features designed for external developers. WM affords the developer with low-level functionality (although I would question if you can develop device drivers for most peripherals without add-on source code). S60 and WM also allow you to develop most core apps (e.g. Idle screen, PIM apps, browser shell, etc).
- Commercially, neither WM, nor S60 are designed to allow you to replace core apps, to avoid brand dilusion and control of the user experience (at least across most of the user journey). There are subtle but important obstacles in replacing some of these core apps. I understand that a developer needs access to hidden ABIs (binary interfaces) in order to develop an effective idle screen replacement for example. The UI flows from other apps are mostly locked and therefore whereas you could develop say an email app, it is not either a) the app that you get when you hit the ‘email’ menu, and b) it cannot be linked with other core apps in terms of the user interaction flows in and out of the email app. Windows CE and Symbian on the contrary, are *designed* to offer you that flexibility, and I would position Windows CE near Maemo.

Conclusively, whereas technically S60 and Windows Mobile CAN be used to develop core apps, commercially they are not designed to. This is why manufacturers are given access to source code for S60 and Windows Mobile to develop phones, whereas external developers aren’t.

Which is where the major difference with e.g. Maemo lies. Maemo can be used to build phones (if you develop the app suite on top). With Maemo you have access to all of the code (at least the vast majority which is released under open source license). Commercially and technically, Maemo is designed to allow third parties (developers or OEMs) to build phones.

Hope this makes sense – but I would always welcome a counter-argument :)

Andreas

 
21Mar