tag:blogger.com,1999:blog-6092313305577856947.post6284494516202904628..comments2024-03-04T08:50:01.709+01:00Comments on The penguin moves: Qt Components - The story of the ugly QWidgetlingAttila Csipahttp://www.blogger.com/profile/11082060370940070595noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-6092313305577856947.post-2658345739253860142013-04-16T17:58:14.277+02:002013-04-16T17:58:14.277+02:00Yes, but! :)
Indeed creating another native UI in...Yes, but! :)<br /><br />Indeed creating another native UI in QML is relatively easy as long as you keep it UI only. Tgough it is probably similar to any other techs if you indeed separate UI cleanly.<br /><br />Interesting thing in QML is that together with JavaScript it is actually a very efficient language for creating main UI logic, I try extracting only heavy duty stuff such as video processing to C++.<br /><br />And then the headache comes when you try keeping your QML logic same across platforms, but QML UIs different in absence of #ifdef'ed imports. Well, hopefully conditional imports are coming.Artem Marchenkohttps://www.blogger.com/profile/01139303206613435376noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-24219614026464975632011-08-05T09:04:38.867+02:002011-08-05T09:04:38.867+02:00This comment has been removed by a blog administrator.Adminhttps://www.blogger.com/profile/14073064527088802125noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-45889237737983773242011-07-13T21:43:27.498+02:002011-07-13T21:43:27.498+02:00Speaking as a Qt developer and having been involve...Speaking as a Qt developer and having been involved in several of the component sets I agree with this post. If you want a true cross-platform app with a single code base, you should not use a component set that is specifically targeted at a particular platform such as meego or symbian. Pure generic QML gives you that. We are also looking into providing a component set with a generic theme for this purpose though.<br /><br />Attila Csipa:<br />We are already working on desktop components with Qt Quick. http://labs.qt.nokia.com/2011/03/10/qml-components-for-desktop/<br />http://labs.qt.nokia.com/2011/05/26/table-view-with-qt-quick/Jenshttps://www.blogger.com/profile/03273556039040048925noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-73687226539691759202011-07-13T19:24:41.564+02:002011-07-13T19:24:41.564+02:00@Nishant
Absolutely, I tried to emphasize througho...@Nishant<br />Absolutely, I tried to emphasize throughout the post that it applies to mobile context - and it's not like QWidgets on the desktop are going away (they are confirmed to be there in Qt5, even if in a separate module). It's not the merits of QWidgets that are a question, but their applicability to other than classic-desktop UX paradigms. Of course, Digia or somebody might decide if there is enough commercial interest to implement the desktop widget variant of components, and then we might want to revisit this, but that's another story...Attila Csipahttps://www.blogger.com/profile/11082060370940070595noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-41151955963366723602011-07-13T14:31:26.368+02:002011-07-13T14:31:26.368+02:00@Attila,
So at least we agree that QWidgets are th...@Attila,<br />So at least we agree that QWidgets are the only option for complex applications of desktop (which want no eye candy). May be in future QML would have enough features/power to replace every qwidget (menus, toolbars, mainwindows etc).nishanthttps://www.blogger.com/profile/07890601068084755033noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-42168621594588415572011-07-12T17:44:39.374+02:002011-07-12T17:44:39.374+02:00@Khertan
Well aware of that, a document/page/etc c...@Khertan<br />Well aware of that, a document/page/etc comparing (at least the various Nokia) components should be available shortlyAttila Csipahttps://www.blogger.com/profile/11082060370940070595noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-57339086248127042742011-07-12T14:09:56.743+02:002011-07-12T14:09:56.743+02:00"When you'll have as many QML hours under..."When you'll have as many QML hours under your belt as QWidget ones, it will be a different story :) "<br /><br />I hope :) But things will be faster if common items component have common api :)<br /><br />Currently the main headache is finding what is available on one which plateform and what isn't.Khertanhttps://www.blogger.com/profile/03572788291460748044noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-87388495488062747812011-07-12T13:46:26.933+02:002011-07-12T13:46:26.933+02:00@Nishant
QWidgets were already diverging intensely...@Nishant<br />QWidgets were already diverging intensely, see my point to Khertan below. It's too early to say just how successful the approach I outlined above will be, but QWidgets as a mobile solution were already failing/on the way out, as seen from the Maemo5 episode.<br /><br />@Khertan<br />1. The point of the whole post was that it's not the COUNT of UIs that is important but how difficult it is to make them. You make one UI, true, and it a) looks miserably or b) is #ifdeffed to hell or c) uses widgets not available on other platforms.<br /><br />2. Of course it's not ready for all use cases, it's a different beast altogether. I could say the same about QWidgets. QWidgets suck at ListViews, for example, which happen to be fairly common in mobile applications.<br /><br />3. Because you are a newbie to QML and an expert in QWidgets. When you'll have as many QML hours under your belt as QWidget ones, it will be a different story :)Attila Csipahttps://www.blogger.com/profile/11082060370940070595noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-67103473154112976672011-07-12T10:00:18.528+02:002011-07-12T10:00:18.528+02:001/ "Let go of the idea of monolithic, single ...1/ "Let go of the idea of monolithic, single UI codebases. Let. Go"<br />Why ? It works in most case, avoid duplicate code, and permit easy port. What we have NOW, different component by device/plateform/vendor which didn't share the same api. This force us to do one UI for all. It s require far more time to target multi device. <br /><br /><br />2/Let me give the feeling i have about QML and QWidget.<br /><br />QML is i think in it s current form not ready for primetime and all case use. Need many workarround for simple things (Text management miss features, problem with network request and 3G network (and stupid isp), ...)<br /><br />3/ "5 different UIs *faster* than you would write a monolithic QWidgets UI "<br />Hum, sorry but this isn't the case yet. It s take me far more time to do ONE UI than doing it in QWidget. I'll repeat myself, but things are still too much low level.<br /><br />4/ The feeling i have is : "Hey guys, it s a pain to do qwidget adapt magically to all plateform, we should do something more low level and so it s less thing to do for us".<br />Yep, i see now Qt as a low level plateform.<br /><br />Maybe later we will got component of a higher level compatible with all plateform qt is running on, but it s not the case yet.<br /><br />5/ I didn't like the syntax, but that is a personnal choice :)<br /><br />Anyway, this is the way to go, no choice for targetting harmattan device and for the futur, and i think the main rant is about that ... choice and changes.<br /><br />Let see what QtQuick 2.0 will bring.<br /><br />From someone who try to do cross plateform app working on desktop, harmattan, freemantle, and meego handset.Khertanhttps://www.blogger.com/profile/03572788291460748044noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-17033044492390050262011-07-11T18:02:55.367+02:002011-07-11T18:02:55.367+02:00I wish QML all the best and hope it does wonders f...I wish QML all the best and hope it does wonders for Qt. But not at the cost of QWidgets ( which has already happened ). But as you already said that readers like me should not comment, so i wont troll much.nishanthttps://www.blogger.com/profile/07890601068084755033noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-3327490179011296072011-07-11T13:41:26.646+02:002011-07-11T13:41:26.646+02:00@Jaffa well, qt is multiplatform. You can use plai...@Jaffa well, qt is multiplatform. You can use plain QML to develop perfectly portable apps for Meego and Symbian.<br />qt-components is also multiplatform technically. At least it works on windows, mac, linux, embedded devices.<br />The key here is UX. Good, consistent with OS UX can be platform specific only.dubikhttps://www.blogger.com/profile/06429903611913033332noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-21268872106916096762011-07-11T09:36:02.998+02:002011-07-11T09:36:02.998+02:00@Attila, "Making a component set for, say, We...@Attila, "Making a component set for, say, WebOS/Android/iOS/younameit is a *lot* easier that making a really well integrated QWidgets implementation or common API QML"<br /><br />Absolutely; but then I'm not the one whose (ex-)strategy depended on pitching Qt as the common factor for multiple platforns :-)Jaffahttps://www.blogger.com/profile/08324870780404366939noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-80596191896771050692011-07-11T00:24:21.464+02:002011-07-11T00:24:21.464+02:00@Jaffa As for the separate import - yes, that is a...@Jaffa As for the separate import - yes, that is annoying and I hope it goes away, though shortcuts in the form of "import Qt.labs.components.native 1.0" are already available and will be made more straightforward in the future releases.<br /><br />As for the cross-platform appeal... I would say it's more of an advantage than an obstacle in terms of porting. Making a component set (unconstrained by previous design/common API choices) for, say, WebOS/Android/iOS/younameit is a *lot* easier that making a really well integrated QWidgets implementation or common API QML.Attila Csipahttps://www.blogger.com/profile/11082060370940070595noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-74444028836084110632011-07-10T22:32:22.028+02:002011-07-10T22:32:22.028+02:00Now this *might* be right (I'm going to think ...Now this *might* be right (I'm going to think about it more), but this will be seen as another obstacle to Qt becoming a next-gen mobile platform. It certainly appears that this is just a rehash of the "we can't make QWidgets work on multiple form factors" argument (there, as you mention, it's the widely varying form factors, resolutions and capabilities that were the problem; but now those things are the broadly the same).<br /><br />The things which really differ between Harmattan, Maemo, Symbian and MeeGo are the styling (yawn) and the mechanisms for closing/switching apps. Is there really a need for the definition of an actionable Button being different and requiring a different "import"? No.<br /><br />Surely, the answer (if you weren't trying to retcon the poor decision decisions ;-)) is to give developers the choice. Make it easy to reuse the bits which are reusable but *encourage* the pattern of using different overall QML structures for different platforms (and provide an easy API, pattern and examples for that). IOW, have a common API and imports where it makes sense, and diverge where it doesn't.Jaffahttps://www.blogger.com/profile/08324870780404366939noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-22516002823545159422011-07-10T11:23:18.166+02:002011-07-10T11:23:18.166+02:00Thank you very much for posting this. QML truly br...Thank you very much for posting this. QML truly brings a paradigm shift that is initially hard to grasp, but when working with QML you either accept it or have to learn it the hard way.<br /><br />When I started developing for Maemo5, MeeGo Netbook, MeeGo Tablet, and WeTab at the same time, I also tried to make the UI as generic as possible. However, this will only give you headache. You have to accept that a UI is throw-away code and code duplication in the UI is not essentially a bad thing as long as it doesn't affect program logic.<br /><br />What I miss as developer are guidelines for good practise in cross-platform QML development. As it is now every developer struggles her/his own fight with this.Martin Grimmehttps://www.blogger.com/profile/05731836850583838971noreply@blogger.comtag:blogger.com,1999:blog-6092313305577856947.post-29940252170475818632011-07-10T02:56:31.803+02:002011-07-10T02:56:31.803+02:00I believe the major part of what QML/Qt quick and ...I believe the major part of what QML/Qt quick and Qt5 will introduce is what you described however it is NOT clearly stated by Qt/Nokia engineers. Maybe they are just afraid to be targeted :-) <br /><br />For the record, I am not against it because of my previous experience with cross-platform and ifdefs :-)Anonymousnoreply@blogger.com