View Single Post
Venemo's Avatar
Posts: 1,296 | Thanked: 1,773 times | Joined on Aug 2009 @ Budapest, Hungary
#170
Originally Posted by attila77 View Post
I used to code in Qt from before the times Maemo existed. The great thing about Qt was that, in gereneal, there WAS no #ifdef required (i you had it, it was considered bad programming or platform incompatibility). Whether you coded for XP, Mac or Linux, you used the same API. It was (still is) a really cool thing.
Yes, it is.
Or more correctly, it would be.

Originally Posted by attila77 View Post
With mobile development this changed - my Maemo apps are already littered with #ifdefs as I want them to compile on my deskop, on Qt4.5 (for N8x0) and Qt4.6 (PR1.2), and chances are there will be another volley of #ifdefs for each release of Qt and each device (worse yet, every firmware release), and my Qt code starts looking as ugly as any bog-standard C++ code that is trying to be multiplatform. And that scares me as a developer, since Qt was supposed to (and did in the past) relieve me from that. And I’m not just talking widget libs here.
Ah, now this is what I was talkig about.

If you don't mind, I'm gonna react to each of the ways you described.

Originally Posted by attila77 View Post
the "standard widget from code" approach. This will work everywere, look fairly localized but also the one that users usually refer to as "crappy looking community apps". No whizz, no bang. Adaptation already needed due to input technologies (fingerscroll, etc). Requirements: Qt
Well, this is essentially the same as the next one, minus the designer.

Originally Posted by attila77 View Post
QtDesigner approach - similar to above, but using the QtDesigner UI editor. Speeds up UI development by a more visual way of assembling components. The downside is that QtDesigner does not know anything about mobile use, so you are missing out not only on the mobile-specific widgets, but also the generic look and styling - you do not see how your app will actually look on the device (the same problem Qt Simulator has). Requirements: Qt4.0+
This is my current preferred way of doing things.
However, where the standard widgets don't look good enough for a platform, I'm not afraid to use platform-specific stuff.


Originally Posted by attila77 View Post
GraphicsView approach - you draw your own stuff, no "classic" layouting, but you can use widgets and custom elements. More whizz, more bang, animation friendly, but requires a LOT of trial-and-error work. Requirements: Qt4.4+
Seems nice, but way over my current needs.

Originally Posted by attila77 View Post
MeeGo Touch framework - Features include standardized window navigation, list and other widget behavior, and common theming for components. Also known as MeeGo UI framework. Also known as DirectUI framework. Also known as DUI framework. Requirements: Qt4.6+, MeeGo API
Since this is specific to MeeGo, I'm not very happy about using it. There was already an example somewhere - every class name began with "Dui" instead of "Q", very thoughtful.

Okay, for MeeGo-specific look and feel, I will gladly throw in some DuiThis or DuiThat, but building my entire app on these things seems wrong. (Unless the app only targets MeeGo.)

Originally Posted by attila77 View Post
MeeGo reference UX (handheld/netbook/etc) - UI implementation based on the MeeGo Touch Framework. Not released yet, so not clear how much customization a "pure meego touch" based app will require to fit in nicely. Requirements: Qt4.6+, MeeGo
So, this is based on the above, right?
More platform specific stuff, great!

Originally Posted by attila77 View Post
Orbit - An UI framework, parallel to the MeeGo Touch Framework, initially for use on Symbian devices, but demonstrated to work on Maemo, too. Also known as UI Extensions for Mobile. Also known as Uiemo. Requirements: Qt4.6+, Symbian^4
Hm, never heard of this one before, thanks for pointing at it.

Originally Posted by attila77 View Post
Harmattan UX - like the MeeGo reference UX, but specific to the N900 successor. Requirements: Qt4.6+, MeeGo
Very good, this is even more platform specific than anything mentioned.

Originally Posted by attila77 View Post
QML - a Declarative UI tool, in effect a markup language that defines UI elements and their behavior in a declarative manner, allowing, snappy, whizzy UIs. Requirements: Qt4.7+
QML seems great (as a competitor to XAML, I guess?), but it doesn't have anything to do with an app having platform-specific look and feel - rather an app looking the same on every platform.

Originally Posted by attila77 View Post
Qt Quick - the Qt User Interface Creation Kit, which consists of QML, a specialized editor in QtCreator and all-around support for the declarative approach. Also known as Qt Declarative. Also known as Declarative UI. Also known as Bauhaus. Requirements: Qt4.7+
Okay, so this is "just" some tooling for the above, isn't it?

Originally Posted by attila77 View Post
To make things more tricky, these overlap a bit, so you can incorporate elements of one into the other, and there are often backports that allow technologies to be tested on previous versions. Also, did get more that four ways... I think I’m going to make a Qt/MeeGo dictionary
This is the part that is great about Qt. We can use whatever things are there together - the right tool for each purpose.

Last edited by Venemo; 2010-06-12 at 12:07.