Last weekend we started the release cycle for Qt 5.2 by branching our development code base into the stable branch. As a first step in the release cycle, the Alpha release of Qt 5.2 is now available. They are available from the Qt Project download area for the open source version and in your customer portal for Qt Enterprise users. The packages are source only and mainly for people already used to developing with Qt. Unless you feel comfortable compiling Qt on your own, you might want to wait for the beta which will come out within the next few weeks.

Apart from numerous bug fixes, Qt 5.2 offers a whole lot of new functionality. Here’s a short overview over the most important things

Android and iOS support

Qt 5.2 is the first Qt release to fully support development of Qt applications for Android and iOS. A lot of work has gone into supporting these two platforms, and now make Qt a great solution for development of mobile applications.

With the exception of WebKit, all essential modules are supported in both Android and iOS. This includes all of Qt Core, Qt Network, Qt Gui, Qt Widgets, Qt Qml, Qt Quick and Qt Multimedia. From the Qt add-ons Qt Sensors, Qt Graphical Effects, Qt Script and Qt SVG are supported. On Android a special Qt Android Extras module is also supported.

New modules

With Qt 5.2, we are also adding support for a couple of new add-on modules.

  • Qt Bluetooth is supported on Linux with Bluez 4.x and Blackberry
  • Qt NFC is supported on Blackberry
  • Qt Positioning is supported on all platforms using NMEA data, and using GeoClue on Linux
  • Qt Windows Extras Integrate with native code on Windows
  • Qt Mac Extras Integrate with native code on Mac OS X
  • Qt Android Extras Integrate with native code on Android

The last three add-ons contain platform specific additions, and complement the Qt X11 Extras module introduced with Qt 5.1.

Qt base modules

Qt Core got some new functionality, most notably the new QTimezone and QCollator classes. QTimezone is integrated with QDatetime and now allows proper handling of timezones. QCollator allows for locale specific sorting of strings, a long outstanding feature in Qt. Qt Network has received some improvements in its SSL handling. Qt Widgets has gotten lots of smaller improvements and a new QKeySequenceEdit class. Our Accessibility support has been greatly improved, with support for Mac OS X, basic support on Android and a set of public APIs that allow implementing accessibility support for custom widgets.

Qt Qml and Qt Quick

The QML engine has undergone some intensive work over the last 9 months, and the first results can be seen in Qt 5.2. Qt Qml is now using its own built-in Javascript engine and does not depend on V8 anymore. As such the QtJSBackend shared library has disappeared.

We are now using our own built-in engine instead of V8 for many reasons. One of the immediately visible benefits is that we are actually able to support Qt Quick 2 on iOS. In addition, the size of our Qml stack has decreased by around 5 MB and there’s one shared library less that needs to get deployed. Finally, it makes the whole stack a lot more maintainable and will thus allow us to improve the module at a faster pace in the future.

While the new engine is somewhat slower then V8 when it comes to pure Javascript performance, it allows us to optimise for the common use cases in QML and Qt Quick a lot better. Quite a lot of optimisation work is still ongoing now during the release cycle, and we expect to have comparable Javascript performance to Qt Script with 5.2.0. For QML bindings, we will see improvements for most use cases.

In addition, Qt Qml now supports File selectors to make it easier to customize your QML code depending on operating system and other variables.

Significant improvements also made it into Qt Quick. First and foremost, the module got a new scene graph renderer, that significantly reduces both CPU and GPU load for many use cases. The new Animator QML type offers animations that fully run on the rendering thread and won’t block or stutter even if your main thread has some long running calculations to perform.

The Qt Quick Controls have a couple of new Controls and features to offer. Switches and Busy Indicators got added, Table view now supports movable columns and extended selections. In addition, deployment has been greatly simplified.

Qt Creator

Last but not least, we are planning to ship Qt 5.2 together with a new release of Qt Creator, Qt Creator 3.0. The new Creator will feature an improved Android support, initial iOS support, extensions for multiple screens, a cleanup in the Creator plugin APIs and initial support for lldb.

Timeline

As you can see, Qt 5.2 will contain a lot of great new features and especially the support for mobile operating systems is a huge step forward for us. With the Alpha out, we are now in working hard towards providing a Beta as soon as possible. The Beta will again include binary packages. After the Beta work will go on towards the Release Candidate and Qt 5.2.0 final, which we hope to release by the end of November.

There will also be many talks about Qt 5.2 and its new features during the upcoming Qt Developer days in Berlin and San Francisco. So if you want to find out more, come and join us there.

I’d like to invite everybody to give 5.2 a try and report any issues you find back to our bug tracker.

Originally posted here: 

Qt 5.2 Alpha available