|
|
|||
UIQ 3.0 is based on the Symbian OS v9.1 and introduces an extensive set of changes over previous releases. The UIQ 3 platform is designed with flexibility in focus and supports phones with touch screens and pen-based input as well as phones with one-handed use and softkeys. The platform is extended to support applications to be designed in a way that they automatically can be run and behave correctly regardless of UI style and form factor of a specific phone.
The UIQ 3 SDK is designed to make all the platform improvements available to developers and some benefits of using the UIQ 3 SDK are:
Flexibility: The framework will automatically do the application layout regardless of a phone's form-factor or style.
Target a wide range of phones: As the UIQ 3 platform is designed for multiple phone styles.
Use a single binary: No need to recompile the application to target a new UIQ 3 based phone.
Based on Symbian OS: Reuse code and knowledge to reach an even larger addressable market.
To benefit from the flexibility in the platform a number of new concepts needs to be followed. Below is a summary of new items and concepts in the UIQ 3 SDK for a more detailed description see the UIQ Style guide the Programmer's guide, the various HowTo documents as well as the general API reference documentation.
Mobile phones can be very different in terms of hardware (e.g. screen size) and how the user interacts with the mobile phone (e.g using softkeys), defined as mobile phones having different Phone Styles. Examples of two Phone Styles are Softkey Style and Pen Style. It is possible to create mobile phones that combine several Phone Styles with the help of additional hardware.
The UIQ Software Platform is very versatile and can be configured by a large number of configuration parameters. One set of configuration parameters (so called UI Configuration Parameters) are related to Phone Styles and make it possible to configure the UIQ Software Platform with respect to touch/non-touch screens, screens' size, the use of a Menu Bar or the use of the Softkeys etc. Each combination of such parameters is called a UI Configuration.
UIQ 3.0 defines a number of standard UI Configurations that are supported in the UIQ 3 SDK. Reference UI Configurations have also been tested on reference hardware and all UIQ's own applications are optimized for these configurations.
Standard UI Configurations
|
A UI Configuration is a unique combination of four UI Parameters that together define a set of methods of display and user interaction. The parameters are:
Screen Mode: One of Portrait (240x320), Landscape (320x240), Portrait Small (240x256) or Landscape Small (256x240).
Touch Screen: One of Yes or No.
Interaction Style: One of Menu or Softkey
Orientation: One of Normal or Inverted
An application can be written to support several UI Configurations, even those not supported by a specific device, all with the same binaries. When an application is started it will recognize the current UI Configuration on the device and select the one of its UI Configurations that is the closest or exact match. The UIQ application framework will determine this match.
UIQ 3.0 introduces some new view classes to ease the development of views in an application.
CQikViewBase: Base class for all views, all UIQ 3 views should be derived from this class.
CQikMultiPageViewBase: A base class for views with multiple pages, extends the CQikViewBase class.
CQikViewDialog: Extends the CQikMultiPageViewBase and allows for dialog-like invocation. The same code can be used both for views and complex dialogs.
The CEikDialog class has been deprecated and replaced by two newly introduced dialog classes:
CQikSimpleDialog: To be used, as the name indicates, when a simple dialog is needed.
CQikViewDialog: As explained above, a class that can be used either as a dialog or as a view.
Some new concepts of managing the application layout are introduced in UIQ 3.0.
Building blocks
Building blocks contains slots where controls can be placed. The layout process using building blocks is:
Select building blocks
Fill the building block slots with controls
Place the building blocks in the view
The layout is done
The SDK comes with a number of predefined building blocks but new building blocks can be created programmatically or from a resource file.
Layout managers
Layout managers is another new concept introduced in UIQ 3.0. Building blocks use layout managers internally but if for some reason the building block approach can not be used then the layout managers can be used instead.
Row-based views
The concept of row-based views address the problem of the cluttered appearance found when rows are laid out dynamically with different heights. In row-based views each row has the same height and a view is made up of only whole rows.
Resource driven layout
With the UIQ 3 SDK it is possible to create views from resource files, similar to the way dialogs were created in UIQ 2.1.
In UIQ 3 a command is seen as the visual representation of an action in an application and not the action itself. A command can be located in a softkey, in a toolbar or in a menu depending on the phone's interaction style. To cope with this, a more abstract command handling concept has been introduced.
Command pattern
A new command pattern is defined consisting of a client, receiver and invoker each represented by a specific interface class.
Command lists
Commands can be defined in resource files using the command list struct QIK_COMMAND_LIST. Command lists can be combined and used in different levels of the UI items so that e.g. commands common within a view can be placed in the view struct and page-specific command lists are added to each page's own struct.
CQikCommand
Command can dynamically be created in code by instantiating the CQikCommand class.
Command grouping
Commands can be grouped together in anonymous or named groups to control the appearance in e.g. softkey versus menu styles.
J2ME
The Connected Limited Device Configuration (CLDC) implementation has been extended with several new Java Specification Request (JSR) APIs.
The current list of supported JSR's are:
JSR 139 - CLDC 1.1
JSR 118 - MIDP 2.0
JSR 185 - JTWI 1.1
JSR 75 - PDA Optional Packages for the J2ME platform
JSR 82 - Java API's for Bluetooth, now also including Push and OBEX parts
JSR 120 - Wireless Messaging API 1.1, now also including Cell Broadcast Service (CBS) part
JSR 135 - Mobile Media API
JSR 184 - Mobile 3D Graphics API for J2ME
JSR 172 - J2ME Web Services specification, XML parsing and SOAP interface
PersonalJava
The support for PersonalJava has been removed in UIQ 3