Developing for UIQ 3

Published by at

After talking to Sony Ericsson and UIQ at the Smartphone Show Rafe looks at the development opportunities and challenges for UIQ 3.

Developing for UIQ 3

UIQ 3 represents a major change for UIQ developers. Not only has the the underlying OS, in the move to version 9, undergone its biggest change since the move from version 5 to 6, but the UIQ interface in moving from version 2 to 3 has fundamentally evolved. Symbian 9 introduces a new security model and an updated compiler, and UIQ 3 introduces both the concept of multiple UI configurations in one codebase and new usage scenarios within the familiar UI configuration found in the P series of Sony Ericsson smartphones.

Sony Ericsson recognised the scale of this change and they acknowledged that part of the reasoning behind the earlier than normal announcement of the P990 was to encourage developers to get to know the platform, to get their applications prepared and ready for the market.

With the P990i due on the market in a month or two and further UIQ 3 devices (including the M600i) just around the corner we take a look at some of the challenges and opportunities implicit in developing for UIQ 3 and the support provided for developers.

P990iSymbian 9 and the Security Model

One of the most obvious changes introduced as a result of Symbian OS 9 is the new security model, which means the hitherto minor issue of application signing has come to the fore. Through a system of permissions (the security model) controlled by application certification (called Symbian Signed) the OS now limits third party application access to certain APIs and systems calls. In terms of the security model there are now two different types of API (also know as capabilities): unprotected (60%) and protected (40%). The protected capabilities can be further divided into three groups: basic, extended and phone manufacturer approved. Applications that use either extended or phone manufacturer approved capabilities must be Symbian Signed or it will not be possible to install them on target devices.

