Quick Check: Application Development with Qt Creator

January 10, 2014

alt text

This book by Ray Rischpater about development with Qt Creator recently became available. It is published by Packt Publishing and is available at this page.

It greets the reader with strawberries on the cover, which might be a reference to metaphorical fruits that will be borne after you read this book and dive deeper into development with Qt. Or maybe this picture was chosen because it’s cute.

The cursory look at the contents suggested to me that the book is targeted for beginners with no experience in Qt, Qt Creator or IDEs in general. Topics covered are rather typical – getting and installing the software, introduction to specific tools (UI designer, translator, profilers, documentation assistant), technologies (Qt, QtQuick), workflows in applications and finally some tips and tricks for everyday use. Bonus points here for the chapter about development for mobile platforms.

What’s good here?

The book makes reference to good software development practices. Don’t write the UI – design it with Qt Designer; don’t cram all functionality in one class – modularize it; don’t be ignorant about other spoken languages in the world – make your software translatable; don’t optimize without measurements – your intuition is very often plain wrong. These are all explained in clear, real-world (albeit simple) examples using Qt and QtQuick.

The chapter on mobile platforms describes the differences between mobile and desktop apps and includes information on how to set up an environment in which to develop Android apps with Qt Creator. This is great, given how big the mobile apps market is nowadays. The environment setup is mostly targeted for Windows, which I find is a slightly awkward development platform, but users of other operating systems might find this part useful as well. Obviously it does not go deep into Android concepts, architecture or its API – such matters are for a different book.

The book also strikes a good balance in introducing some important concepts like signals and slots without getting too deep into gory details. This might be annoying for more experienced developers, who know the ins and outs of what’s described in “code interludes” there – they should probably just skip these sections if they read this book.

Every rose has its thorns

While the book is good overall, there are some nits to pick which could have been caught in review. They are mostly harmless – they won’t hang your computer or blow it up, but it’s better to be aware of them. Some can even be ignored.

What I didn’t like is giving links via the link shortener “bit.ly“. In some cases their use is a bit nonsensical as, for instance, typing http://valgrind.org in a browser is way simpler than having to type http://bit.ly/14QwiQZ. Also, in some cases, shortened links actually hide some inconsistencies like, for instance, directing to documentation about Qt4’s QtQuick1 when the article describes Qt5 QtQuick2.

The examples the author uses are a little more realistic (e.g. calculator, factorial computation) instead of abstract ones involving foos, bars and frobnicating. But in these cases, the author has to be doubly careful to avoid domain mistakes. For instance, a statement at the beginning of the 2nd chapter states that the factorial of 0 is 0. That’s not true (it’s 1). Not a huge mistake in this context, but one worth mentioning as the author is described as having a background in pure maths.

Frankly speaking, I have rather mixed feelings toward books about specific software because of some common problems such books have. One of them is imminent obsolescence. For instance – the book uses Qt Creator 2.8, but quite recently version 3.0 was released. That, in my opinion, might give a potential reader the impression of being already outdated. Regardless of whether the jump from 2.8 to 3.0 actually is a major change or not (in the case of this software, it isn’t), the damage is already done.

Another problem is the lack of troubleshooting. I had problems with getting the designer and profiler for QML working under Fedora 20. I managed to have them working under Windows 7, although not fully. For instance, the profiler didn’t give me full information about which line executed the most. Instead I got “source code not available”. It would have been helpful if the author had provided some information on how to deal with typical problems, as well as where to report them, such as Qt Creator’s mailing list.

Conclusion

The book conveys information and ideas in clear language, code listings are easy to understand and screenshots provide additional useful help. I recommend this book for everyone who wants to start developing in Qt with Qt Creator, but does not know how to start. Actually, you can even get this book for free in our…

Give-away contest!

[EDIT: This contest is now closed.]

…which Packt Publishing organized together with us. We have three digital copies of the book to give away to three lucky winners. To be in with a chance of winning, read on…

Qt Creator is a C++ IDE. When speaking of C/C++, it has been said that “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.” To enter the contest, leave a comment on this post describing a time when you shot yourself in the foot when learning a new programming language. We’ll pick our three favorite entries and each will receive a free digital copy of “Application Development with Qt Creator” (so make sure you include the correct email address when you comment).

The contest will close on Friday, 24th of January, 2014 at 12:00 CET (Central European Time).

About the reviewer

My name is Krzesimir Nowak. I’m a senior software developer at Endocode with four years of professional experience in C with GObject and C++ with Qt.