Qt 5.2 Released | The Best Qt Yet

We’re proud to announce that Qt 5.2 is now available. With the release of Qt 5.1 in July, we showcased the Qt for Android and iOS ports and laid down the beginning of some heavy improvements we have now done on Qt’s graphics capabilities. In the last 6 months, we’ve worked very hard to finalize this release and especially these ports.

Qt on Mobile Is Here with Great Opportunities

I am proud to say that Qt 5.2 fully brings Qt into the mobile space as a true player in the app development market supporting Android, iOS, BlackBerry, Sailfish/Jolla and Ubuntu Mobile. With this, Qt is the native cross-platform development framework with the broadest support of operating systems in the mobile space, complementing our even wider support of operating systems for desktop and embedded development. Qt 5.2 makes it very easy to take your existing desktop or embedded applications and bring it to mobile phones or tablets.

To show our commitment to being fully cross-platform also on mobile, we have an additional small christmas present for you. I am excited to announce that we now also have a Technology Preview of Qt for WinRT available. The preview is based on our development branch, and thus contains already a few of the new features to be found in Qt 5.3.

Qt on Android and iOS

Most of the Qt APIs are supported with Qt 5.2 both on Android and iOS. Since these are new platforms there are, however, some exceptions. Qt WebKit is not yet supported on Android, and can’t be brought to iOS due to App Store policies. But we are working on bringing an easy way to embed web content via Qt APIs to these mobile platforms in the future. In the meantime, we recommend the use of native web elements. Qt Bluetooth and Qt NFC are also not yet supported and will get implemented in a subsequent release.

All of our other APIs (including Qt Quick, Qt Sensors and Qt Multimedia) are fully supported on these platforms, allowing the development of a very wide class of applications with Qt APIs only. If something is not yet supported with the Qt APIs you can also always fall back to using some of the platform’s native APIs, where needed. For Android, we provide a convenience API for using the Java Native Interface (JNI) through the new Android Extras module. For more details, you can read the blog post about Implementing In-app purchasing on Android.

Developing Qt applications on mobile can be done fully within the Qt Creator IDE for Android, BlackBerry and Sailfish. On iOS, the Qt Creator support is still experimental.

With Qt 5.2, we are also introducing our Qt Mobile edition , which we announced in October at Qt Developer Days Berlin. Qt Mobile edition is a specially tailored package for mobile app developers that will help you target the fragmented mobile markets with one technology.

Besides new mobile platforms we’ve also continued working hard on the existing platforms. More than 1500 bugs have been fixed since the release of Qt 5.1.1. The desktop platforms have received a lot of focus with multiple improvements all around the libraries and by bringing in platform-specific support through new modules.

Great Improvements for the Desktop

Qt on desktop operating systems is the heart of Qt and has served as a stepping stone for the immense breadth of our operating system support throughout the years. That said a lot of improvements have happened with Qt 5.2 that are mainly targeting the desktop operating systems.

  • We’ve further improved the Qt Quick Controls for the desktop and made it easier to integrate Qt Quick into traditional QWidget-based applications
  • A lot of enhancements and bug fixes went into the Qt Widgets module
  • We added a new QKeySequenceEdit QWidget class making it easier to deal with user configurable key bindings
  • Accessibility is now fully supported on all desktop platforms (and Android)
  • Qt Windows Extras module: Integrate with native code on Windows
  • Qt Mac Extras module: Integrate with native code on Mac OS X
  • Improved time zone and locale support with QTimeZone and QCollator
  • Bluetooth is supported for Linux with Qt Bluetooth module
  • Many fixes to improve support for OS X Mavericks

All of these changes together make Qt 5.2 an excellent basis for your desktop application.

Revamped Qt QML and Qt Quick