Basic protected capabilities are those which may be broadly understood by the user (such as Bluetooth connectivity). The phone manufacturer can set these capabilities as subject to being authorised by the user (whether a capability is set as user-authorisable is dictated by the manufacturer's security policy for the device which can vary between markets and operators). If a capability is user-authorised then it is not necessary for an application to be signed. However if a manufacturer has chosen not to set a capability as user-authorisable then an application must be Symbian Signed in order for it to be installed. In practice it is recommended that most applications using basic capabilities should be signed.

Applications that use only the unprotected APIs or use user-authorisable basic capabilities can be installed although, as with existing Symbian phones if they are not signed, they will show a security warning on installation.

Applications using the unprotected capabilities, basic capabilities or extended capabilities can be signed through the standard Symbian Signed program. Applications using the manufacturer approved capabilities must gain additional certification and permission from the device manufacturer. For Sony Ericsson this access is arranged through Sony Ericsson Developer World website and will partly take place through a screening process in the developer program as part of the getting to know you process.

The manufacturer approved capabilities are the sensitive seven - DRM, NetworkControl, MultimediaDD, TCB, AllFiles, CommDD and DiskAdmin and are capabilities which have particular implications for device data integrity and security.

UIQ estimates that about 10-20% of current (UIQ 2) programs make use of the sensitive seven. However most of these can be rewritten to not use the sensitive seven without losing any functionality.

Developers may be concerned that the security model will curtail their development activities because any testing and debugging on a device would require an application to be signed. However this is not the case, through the use of freely provided Developer Certificates, developers will be able to self sign an application such that it will run on a limited number of devices (specified by IMEI when requesting the developer certificate). More information on this is available here (https://www.symbiansigned.com/app/page/devcertgeneral) on the Symbian Signed website. With the use of Developer Certificates developers will be able to develop, test and demonstrate their applications without having the applications Symbian Signed at any stage. Only when the application is ready for widespread deployment, and after it has been tested on a device, would it be submitted for signing.

We'll be covering signing in more detail in a later article.

Migration to UIQ 3

UIQ 3 changes the way some things, such as views, are handled and together with the binary change in Symbian OS 9 mean that developers will have to do some work to port their existing UIQ 2 application to UIQ 3. According to UIQ the extent of this will vary from application to application and is partly dependent on how intelligently an application has been coded.

UIQ 3 introduces the concept of multiple UI paradigms in one codebase an extension of the flip open and flip closed concept found in UIQ 2. UIQ 3 introduces the idea of differing screen sizes and interaction types. This means a UIQ 3 handset can be a non touch screen, softkey controlled device or a touchscreen landscape device (amongst others). Programs are written such they will run on both a touchscreen and a non touchscreen device and adjust dynamically (e.g. on will have a softkey controlled menu, the other a touchscreen menu). The presentation layer is such that applications can describe how they should look in an abstract sense (a presentation description layer) and at run time the UI will be dynamically created dependent on the UI look and view. An application will have code that will describe how it has a certain menu or set of buttons and UIQ 3 will dynamically create the look of the interface appropriate to the situation. The code is such that developers can allow standard layouts to be created or they can create customisation for a given layout / interface combination. For example a developer might choose to optimise for a specific screen size/interface combination.

The changes in the presentation layer is likely to be the biggest issue developers will face in porting their code from UIQ 2. However UIQ hope it will encourage intelligent application and code design with separation of different layers into separate sections. It is worth noting that this is in line with Symbian ethos of intelligent development and should ease porting to other Symbian UIs such as S60.

Support from UIQ

At the Smartphone Show in October 2005, UIQ introduced their new developer program and website - developer.uiq.com. Through this web site, which requires only a free registration, developers can obtain the tools and help they need to develop applications for UIQ 3 devices. The web site is intended to provide a one stop shop for UIQ developers and 'unify the message' provided to developers. This represents a considerable improvement over the situation for UIQ 2 where information was spread across multiple resources.

The UIQ 3 SDK is being made available though this site and facilitates development for any UIQ 3 phone. The UIQ 3 SDK allows for generic development but phone specific development (e.g. access to the Bluetooth Keyboard and Vibra APIs in the P990i) will be supported by the UIQ 3 no touchscreenindividual phone manufacturers. This will usually take the form of add ons to the UIQ 3 SDK and might include additional files, emulators skins, examples and documentations.

The UIQ developer sites provide extensive documentation and examples which are continuously being updated and improved. Although the is an initial emphasis on the technical UIQ have said they plan to provide more information (such as information on marketing) at a later date.

A forum has been made available for registered users of the site, which provides a mechanism for informal support and feedback. The UIQ developer team are keen to listen to what developers want and are actively seeking feedback on both the program itself and the tools and documentation that they provide.

As this article was being finalised UIQ announced a Premium level to their developer program. The new 'Premium' level, which costs $500, includes 5 technical support tickets, early access to content and SDKs, additional content, discounted offers and co-marketing opportunities. Developers will also be offered commercial support on a per incident basis with direct solutions from UIQ Technology engineers. The free Community membership retains all of its existing benefits. UIQ are keen to stress that there will always be a free level to their developer program and that tools, SDKs, documentation and basic support will be always available in the Community level. The Premium level of membership is a direct response to developer requests for further support, which can only be facillitated via a commerical model.

Java Support

The P990i also sees improved Java support. This principally takes the form of support for new JSRs, which enabled richer J2ME application to be built. The new JSRs include Web Services (JSR 172) which enables easier creation of SOAP and other web services, Mobile Media API (135) which enables access to the camera, Wireless Messaging 2.0 (JSR 205) which enables the sending of SMS and MMS from Java, 3D Graphics (JSR 18) which enables easy 3D game creation and File GCF and PIM (parts of JSR 075) which enables easier file and PIM access. UIQ and Sony Ericsson believe the improved Java support provides opportunities for compelling new applications.

Support for Java developers on the P990i will be provided through Sony Ericsson Developer World where documentation, examples and SDKs (including a new CDDC SDK) are available.

The Future

The P990i is the first of the new UIQ 3 devices, but more are scheduled to be announced shortly from both Sony Ericsson and other manufacturers. As such UIQ 3 has the potential to become an important mobile platform. As a young platform UIQ 3 has many open opportunities to offer the new developer. ISVs would be well advised to get in at the ground floor and establish themselves at the earliest opportunity. For existing UIQ developers version 3 offers a host on new opportunities enabling the creation of new types of applications in both C++ and Java.