EMCC Software
Wednesday, 25 January 2006
This article from EMCC Software will focus on the UI framework enhancements of
UIQ 3 and provide an overview of the other components of the platform.UIQ version 3.0 was announced in October last year at the Symbian Smartphone
Show, the same day as Sony Ericsson unveiled the P990, the first phone to be announced
for the new platform. With this offering UIQ Technology now present phone manufacturers
with a platform that goes beyond the customary devices with touch screen only
input, and which gives developers the possibility of supporting a variety of phone
style configurations from a single codeline. The most important changes are the
improvements in the application UI framework, and the transition to Symbian OS
9.1, upon which UIQ 3 is based, which entail new APIs and concepts.
UI Configurations
UI configurations comprise a set of parameters that define the look and feel
of a phone. UIQ Technology provide five pre-defined configurations, having optimised
their own application suite for the two reference configurations.
As we can see from the table below, the main additions to the UI are the support
for devices without a touchscreen and the addition of softkey support. Softkeys
are onscreen representations of commands mapped to hardware keys and a familiar
feature of phone UIs.

Applications can be optimised for the different configurations in their resource
file so that the UI can be tailored to the particular features of the UI, reconfiguring
the available views and commands as appropriate. Commonly used menu items of a
pen style UI could be mapped to the softkeys of a UI with no touch screen, for
example.
Phone manufacturers also have the option of adding their own UI configurations
or changing the attribute values of a phone configuration. Its worth bearing
in mind that a particular phone can support more than one configuration. For example,
the P990 has a number pad that can be flipped up or down to switch between the
Softkey and Pen Style configurations.
Commands
UIQ 3 introduces the concept of a command, which is basically a more abstract
way of describing a UI representation of an action that the user can perform,
without tying that action to a particular control type, like a menu item or button.
Thats not to say that the programmer has no control over where a command is placed
in the UI, as each configuration has rules that specify how the commands are distributed
amongst the operators, as softkeys, menus etc. are now known. Rather, this concept
enables the handling of user interactions by the Command Processing Framework
(CPF) and their implementation by the application programmer to take place in
a more generic way.
The control over the location is where UIQ Technologys concept of a command
differs from MIDPs, whose commands are mapped to particular types of action,
and it allows for the optimisation of applications for particular UI configurations.
So how does it work? Commands are typically defined in application resource
files. When an application receives focus, the command manager populates its
command list with these commands and distributes them to the appropriate operators.
The command list can then be updated depending on which controls have focus -
for example, the edit options associated with a text-input field could be appended
to, or completely overwrite, a menu. When an operator invokes a command, it is
handled by a receiver in the application, which is normally the view.
The process is highly configurable. Command lists can be dynamically altered
in code and the distribution of commands can be customised so that, for example,
commands can be duplicated on softkeys and menus. In addition, applications can
have their own custom operators to consume commands if they dont want them placed
on the softkeys or menus.
Layout
UIQ Technology aims to standardise the appearance of applications to a greater
extent with the introduction of system building blocks, which manage the layout
of compound controls. As the name suggests, the application view can then be constructed
from building blocks.
Building blocks are, in fact, controls themselves, and have a number of slots
into which other controls can be added. They have their own internal layout manager
that controls the alignment of the different components of the building block
for the current UI configuration. This layout is then updated automatically by
the layout manager in response to changes in UI configuration, such as when a
P990 user opens or closes the flip. Attributes of the building block, such as
alignment and margins, can be configured as required.
The use of system building blocks facilitates a consistent look and feel amongst
applications on the platform, as well as providing predictable sizes of controls,
which is useful when translating the strings used in an application into different
languages. It is possible to create custom building blocks, but their use is
discouraged, as the automatic support for different UI configurations is lost.
This support needs to be implemented for at least the pre-defined configurations
if an application that utilises custom building blocks is to provide a consistent
user experience, no matter the device that its running on.
The application view will have a container that houses the component controls,
such as building blocks. The layout of the control containers can be configured
in the resource file, both of the container as a whole and its individual components.
Control collections can be utilised to specify control attributes in a single
location, thus avoiding duplication in the resource file.
When an application is run, a control provider uses control factories to construct
the controls defined in the resource file to populate the view; so, when creating
custom controls, a control factory will need to be implemented to construct them.
You can elect to take full control of construction or just create the control
from the resource file. Further, theres the option to override view construction
and layout methods and customise resource file structures to support dynamically
created controls.
Application Suite
The UIQ Platform includes an Application Suite. UIQ 3 sees the addition of some
new features, and the introduction of Symbian OS 9.1 brings with it some changes
to the application engines.
Messaging now incorporates meeting invitation support so that meeting requests
can be sent via email and implemented by 3rd parties that plug into the Messaging
Architecture to provide support for additional message types, such as push email
from various vendors. The introduction of data caging, which is a mechanism for
applications to have their own secure data store, has seen some minor changes
to attachment handling.
Agenda now has a new application engine associated with it featuring timezone
support, and Contacts now has a Shared UI that is accessible from other applications
to display contact information. Instant Messaging clients can also be integrated
into Contacts with the addition of the Instant Messaging Integration API.
Customisation
UIQ Technology is keen to stress the configurable nature of its platform, and
the extent to which both phone manufacturers and operators are free to be able
to customise it. Licensees have always been able to extend the platform to the
requirements of their devices, but the addition of the Operator Configuration
Package means that application icons, themes, animations and sounds can now be
configured over-the-air, with the UI of devices configurable to larger degree
than before.
Accompanying the launch of the platform, UIQ Technology announced the UIQ Developer
Program to move the overhead of developer support away from the phone manufacturer.
Licensees will still be responsible for the support for any extensions that they
add, but the main port of call for developers on UIQ 3 and beyond will be the
UIQ Developer Web Portal
More information
UIQ
http://www.uiq.com/uiq
UIQ Developer Web Portal
http://developer.uiq.com/
Sony Ericsson P990
http://www.sonyericsson.com/spg.jsp?cc=global&lc=en&ver=4001&template=pp1_1_1&zone=pp&lm=pp1&pid=10336
Sony Ericsson Developer World
http://developer.sonyericsson.com/
Symbian OS Version 9.1 Functional Description
http://www.symbian.com/technology/symbos-v91-det.html
About EMCC Software
EMCC Software is a leading provider of mobile solutions and development services.
With comprehensive experience in open mobile OS development and enterprise solutions,
EMCC Software has been working within the Symbian, Linux, Java and Windows Mobile
communities since 1998. Our wide-ranging expertise includes platform development,
communications, messaging and UI creation. Our clients include all of the mobile
industry leaders. EMCC Software specialises in consulting, development and training
services and has developed a portfolio of leading-edge smartphone software solutions.
Further information about EMCC Software Ltd can be found at www.emccsoft.com.
|