Qt Quick Components 1.1 for Symbian – Update

Published Tuesday November 8th, 2011 | by

Four months back, in July 2011, the very first wave of Qt Quick Components found it’s way to Symbian 3 and Symbian Anna devices. Lately Nokia N9 began shipping with the pre-installed set of Qt Quick Components for MeeGo 1.2 Harmattan.

Development continues, and now Qt Quick Components 1.1 for Symbian is out!

This update is a part of a new released bundle for Symbian Anna and Symbian Belle. It contains Qt 4.7.4, Qt Quick 1.1 and Qt Quick Components 1.1 for Symbian, enabling rapid application UI design and development. For more information about the full content of the Qt release bundle, read this blog post Qt 4.7.4 Release Bundle for Symbian news by Aleksi Uotila.

Qt Quick Components 1.1 for Symbian introduces new features:

  • Right-To-Left support enabling a layout mirroring (eg. text and icons) for Right-To-Left languages
  • Split-view input replaces the full screen virtual keyboard with the more user friendly partial screen virtual keyboard
  • Input Context gives access to software input panels’ size and visibility
  • Inverted Style provides an alternative style for the Qt Quick Components with inverted colors

and it brings new useful components:

  • Label ensures a convenient way to provide body text and links using platform’s default font and color
  • SearchBox provides a search bar functionality for progressive search with a search input field and a search icon
  • PageStackWindow brings “all essentials in one” (a StatusBar, the page navigation and a ToolBar) with platform’s look and feel

To get started with our new offerings, download updated Qt SDK, find updated design guidelines at Nokia Developer site and learn how to utilize ~50 ready made building blocks in your Qt Quick application. The deployment of the new Qt release bundle for Symbian ensures a remarkable device base and opportunity for high volume downloads for your Qt Quick application in the Nokia Store (see Aleksi’s blog post for more details).

There is new handy functionality in this update and also the non-functional part has been improved under the hood. Creation times of the Qt Quick Components have been monitored and based on findings the slowest components have been optimized, for example TextArea and TextField components have been improved a lot. ListView scrolling speed is fluent now, a major finding has been that ListView scrolling speed depends on how fast the delegates are. It is possible to achieve performance close to 60 frames per second (fps) when ListItem, ListItemText or Image delegates are used.

Having improvements in a stack is an important step forward, but equally important to that is to have optimized design at the application level. The very first step towards better performing Qt Quick applications using Qt Quick Components is to avoid some common mistakes. At the end of the day, different use cases in different kind of applications should be analysed case by case, but here are a few generic performance improvement tips that should be taken into account in most applications:

  1. Use QML Loader by dividing your application into logical parts and then loading only the minimum when the application starts.
  2. Load large images asynchronously in a separate thread to keep the user interface responsive (QML Image asynchronous: true).
  3. Avoid resizing/scaling of images by using images that are in their native size rather than re-size/scale large images to correct sizes.
  4. Use QML Image’s sourceSize property with large images due to fact that this property sets the actual number of pixels stored for the loaded image.
  5. Pay attention to memory consumption, when using a PageStack. The PageStack is an easy way to handle navigation in your application,  but the other side of the coin is that it’s usage can lead to excessive memory consumption when the PageStack depth keeps on increasing. This can happen if the user always navigates forward to a new page (a new page is pushed in the stack and memory is allocated), but never navigates backward in the stack (pages are not popped off from the stack and memory is not freed).
That’s all for now about this update, we keep posting when something new is on the horizon!
Did you like this? Share it:

Posted in Qt, Qt Quick, Qt SDK, Releases

27 comments to Qt Quick Components 1.1 for Symbian – Update

Mika Hanhijärvi says:

Great news! thank you guys :) List of improvements and new elemenrs looks nice. I’ll try this new stuff today. Yet another sleepless programming night ahead, hehe :)

Sella says:

I’ve read the doc of ‘Split-view Input’, but I don’t feel QML is much easier or understandable as C++ coding with UI widgets and Animation Framework. If you insist to QML, I suggest to develop a powerful ‘QML Designer’ which allow people to realize their concepts without coding a lot. What we need is actually some resources, states, and transitions. right?

Sami Lehtonen says:

@Sella:
This is valuable feedback for us. First of all, our original target from the very beginning has been that Qt Quick/QML itself as an UI layout definition/programming language is easy to understand and quick to learn. And not going to too “overselling mode” here :) it is a fact that there are some basic concepts to get familiar with as in any other new technique.

Then, having a supportive tooling in place complements our offering. It is a correct observation that we are not fully there yet. Development continues and Qt Quick/QML support in Qt Designer will be improved when going forward. At the end of the day, an ultimate goal is that all this should be easily adopted by both Developers and Designers. The original target of Qt Quick is still valid and the target really is that only minimal coding skills are required (if any), without too detailed details from underlying platform, when developing Qt Quick applications.

