A look at Qt5.2

published at 12.12.2013 17:17 by Jens Weller

Suddenly a wild Qt5.2 appears. Digia and all the contributors to Qt have done once again a great job. With Qt5.2 Android and iOS are now supported, QML runs without V8 JavaScript engine on its own engine. So, some great changes come to Qt with 5.2.

New Stuff in Qt5.2

I'll get back to the mobile plattforms, but first lets take a look whats new in the package for Qt in general. Biggest new change for most platforms is, that there is now new Platform Extras Modules plus a few new othe modules for Qt for interfacing with native platform code:

This enables Qt to interface with the current platform its running on, for example for Windows this brings the ability to get the Window Handle for any Qt Window, and there is better integration with WIndows available as you can access features introduced with Windows 7 such as Aero Peek or and progress indicator on a Taskbarbutton. The Qt Android Extras Addon allows you to easily access JNI calls and Intents on Android. The Mac Extras let you access native Abilities of Mac OS and iOS.

Qt Positioning module supports now NMEA for all plattforms. There is now Bluetooth support for Linux and BlackBerry. Also QML was improved, Qt 5.2 has its own engine running the javascript part of QML very close to the Qt Code, and acutally directly accessing shared QObjects. This replaces the V8 engine, there is an expected update to Qt5.2.1 which will improve the performance or the new JavaScript engine.

Also there is a new version of QWebKit now available, its not yet based on Blink, but uses a newer WebKit Version from Summer 2013. For QWebkit this is a major update, and brings a lot of new features, such as a threaded garbage collector.

QtCore has now support for timezones, QTimeZone and QCollator are new classes coming with 5.2 for this.

There are a lot more improvements coming to Qt with 5.2, a full overview gives you the New Features in Qt 5.2 wikipage.

Qt on mobile

4 years ago I blogged in german about C++ on mobile platforms, and why its acutally a very good idea to use it. Now a few years later, we see that the mobile space is dominated by Android, which already had 4 years ago the NDK for writing apps(games) with C++. And with Qt 5.2 there is Android, BlackBerry, iOS and Jolla as fully by Qt supported mobile platforms. Where for BlackBerry and Jolla one has to say that Qt is a first class citizen, choosen by the company for making apps. But both plattforms also have their own UI Frameworks written in QML, BlackBerry even has its own QML Stack with Cascades.

So, today Qt has landed on the shores of Android and iOS, adding two greatly used Plattforms to the already existing Desktop platforms. Qt is still in its early days in moving to Android and iOS, so future versions will improve the support further, but for example on Android its already possible to access intents and even in app purchases work! So, with Qt Quick being now a thing JS layer above Qt and C++, the perfect combination of a modern UI and the speed of C++ is finally available. To get started on Android, my Gold Sponsor KDAB has released a very good starting guide for Qt on Android. Also today there has been a new Technical Preview for Qt on WinRT released.

A few days before the release of 5.2 Digia also announced that the Qt for Android port is now also covered by the KDE Foundation, and hence free software as Qt already is for Windows, Linux and Mac.

Also new is QtCreator 3.0, which now has a lot of improvements, especially for mobile development. Also new refactoring functions and LLDB support has been added.

Qt and its bright future

With Qt5.2 full support for two new major platforms has come, and will continue to improve. Digia and the Qt Project have brought with Qt5 a lot of improvements to Qt, Qt Quick is on its way to become a true multi platform and modern UI Framework. Also, with Qt coming to Android and iOS and already being on BlackBerry and Jolla, the roots of Qt mobile finally get the chance to power a whole world of apps. Also Qt5.3 is already being worked on, it is the plan to release every 6 month a new, improved version of Qt, so Qt will continue its rapid developement which it already had with the Qt4 series. Also, Qt is one of the few C++ Frameworks that has added C++11 support, so your own code can very easily profit from the many new C++11 features available. So, my wish is to also see C++14 support on all major platforms with Qt5.4. =)

Join the Meeting C++ patreon community!
This and other posts on Meeting C++ are enabled by my supporters on patreon!