New guides to help you develop with Qt Quick – faster!

You told us through surveys and direct feedback that the most valuable learning tools are those that give you practical hand-on experience – tutorials, examples, code samples. We’ve combined all of these and more into two brand new Qt Developer Guides just published at http://qt.nokia.com/learning/guides/. One of the guides helps you develop feature-rich applications for the desktop, and the other offers guidance on producing amazing apps for the 155 million+ Qt-enabled smartphones out there.

Both guides take you on a detailed step-by-step journey starting with a UI concept and progressing to a deployable application. They will give you a “training-course-experience” with the convenience of not leaving your own desktop.

1. Programming with Qt Quick for Symbian^3 Devices
This guide will familiarize you with programming with QML using Qt Quick Components for Symbian. It will walk you through the development of a Todo List application for recording daily and upcoming list of tasks to be completed, sorting them into several categories and managing them. It covers various aspects of Qt Quick and especially Qt Quick Symbian Components programming such as the page navigation concept, database storage and the use of animation to edit, create or display details.

2. Qt Quick Application Developer Guide for Desktop
This guide walks you through the implementation of a simple application called NoteApp inspired by the modern fluid UIs. NoteApp is a tool for managing daily notes which uses various advanced UI concepts including animations, database storage and Javascript usage for application logic rather than common well-known UI Elements used in desktop applications such as toolbars, menus and dialogs
The guides are available now in PDF, ePub and QtHelp formats.

> The focus of these guides is on how to develop complete
> applications in QML with some extra JavaScript without any
> C++ as well as enhance the look and feel of your applications.

Can you please add a good guide guide for exactly the opposite – combining C++ and QML for more mature applications, where C++ is used for the program logic, and QML is used for the user interface. This guide will be very useful as well. Thanks.

I don’t like the idea behind QML. I’m developing Qt because I want to code C++ and have native output. If I wanted JS, I would choose HTML5 + JS, not QML. Ok I know that I can use C++ with QML, but this violates the idea behind QML. Currently, I’m staying with Widgets.

That’s great news, but I have the same request for what I’m missing in the documentation as Shmerl. I’ve spent a reasonable amount of time with the existing documentation to take the entry barrier.

I think this learning tutorial is perfect to get a step into QML, and helped me as well, but I (and probably some other developers) would appreciate if there was a guide to come about QML UIs and C++ core.

It’s really great to get some new QML tutorials. I’d like to second the request of Shmerl and STiAT. A typical scenario is to have QML for UI and the main application in C++. I’d for example be interested in how to switch between QML UI (e.g. a menu) and C++ Qt application graphics (e.g. some plotting/animation).

I also appreciate the ePub files! However, it would be great if you could check on the resolution of the embedded screenshots. They are pretty much useless the way they are now.

I don’t quite understand the N9/N950 questions. I wrote a QML app for N900 and Linux/Windows/Mac desktop. The QML part is for N900 and desktop identical. When I got a N950 it also just worked without a line of QML code changed. Do I overlook something? I just don’t see the pressing need for a N9 specific QML guide.

+1 for David. C++ and HTML5 (and mixes thereof) handle most of the use-cases I can think of. With CSS3 effects rapidly evolving, why tie yourself to QML when you can do HTML5 and actually be *more* portable?

@David, @Flavio, using C++ and QML for your application does not violate any idea behind QML. In fact you should think of QML as a new modern approach to developing UIs using great and convenient set of elements. The fact that QML has great integration with Javascript and you could potentially write your app without any C++ does not necessarily mean you should not use C++. Certainly, I would switch to QML for the implementing UIs now that Qt5 is coming.

@psaraci well, actually it does violate the “idea”. I’ve seen too many posts of qt devs saying that they are expecting their devs to move to QML + JS. Sorry but having C++ as some kind of backward compatibility or obsolete language is not acceptable for me at the moment.
Also QML is more suited for JS than C++, and I want a technology which primary target is C++ and not any other language.
Also don’t misunderstand me, I have no problem with declarative ui. I even think that it’s the way to go. I have experience with XAML(WPF and SL) and I love it, but I wouldn’t invest one minute of my time in QML. I wouldn’t have worked with neither WPF nor SL if MS provided JS as it’s primary dev language and not C#.
So once again, JS is good with HTML5 and not with C++.

@David we encourage devs to move to QML since that is the new approach to develop UIs and while at it using JS is recommended but nobody is saying that C++ is for compatibility only and certainly no such thing as C++ being obsolete.
C++ is here to stay with Qt and have in mind that QML is derived from Qt/C++ using the Meta Object System of Qt.
It totally depends on your project’s requirements and on you if you want to use C++ with QML or just QML+JS or a combination of QML, C++ and JS.

Have a quick look the developer guides, try the source code and see how powerful QML is and what you can achieve with it.

Cited: “…we encourage devs to move to QML since that is the new approach to develop UIs …”
LOL. In your dreams.
I guess C++ will survive Nokia/Trolltech; even in 10 years it might still be one of the five most widely used programming languages.

QML won’t get much attention; there is too much competition in its niche. And not even the future devices of your own company will support it.

But what should be inferred by the lack of a more reassuring response like “What a great idea! A new improved QML C++ tutorial showing some cool graphing!” (considering the qml-to-cpp discussions and how obviously JS is preferred) ?

I am now worried about starting my project with qml since C++ is apparently being ignored.

@Victor, No need to worry, QML and C++ are safe and here to stay.
There is no such thing as C++ being ignored, Qt is a C++ framework and it will always have a great support for it, by default!

There is already good documentation for QML and C++ and if you check carefully Qt’s SDK official documentation you will find lots of content and tutorials and see how well, easy and straightforward is to work
with C++ and QML.

These new developer guides are here to help you get quickly started with QML language.

I understand that there is a documentation, but tutorials have a benefit of easing the learning curve. What I’d like to see is a good beginning tutorial for scenario of QML UI & C++ backend which is in my perspective recommended to everyone.

Of course C++ doesn’t violate QML idea. It’s a good idea of separating the declarative UI, from the application logic. Consider JavaScript and C++ as supported languages for logic, and QML as declarative UI. Mozilla made the same thing with XUL for example. But, please don’t discourage users from using C++, saying that JavaScript is advisable (even though you say C++ is here to stay).

Thanks for the suggestions everyone – it’s great to get such an interest and discussion.
When we had the idea (more accurately the idea for the guides came from community feedback!) we needed to take a first step, so we started with Qt Quick. It is relatively under-served with good documentation compared to other areas – there are obviously already many years-worth of documentation/ tutorials / code samples for C++.
These guides will definitely be built upon, so your ideas and suggestions are very valuable. Keep them coming – and please also use the feedback forms (links in my original post).

Thank you, thank you, thank you, thank you, thank you,…., thank you… for creating such guides… they are really helpful in order to get a first approach on how a real application made out of the different bricks that are composing the Qt landscape can be made.

You can use Remote Compiler which allows you to compile Symbian apps on Linux. I do use remote compiler daily and it works wery well. I am developing Qt apps for Symbian and my development system runs Debian GNU/Linux.