An Overview of UIQ v.30
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.


Close    To Top
  • Prev Article-OS:
  • Next Article-OS:
  • Now: Tutorial for Web and Software Design > OS > Symbian > OS Content
    Photoshop Tutorial
     

    Special Effect

      3D Effect
      Photoshop Articles
    Programming Tutorial
     

    C/C++ Tutorial

      Visual Basic
      C# Tutorial
    Database Tutorial
     

    MySQL Tutorial

      MS SQL Tutorial
      Oracle Tutorial
    Geek Tutorial
     

    Blogging Tutorial

      RSS Tutorial
      Podcasting Tutorial
    Graphic Design Tutorial
      Coreldraw Tutorial
      Illustrator Tutorial
      3D Tutorials
    Webmaster Articles
     

    Domain Service

      Web Hosting
      Site Promotion
    Java Tutorial/ Articles
     

    Java Servlets

      JavaEE Tutorial
     

    JavaBeans Tutorial

    XML Tutorial/ Articles
     

    XML Style

      AJAX Tutorial
      XML Mobile
    Flash Tutorial/ Articles
     

    Flash Video

      Action Script
      Flash Articles
    OS Tutorial/ Articles
      Linux Tutorial
      Symbian Tutorial
      MacOS Tutorial
    Personal Tech
      Hardware Tutorial
      Software Tutorial
      Online Auction