A huge amount of things have also changed under the hood. The Qt QML module has gotten a brand new engine, removing our dependency on the V8 JavaScript engine. The new engine is built from the ground up for Qt and with QML as the main use case in mind. It supports an interpreted mode, and can thus run on CPU architectures where JIT would not be available or platforms such as iOS where JIT’ing is not allowed by App Store policies. In earlier Qt versions, the integration with the V8 JavaScript engine was difficult and led to performance issues when crossing the boundary between the Qt and JS code bases. This problem has now been resolved by the new engine, which directly uses Qt data types and can quickly interact with all Qt code.

As a net result of these changes, you should see some performance improvements for most QML use cases. However, as Qt 5.2 is only laying down the foundation, performance when executing lots of program logic in JavaScript will be slower than with Qt 5.1. Qt 5.2.1 will bring quite some additional speed improvements and we have great plans for the engine in Qt 5.3.

A lot has also happened on the Qt Quick side of things. The renderer for the Scene Graph has been completely rewritten delivering much improved rendering performance for applications and freeing up more CPU time for the application itself. In addition, every QQuickView now renders in a thread of its own, ensuring that multiple scenes don’t block each other.

Qt Quick has also gotten support for a new animation type called Animator, which allows you to run many animations fully on the rendering thread. These animations cannot be blocked even if the main thread would be heavily loaded doing some extensive calculations.

Qt Creator 3.0 and Other Goodies

Qt 5.2 ships together with the new Qt Creator 3.0. The new Qt Creator improves support on mobile platforms and improved stability of it's plugin APIs. This will create a foundation for 3rd party plugin extensions for Qt Creator, something we’re looking forward to expanding more in the future.

A couple of new modules and APIs also made it into Qt 5.2. Most notable are probably the support for positioning with the Qt Positioning module, Bluetooth support for Linux and BlackBerry with the Qt Bluetooth module, NFC support on BlackBerry, support for time zones and Unicode collation and the new Windows, Mac and Android Extras modules.

Qt WebKit has also received a major update now being based on a WebKit version from this summer. This includes many new features such CSS Blending, Geolocation, Web Notifications and a threaded garbage collector.

Qt in Action

We’ve deployed a couple of Qt Quick applications to the mobile marketplaces for you to try out. The “Quick Forecast” is a weather application using a web API and implemented completely with Qt Quick Controls. You can get it for Android from Google Play and for iOS from the App Store.

Learn More about Getting Started with the New Platforms

In the beginning of 2014, we are coming to meet you in person at a few locations around the world with our Qt Mobile Roadshow. The event is a full-day free developer event on how to get started developing cross-platform mobile applications with Qt. The locations and dates can be found here.

We are also organizing a couple of specific webinars around Qt for Android and iOS where you will get hands-on information on how to get started developing:

  • Qt on iOS, Hands-On – Dec 17th 2013
  • Multiscreen Development with Qt | Business Overview – Jan 9th 2014
  • Qt on Android, Hands-On – Jan 16th 2014

Please find the detailed webinar information registration from http://qt.digia.com/webinars.

Download & Try

You can download Qt 5.2 from our download page on http://qt-project.org or try the Qt Enterprise 30-day free trial from http://qt.digia.com. Qt Enterprise customers can access the Qt 5.2 release directly from their customer portal. If you are only targeting mobile, you can also download a 30-day free trial of Qt Mobile from http://qt.digia.com/Try-Buy/Choose-Plan/.

Thanks!

Last but not least, I’d like to thank everybody that has contributed to making Qt 5.2 the best Qt release yet. Many people from the community have worked very hard to make this release happen. I’d especially like to thank KDAB, Bogdan Vatra and the Necessitas project for their significant efforts and contribution to Qt 5.2. Also, I would like to extend a warm thank you to the KDE community that has contributed many interesting and valuable features, and our release team that did a lot of hard work behind the scenes pulling everything together into a releasable package.

We hope you enjoy Qt 5.2 as much as we enjoyed making it. Happy holidays!


Blog Topics:

Comments