UI Extensions for mobile development now on Gitorious

Published Monday February 15th, 2010
21 Comments on UI Extensions for mobile development now on Gitorious
Posted in Qt Orbit, Symbian

Hello. I am Keijo Virtanen from the Symbian Devices, Application SW team within Nokia. We recently released some UI extensions to Qt on Gitorious. These extensions are UI libraries optimized for a touch interface. They will initially target the Symbian platform, but like with all Qt technology our ambition is to make this cross platform.

Some of you might have heard of Orbit. That was the internal project name that was used for an extension library we are building on top of Qt. The project was started since we felt that Qt needed additional UI and mobile domain specific APIs to be truly compelling for in particular mobile development. Until we are ready with the developments and productize this, including putting a proper name on it, we will temporarily call it “UI Extensions for Mobile”

Like with the Qt mobility project (new Qt APIs for mobile development), we also in this case aim to make the Qt APIs useful for other – additional – relevant use case scenarios. We are still working on the best way to publish new UI components that are based on Qt.
As this project is very much a work in progress, we would very much like some feedback, so please have a look at the code and let us know what you think.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Qt Orbit, Symbian


hugo says:

what are the names of the git repositories ?

Alessandro says:

@hugo: I belive it is http://qt.gitorious.org/uiemo

Nils says:

I’m confused.

There’s “UI Extensions for mobile development” which is targeting Symbian. In its INSTALL file it is written how to get that running on Maemo too.

There’s “MAEMO UI framework”, that in parts does the same as the “UI extensions” (the Widgets) and adds Maemo specific stuff (DUIApplication, duihome, …)

There’s QML which is not used by any of the above frameworks but seems to have targeted Touch UIs from the beginning.

There’s ItemViews NG which promises state of the art ItemViews for mobile and desktop use.

There’s bare bones Qt which adds Kinetic Scrolling to some of the existing ItemView widgets.

I want to develop a Farting App for Nokia Devices. What of the above should I use for the Farting Sound Settings Dialog?


Harald Fernengel says:

@Nils: Plain Qt. You’ll get Kinetic Scrolling and native look&feel for free.

Nils says:

Apart from the bad joke I’m serious here. Reading all those threads on the Symbian and Maemo developer forums gives me the impression that I’m not alone with my doubts. An official statement from Nokia regarding the possible future of a unified widget set for Nokia mobile applications would be most welcome.

For me it looks as if two competing teams are implementing basically the same stuff with two different APIs. That’s Anti-Qtisch.

I’m not talking about desktop use here, everybody knows that you have to implement a specialized UI for mobile devices for any application. I’d like to see a common mobile UI widget set for all Nokia platforms. If necessary, special classes can be added for platform specific features but that should really be the exception. Throw in integration of these widgets with QML and the world will start being a better place.


Harald Fernengel says:

@Nils: Use plain Qt. DirectUI ships a Qt widget style with native look & feel, and I suppose Orbit will do the same. On all other platforms, plain Qt looks native anyway, and will do so in the future.

Look at DirectUI, Orbit and QML as extensions on top of Qt, and may the better one win.

zchydem says:

@keijopv Thanks for releasing Uiemo. I wrote a small review of it in my blog http://zchydem.enume.net/?p=561. I found couple of issues that you might be interested in and also in the commenting section there is at least one issue related on casting void pointers to int. This is a problem in 64 bit environment. Support of Mac would be nice to have there also. Do you have any plans to add that?

As Nils said, I’m also bit worried about Nokia’s will to recreate bunch of frameworks on top of Qt. Would it make sense to build for example good set of “Next Generation Widgets” + theming + pluggable framework to provide haptics/feedback and then provide e.g. platform specific window manager and home screen application built on top of Qt? In that way, Qt would contain all the required widgets for building apps on Graphics View.

Otherwise it builds out-of-box in Linux/Maemo 5 environments. Looks nicer than Maemo 6 UI Framework in my opinion.

Rene says:

If I want to build an application for a touch screen that runs in an xserver on linux (no need for any direct frame buffer writing), what would be the best choice:
a) build it in pure Qt and draw nice buttons by hand, implement navigation/toolbar/tabbar with basic Qt widgets
b) is there a way to use the fancy Maemo/Symbian widgets on a non ARM Processor/normal linux desktop?

To the comments above: DirectUI seems not to be useful for Linux (?). QML just seems to be a help to code interactions (I am looking more for a widget library) and Orbit,alias UI Extensions for Mobile, could it be (But damn, I have to checkit out and build it, before I can decide ??! no screenshots?).