Leaf says:

That’s what I need now,Thanks for your work!

opk says:

Updated to the 1.1.4 SDK this morning and noticed runtime errors about not finding com.nokia.symbian qml component package…so I went through my project and changed every “import com.nokia.symbian 1.0″ to “import com.nokia.symbian 1.1″ and things are working again. It’s somewhat surprising to me that this is necessary though. What are the exact semantics of qml component versioning? My expectation is that since my app is declaring an explicit dependency on symbian components version 1.0, that version 1.1 being present in the SDK should have satisfied this dependency without me having to change the source.

Sami Lehtonen says:

@opk:
Both imports (“import com.nokia.symbian 1.0″ and “import com.nokia.symbian 1.1″) are supported in Symbian Anna (and Symbian^3) devices onwards. Due to the latest major improvements on UI level our recommendation is to use Qt Quick Components 1.1 and Qt Quick 1.1 modules included in Qt 4.7.4 Release Bundle for Symbian:
http://labs.qt.nokia.com/2011/11/08/qt-4-7-4-release-bundle-for-symbian-news/

In practice this means Qt SDK 1.1.4 usage during development time. In case you still want to use older “com.nokia.symbian 1.0″ import and run your application on simulator, older Qt SDK 1.1.3 is required. As mentioned, on device both imports are supported.

Alex Savin says:

I’m getting this when trying to run a QML app on Nokia N8 with Anna:

[Qt Message] file:///C:/Private/e411d7ea/qml/friday2/main.qml:2:1: module “com.nokia.symbian” version 1.1 is not installed
import com.nokia.symbian 1.1

Smart Installer option didn’t helped. What should I do?

Alex Savin says:

I’ve reinstalled the whole Qt SDK 1.1.4 now from scratch. Now when I create a QML application with Symbian components (using wizard), I’m not able to launch it even with simulator:

Starting C:UsersAlexQt_projectsfriday7-build-simulator-Simulator_Qt_for_MinGW_4_4__Qt_SDK__Debugdebugfriday7.exe…
file:///C:/Users/Alex/Qt_projects/friday7-build-simulator-Simulator_Qt_for_MinGW_4_4__Qt_SDK__Debug/qml/friday7/main.qml:2:1: module “com.nokia.symbian” is not installed
import com.nokia.symbian 1.1

It also fails to run it on HW.

Sami Lehtonen says:

@Alex Savin:
When you selected an smart installer option in Qt Creator and tested on Nokia N8 device, did you use a .sis file with “installer_” in it’s name? There is another .sis file without the Smart Installer enabled and it does not work if you don’t have Qt 4.7.4 (incl Qt Quick 1.1) and Qt Quick Components 1.1 installed on your device.

Alex Savin says:

Yes, I can see from Run setting that it is using friday7_installer.sis as the installation file.

The problem right now is that it doesn’t run even on simulator if I use Symbian components.

Andreas Jakl says:

From what I’ve seen when installing Qt SDK 1.1.4 from scratch, Qt Quick Components for Symbian are only installed for the VS compiler in the default installation. The MinGW variant is not selected by default. Therefore, I couldn’t use the components, also not in the simulator.

I had to go to the SDK Maintenance tool, select the MinGW Qt Quick Components manually – then it worked fine.

Seems to be an issue with the default selection of the SDK installer tool!

Alex Savin says:

Thank you, Andreas, that was the issue! I really had to look where this option was missing in the Maintenance Tool. Thanks, it works now in simulator, and (after an installation with smart installer) on N8 HW.

Joe says:

@Alex Savin: You may have to install ‘Qt Quick components for Symbian’ in APIs category with Qt Maintainer in SDK.

Joe says:

The categories of components in Maintainer is really confusing. Docs, examples,platforms everywhere…

Declan Moran says:

(1) How do we (remote) compile our app on Linux/MacOsX for this version?
In Qt Creator Sdk – build steps – target – Qt version I only have “4.6.3” and “4.7.3”

It seems remote compiler only has the older versions available.

(2) Also how can I get these versions of QT , Qt Qucik, Qt mobility onto our test device.
Formerly I was able to find .sis files for these in /”Symbian/sis/

Now after updating my adk, I only find a sis file for components

Thanks in Advance.
Declan

Yuri says:

And….Qt Quick Components for Symbian^1, nothing ?

Thanks.

Declan says:

I hope the remote compiler will be fixed soon. Currently I cant compile anything for a device, since I cant revert back to the old sdk either. I tried installing “Qt_SDK_Lin32_online_v1_1_3_en.run” and “Qt_SDK_Lin32_online_v1_1_2_en.run” from ftp://ftp.qt.nokia.com/qtsdk/..but neither worked properly despite my uninstalling cleanly each first using the maintenance tool. In the first I had installed and could still only compiler with use symbian components 1.1 (which doesnt make sense if they were released with sdk 1.4), and in the second case I want offered a simulator target at all, even though Im sure I chose it in the installer. Seems like th uninstaller doesnt really uninstall cleanly and older versions get confused when regressing.

I also cant work together with my colleagues on any projects since I can only use

“import com.nokia.symbian 1.1″ etc

in my qml files and they can only use

“import com.nokia.symbian 1.0″ etc

Another half baked , poorly documented , hardly tested offering from Nokia that I wasted my time on – again. Well done

Sami Lehtonen says:

@Declan:
(1) There is no plans to reduce a support level for Qt 4.7.4. Currently all Qt SDK 1.1.4 users on Linux or Mac targeting Qt 4.7.4 have this limitation due to ongoing deployment on Remote Compiler server side.

Our apologies, we inform immediately when it is up-and-running again!

(2) You should find a “QtQuickComponents-1.1-for-Anna-Belle.sis” file after Qt SDK 1.1.4 installation/update from the following directory:
[PATH_TO_SDK]SymbiansisSymbian_AnnaQtQuickComponents1.1

Qt Mobility and other .sis files are available there in separate directories.

@Yuri:
Symbian^1 support is not in plans at the moment.

Guillaume says:

Nice release, with a major bug for me however: Predictive text input using the new inline keyboard crashes my application.

Pekka Kosonen says:

Hi guys, the remote compiler is now updated.

I’m really sorry for the delay (for the ones interested in the reason it’s web server infra updates that prevented us from doing the update on time…).

Sorry again,
Pekka

Please test it out and let us know how it goes – I’d prefer the dibo for feedback http://www.developer.nokia.com/Community/Discussion/forumdisplay.php?221-Qt-SDKs-and-Tools

Aleksi Uotila says:

@Guillaume: Please can you report a bug report (http://bugreports.qt.nokia.com – to Qt Quick Components project) on the issue you faces and please let us know the details (what your app does preferably with a snippet or source, what environment and devices you are using etc.) so that it could be reproduced.

Jason says:

In cell phones , if only a small Text to display a large number of text elements , it will succeed mobile card can not .
But those words is divided into a number of elements to display the Text will not card .
Why is it so? To solve it?

English is not good, please forgive me.

Wael says:

Hi
any news to have Qt quick components 1.0 or 1.1 to target Symbian 5the

Thanks
Wael

Andrea says:

When Symbian UI will be fully made by Qt Quick Components?

Sami Lehtonen says:

@Joson:
Not sure did I get your point fully, could you explain a bit more specific? Could you share a code example?

@Wael:
No new news. Symbian^3, Symbian Anna and Symbian Belle devices are covered.

@Andrea:
All building blocks for app development are in place. It covers both pre-installed applications and applications downloaded/installed from the Nokia Store. And there is always a room for extensions and you are able to include specific custom components/UI widgets in your application.

Then what comes to system UI in Symbian devices, a next concrete step is to utilize Qt Quick Components more and more on application level, not on system UI level.

rocjohn says:

When the Qt Quick Components can deploy on the S60 5th?

Aleksi Uotila says:

Productized Qt Quick Components variant will not be made available for S60 5th Edition devices. The reason is multifold:

Qt Quick Components provide components for the new Symbian UI style. This is the user interface style that Symbian OS UI framework and the devices native applications are rolling out in Symbian Belle. Symbian Belle won’t be available for S60 5th but only to Symbian^3 and Symbian Anna devices (see devices from http://europe.nokia.com/symbian-belle#compatible).

Moreover, Qt Quick Components are only designed and tested for capacitive touch screen devices whereas S60 5th Edition devices have resistive touch screen.

S60 5th Edition devices do not have hardware graphics accelerators (GPU) and the components performance e.g. in content panning is not good in many use cases.

Note that Qt Quick 1.0 and Qt 4.7 is available for S60 5th Edition devices.

Since Qt Quick Components is open source so nothing prevents a Qt Quick 1.0 application designed for S60 5th to take QML files for components from Qt Quick Components repository (http://qt.gitorious.org/qt-components) and bundle the needed parts – perhaps modified to app needs – together with the application. I.e. just have needed components QML files inside your app S60 5th ed. project. Only a minor parts on some components are designed to use native OS features but components code is designed to run without that (they run even currently e.g. on desktops!).

Commenting closed.