[maemo-developers] New apps for fremantle with Qt?

From: Joaquim Rocha jrocha at igalia.com
Date: Sun Sep 6 20:56:13 EEST 2009
Hi

Karoliina.T.Salminen at nokia.com wrote:
> These things are easier in some toolkits and harder in some others. To my knowledge, Gtk was not really designed for handheld touch user interface
> with kinetic scroll etc. on mind in the first place - it is a rather a desktop toolkit with the rather traditional mindset - 
> and some of hard core hacking obviously was required to make it function like it functions on the Maemo 5. That is a great achievement and I have
> watched that with awe and lots of respect to the developers who have made it. I can now enjoy it every day with my N900, lists etc.
> work as they should and they make this UI very desirable.

Of course GTK+ wasn't thought to be used on touch UIs from the
beginning! Was Qt or any of the other UI toolkits with more than a
couple years designed for touch screen interfaces?

> 
> On the other hand, it was a lot easier to start the same from scratch on Startup wizard with Clutter because there
> was not the incompatible way of thinking as a barrier between the desired functionality and what is already there because there was
> nothing there already, just start from grass root level from atomic blocks (start by building a custom ClutterActor) 
> and then figure out how to stack Actors and how to animated them to get e.g. a kinetic scroll list done. As there was no base widget, there
> was no limitations of the base widget and no associated problems, just putting some lego blocks together and it was done. With some
> adjustable parameters and then fine tuning the feel with these parameters, it was actually quite efficient to do it. 

Sure but the question here is not to make super customized widgets but
rather to use widgets the way they should be used in an interface,
following the established guidelines to provide the user with a nice
experience.

If you have custom widgets in every program on a system, users will find
it harder to use. They will not know what to expect when they tap on a
widget they never saw before... that's the point of having guidelines.

> 
> I believe Qt can be in the same position pretty much,
> if the widget is started from scratch rather basing it on some existing widget which has similar limitations than the equivalent
> in the Gtk. Qt is more like Gtk + Clutter combined rather than being equivalent of the Gtk alone. 
> 
> Kate said there is some kinetic scroll list already there in the Qt, but I don't know how its parameters match to the 
> Hildon/Gtk version we have on the Maemo 5, but I think that with some work it can be done to function 100% equally, as it works
> equally on startup wizard despite it is a completely separate implementation with a completely different kind of technology behind it.
> And despite of that, it still just works, perfectly. 
> 
> IMHO good news about composite widgets is that they are very easy to create in Qt. Many things which are very cryptic in Gtk and glib (no flame intended, I know
> that hard core glib people will disagree, but I don't happen to be very enlightened to the gobject despite having made few custom ClutterActors myself in C/glib) are so simple on Qt, 
> just few lines of very understandable and easy C++ code. I am sure Kate can show examples. Another good news is that the QGraphicsView appears to have almost everything that is in Clutter, and modern 
> mobile user interface widgets can be built with it rather than basing them on the traditional widgets. And what is more, 
> Qt allows extensive embedding of the traditional widgets to the graphics view which may make the task even easier.
> 

I'm pretty sure you can do neat stuff with Qt as you can do them with
GTK+ and Clutter but I don't think this really counts when writing or
porting applications to Fremantle. There are a set of widgets that
behave in a certain way in Fremantle and developers should use those to
build they're applications. I can't see where *having the possibility to
build* those widgets is a great thing comparing to *having the widgets
themselves* ready to use.

E.g.: It is pretty easy to build up a dialog in GTK+ without using the
GTKDialog class. Make a window, add a box, add buttons, ... but it would
be a pain if I had to write all the "standard" widgets I wanna use.

Another important thing is that, for Open Source applications, you'd end
up having tons of the same composite widgets, written differently, and
obviously behaving differently, which would not contribute to code reuse
and cripple users' experience.

So, please guys, understand that until Qt have the set of widgets that
define Fremantle and that developers can use those in a straightforward
way, one cannot think of Qt as an intelligent choice to build
applications on Maemo 5 nowadays.


Cheers,

--
Joaquim Rocha


> This sounds so interesting that I may need to look into it someday. 
> 
>> I managed to finally get a QT app running (qt-maemo-example from fremantle extras-devel). Based on that experience, I updated the QT wiki page at:
>> http://wiki.maemo.org/Qt4_Hildon#Limitations
>>
>> I hope you guys will make additions and corrections to there, so we have more information easily available.
> 
> I believe you (or anybody else) are very welcome to pixel perfect and fine tune the list performances of 
> the Qt equivalent widgets if someone creates the missing few hildon widget Qt equivalents.
> 
> Best Regards,
> Karoliina
> 
> 
> _______________________________________________
> maemo-developers mailing list
> maemo-developers at maemo.org
> https://lists.maemo.org/mailman/listinfo/maemo-developers

More information about the maemo-developers mailing list