Thanks for your input! I thing the Qt stretegy became a bit confusing. I mean it says “Qt everywhere” and then, we have a Symbian lib a maemo lib and more and more.


keijopv says:

I thank all commentators from your feedback. Its always welcome to get community viewpoints and analysis. It was a good to see Uiemo running on Maemo 5 environment by zchydem. Qt is a cross-platform product and the intention to keep it that way has not changed. With mobility specific APIs we think that we have found a good way to publish them, even though they are not yet part of a Qt release. Concerning UI extensions, we are investigating actively what is the best way to publish new UI components that are based on Qt and whether they could be useful beyond mobile domain. However, at this point we have no details to announce.

Jussi Lemponen says:

You can see a demo application using UIEMO running on an N900 device here too: http://www.youtube.com/watch?v=VfdsfLh6b6A.

Good to see “Orbit” released, any plans to release source code of some demo/example/test applications? Also generated doxygen documentation would be nice to have…

Alessandro says:

@keijopv: Thank you for choosing the Qt Lab Blogs as the official announcement place for the UI Extensions for mobile development.
In order to test the new library, I went through the build instructions in the included INSTALL file and have now the Hb*.dlls. But where to go from here? Please let me join Janne Anttila’s request for some minimal example application. As a guide for 3rd party application authors. Screen shots as suggested by Rene would be fine, too.

Benjamin says:

If it is a new API, why is there so many deprecated methods? (half of HbLabel is deprecated, same for HbGroupBox, etc)

You should define a coding style for the project (or better, use the Qt’s coding style :)). Currently, the code is quite ugly with multiple coding style being used.

Is there a tool like Qt Designer to design the windows/dialogs?

Salvatore says:

Hi All,

I got UIEMO running on a Symbian^3 PDK, using symbian-sbsv2 as mkspec. Once Hb has been installed, include load(hb.prf) in your .pro file. In my case, I’ve installed Qt (from the classic Windows installer .exe) on the same drive that I’ve used as EPOCROOT for my PDK and I’ve copied hb.prf and hb_install.prf in the same directory where you find qtcore.prf and qtgui.prf.

You should be up and running at this point.

Alessandro says:

@Salvatore: Thank You. Another way to build against uiemo is to say ‘CONFIG += hb’ in your own .pro file. That will directly pick up the hb.prf and hb_install.prf from where they have been installed to by the uiemo ‘[n]make install’ step. At least that’s how I got it running on MSVC.

lee tong says:

ny plans to release source code of some demo/example/test applications?

Datha says:

Sad that there are 2 UI frame work being built for Mobile. Visit http://qt.gitorious.org/ and there is
* Harmattan UI Framework The Harmattan UI Framework is a Qt based application development framework targeting mobile and t…
* UI Extensions for Mobile The UI Extensions for Mobile package is a set of Qt based extension libraries that will provide: …
Pretty sad and rich Nokia has money to spend on two parallel UI.

datha_k says:

On the other hand, if MeeGo and Symbian going with their own UI, that may be the direction in which MeeGo is moving. MeeGo is catering different form factors, different vendors, different use cases. If we view this to +ve side, let Symbian and MeeGo compete each other, this will keep both of them on the edge 🙂
I don’t bother as long as only UI differs and underlying non-UI remains same across platforms. If i’m not wrong, this is the direction Andriod is moving as well. They call it ‘fragmentation of Android’.

kalinga_ray says:

@Alessandro,@Salvatore: I am able to configure UIEMO on PDK 3.0.h. I have qt-symbian-opensource-4.6.2 binaries installed into that PDK. I did not find any qtcore.prf and qtgui.prf. Where its location. I copied hb.prf and hb_install.prf and put those in my
“QtSymbian4.6.2mkspecsfeatures”.I am able to compile a Hb related application but its crashing while creating

class SimpleItem : public QGraphicsItem
SimpleItem* gItem = new SimpleItem();
HbLineEdit* aLineEdit = new HbLineEdit(gItem);
Did you face this problem.

Hi all,please provide any input what is going wrong.

Thanks in advance,

mobile says:

samsung mobiles is uses by people in all over the world.

hb says:

I can’t get the code from http://qt.gitorious.org/uiemo
when running git clone http://qt.gitorious.org/uiemo,
it returned fatal: http://qt.gitorious.org/uiemo/info/refs not found: did you run git update-server-info on the server?



Commenting closed.

Get started today with Qt Download now