📜 ⬆️ ⬇️

Qt News, June 2017 - May 2018

What's new / appeared in Qt for half a year almost a year from the last article . Releases 5.9 and 5.10, as well as new tools, add-ons, platforms and the transition to a subscription licensing model.


Qt Releases


I would like to write about the news more often than once every six months a year, but it turns out how it turns out. I generally started writing this article in January, but I managed to finish it just now.


Today the content is:



Conferences and Exhibitions


Qt Contributors Summit 2017


This is a Qt developer conference. Not only those who work in The Qt Company (there were even less than half of the participants), but in general everyone who participates in the project.


In 2017, the Qt Contributors Summit was combined with the Qt World Summit 2017 , and was held in Berlin. Program and session summaries are posted on the wiki .


This year it was decided to hold a conference in Oslo, that is, the World Summit this time will be held separately.


Qt World Summit 2017


The event (conference), which organizes The Qt Company. In 2017, the summit was held in Berlin. The number of visitors was a record - about 1000 people (in the past there were 800?).


The year is not specified in the address of the event page ( https://www.qtworldsummit.com ), so, I suppose, this link will soon start pointing to the 2018 summit ( already indicating ), and 2017 will go somewhere to the archive ( no, just Delhi somewhere ). But not yet left ( already left ) - you can see the program of the conference and the participants of the exhibition. It was also possible to download the summit's mobile application written in Qt (more precisely, on V-Play ), and marvel at how it slows down and crashes on everyone, thanks to the development partners. Why we ourselves that year can not write an application for our own summit - is unclear.


All speeches from the conference are published on YouTube.


Playlist list
  • Keynotes :
    • Qt Design Principles and Roadmap, Lars Knoll, The Qt Company;
    • Modern C ++, Herb Sutter;
    • Trends in Software and Business, Igor Beuker;
    • One Hundred Languages, Linda Liukas, Hello Ruby;
    • How Do You Measure? Steven Goldfarb, ATLAS experiment, CERN;
    • Welcome to Qt World Summit 2017, Juha Varelius, The Qt Company;
    • Game Engine Evolution: From Tech to UX, Alex Montgomery, Amazon Lumberyard;
    • An IDE for Embedded Devices, Justin Howard, Qualcomm;
  • Business :
    • Cut, QML, Thomas Boutroue, Independent Qt Expert;
    • The Evolution of the LGPL License Agreement, Paul Criswell, Independent General Counsel;
    • Applying Spatial Analytics for Unlock, Esri;
    • Qt vs. Web - Total Cost of Ownership, Burkhard Stubert, Embedded Use;
    • System-on-Modules HMI and M2M solutions development, Rimac Automobili, Toradex;
    • Mobile, Roland Vienna, CaseIC-SYS Informationssysteme;
    • First experience with Qt for Mobile: our journey, Bogdan Ogrean, FORTecH;
    • One developer, Three products, Three platforms, Nuno Filipe MagalhĂŁes Santos, Imaginando;
    • Investing into Software Technologies, Petteri Holländer, The Qt Company;
    • Interactive DOOH software with Qt libraries, Ionut Alexandrescu, The Qt Company;
  • App Dev :
    • Take a walk on the PySide, Friedemann Kleint, The Qt Company;
    • A cute app deserves a clean architecture, Marco Piccolino, Maply;
    • Improve your productivity with Clang tools. Olivier Goffart, Woboq GmbH;
    • RESTful API description languages, Alexey Rusakov;
    • QtBluetooth on mobile devices - A dragon guide, Mathias Hasselmann, KDAB;
    • Technical Tips and Examples for Development & Testing, Christian Feldbacher, V-Play;
    • Introduction to User Experience Design for Developers, Jeff LeBlanc, ICS;
    • Test coverage of Qt C ++ and QML, Harri Porten, froglogic;
    • The Pre-User and the Unified User Experience, Jeffrey Brendecke Software Services;
    • Android & iOS - Maciej WÄ™glarczyk, GameDesire;
    • No Limits: How to make more complicated mobile business APP, Ekkehard Gentz;
    • Inside The Qt Object Model, Simon Hausmann, The Qt Company;
    • QML For C ++ Developers, Bo Thorsen, Viking Software;
  • Embedded :
    • Using Qt to Build Next Generation Intuitive High End Cameras, Richard Röjfors, Hasselblad;
    • Qt Wayland Compositor: Creating a multi-process user interface, Johan Helsing, The Qt Company;
    • Jouko The Qt Company; Accelerating Time to Market for Embedded Device;
    • Gestures Handling in Qt, Bo Thorsen Viking Software;
    • Marko Finnig, The Qt Company;
    • KNX in the IoT world, Dries Verbrugge, KNX;
    • Using Virtual Keyboards on Qt Embedded Devices, Jan Arne Petersen, KDAB;
  • Graphics and 3D :
    • Integrating OpenGL with Qt Quick 2 applications, Giuseppe D'Angelo, KDAB;
    • Integrated out of process graphical content into a QtQuick scene, Giulio Camuffo, KDAB;
    • Creating Qt, Andy Nichols, The Qt Company;
    • Breathing life into your applications: Animation with Qt 3D, Sean Harmer, KDAB;
    • Modern Graphics APIs in Qt: Vulkan and friends, Laszlo Agocs, The Qt Company;
    • Earth rendering with Qt 3D, Paul Lemire - KDAB;
    • Qt in Use in Fortune 500 Companies, V-Play;
    • Qt 3D as a Runtime Enabler, Laszlo Agocs, The Qt Company;
    • What's new in Qt 3D? Sean Harmer, KDAB;
    • Creating 3D User Interfaces with Qt 3D Studio, Sami Makkonen, The Qt Company;
    • Interacting with 3D content, Mike Krus, KDAB ;
  • Medical :
    • Technical Overview of Ionut Alexandrescu, The Qt Company;
    • IoT, Jereme Givens-Lamothe, DocBox;
    • The Present and the Qt in the Medical Industry, The Roger Mazzella, The Qt Company;
    • Imaging Tissue Architecture: The Next Frontier in Battling Cancer, Michel Nederlof, QIS;
    • Communicating with Thoughts, Matthias Hohmann, Max Planck Institute;
  • Technical Deep Dive :
    • QObject Deep Dive, Bo Thorsen, Viking Software;
    • Qbs - Jake Petroules, The Qt Company;
    • QtLocation 5.9: tilted maps to pluggable engines, Paolo Angelelli, The Qt Company;
    • Pointer Handlers for Qt Quick, Shawn Rutledge, The Qt Company;
    • QStringViews, QStringViews everywhere, Marc Mutz, KDAB;
    • Multithreading with Qt - Giuseppe D'Angelo, KDAB;
  • Industrial Automation :
    • QtWebGL, Jesus Fernandez Prieto, The Qt Company;
    • Securing Qt based Linux Devices, Maciej Halasz, TimeSys;
    • Device Tailored Compositors with QtWayland, Andreas Cord-Landwehr, CLAAS E-Systems;
    • Practical Qt Lite, Frank Meerkötter, basysKom;
    • Boot Time Optimization for Qt-powered Devices, S.Agner, R. Avila, Toradex / The Qt Company;
    • Designing the Internet of Things with Microsoft, Sylvain Ekel, Microsoft;
    • QtKnx: The Qt Company Module;
    • Qt and Mqtt, Maurice Kalinowski, The Qt Company;
    • How CoAP standard makes you talk with Qt, Adrien Leravat, Witekio;
    • LPWAN will make the IoT Revolution Real, Massimo Santoli, Gimasi;
    • ChargePoint EV Charging: Matthew Hungerford, Chargepoint;
    • Qt for Automation, Lars König, The Qt Company;
    • Intro to the WebOS QtWayland Compositor, Florian Haenel, LG Electronics;
  • Automotive :
    • Functional safety with Qt and Qt Safe Renderer, Tuukka Turunen, The Qt Company;
    • Plugin-based IVI Architects with Qt, Krzysztof Krzewniak Vladimir Moolle, ICS;
    • Nazar Babik, Viking Software;
    • QtWS17 - Hirotaka Suzuki, sdtech;
    • Automotive navigation with Mapbox GL and QtLocation, Bruno de Oliveira Abinader, Mapbox;
    • QML-driven HMI Architects for Rolling Embedded Devices, Christoph Sterz, KDAB;
    • GammaRay - looking at your Qt application, Volker Krause, KDAB;
    • Sascha Klement, Gestion;
    • Modbus with Qt, Morten Winkler Jørgensen, Viking Software;
    • Future of Vehicle HMI Systems, Takayuki Tanabe, Panasonic ITS;
    • Behind the scenes of a car show: Rapid UI / UX prototyping, Alex Hilliger, Daimler;
    • Carrying Out The Simple Way, MĂĽge Kural, Eteration;
    • QtIVI: Integrated and Testing vehicle functions with Qt Automotive Suite, KDAB;
    • After the Year of Hacking, Johan Thelin, Luxoft;
    • Race to digital cockpits - win with Qt, Tero Marjamäki, The Qt Company.

At the exhibition in the center of the hall showed new developments:



Around there were stands of partners and customers who showed something of their own. For example, Mercedes-Benz rolled up such a concept car .


Starting from 2018, there are now several summits and they will be held at different times and in different places. This year there will be 2: American (Boston) and European (Berlin) - both towards the end of the year. Further, it is planned to add a third one for Asian countries (possibly in Tokyo).


Qt on Embedded World 2018


Like last year , we were at the Embedded World in Nuremberg.


Of the interesting demos can be identified:



What's new


Changes in commercial license


Since January 2018, Qt licenses for all products have switched to a subscription model (term-based), that is, you can no longer purchase a "lifetime" license. In general, for those who previously “extended” the license every year (for updates and support), nothing really changed, because in fact it was already a subscription model. But there is a difference: previously it was possible not to renew the license and calmly continue to develop / distribute your product (the license itself is for life), but now the terms of the license agreement prohibit it - you must have at least one active subscription, otherwise you can’t either develop nor sell a finished product. What a twist!


I imagine that you want to tell me about the license-subscriptions, I myself said all this more than once to the developers of certain applications ( Ulysses , for example), but it was not I who invented it, I only deliver the news. But in general, for the framework, the subscription license looks more or less justified (compared to a subscription to a text editor).


On the positive side, if you acquire Device Creation, then the Application Development license is now included. In addition, earlier for RTOS (real-time operating systems) there was a separate price for each, and now everything is included.


All this is reflected in the new license agreement ( License Agreement version 4.0 , which by the way is no longer divided into separate agreements for Application Development and Device Creation.


Changes to the site


Work on the "improvement" of the website does not stop for a minute, and the length of the list of connected third-party scripts is already more than a kilometer. The animation of the whole row allowed us to achieve the utilization of the user's processor at the level of 80-90% and the corresponding power consumption, which, however, did not go unnoticed by the visitors, because now there is a heroic struggle to optimize all these beauties.


If you wondered why some sections of the site are on the www subdomain, and some on www1 , then this is because the site uses two different CMS. Well, because that's it.


Somewhere in May 2017, another effective manager decided to hide the Open Source downloads far away and put more Buy Qt buttons ("buy a license"). They hid so well that we even began to send letters asking " Why did you remove Open Source ?! ". Fortunately, having met criticism from both the Open Source community and within the company, after some half a year, this change was reviewed and returned almost as it was.


A new section has appeared - Qt Resource Center , such an aggregator of various resources (articles, videos, "success stories", etc.), divided into categories and search. Now you can, for example, once get all the tweets of the official account (but why) .


Releases


Qt 5.9


May 31, 2017 Qt 5.9 is released . It is the next LTS release after Qt 5.6 - with long-term support (3 years).


The article on OpenNET already has a great overview.


By the way, this seems to be the first release since Qt 4.7, for which more than three corrective (minor) releases were issued (current version 5.9.5).


And starting from this version, the corrective (minor) releases now again do not update the current one, but are set separately:


Qt Corrective Releases


Qt 5.10


December 7, 2017 was released Qt 5.10 .


And again, an excellent review of the release in an article on OpenNET .


Addons


In addition to the usual (basic) licenses (Application Development and Device Creation), add-ons will now appear. In general, they wanted to do something like a store of add-ons / plug-ins (like qpm , only official), but the idea has not gone further, therefore they will simply be added to the installer.


If we take the scheme from the previous article as a basis, the new one looks like this:


Qt licensing scheme


The already complicated licensing structure has become even more complicated. If you try to explain everything briefly, then add-ons are not included in the "standard" licenses and are sold for extra money. Considering that not everyone is interested in reading about commercial licenses, I will not describe in detail (besides, I need to give the sales department work as well).


If you use Qt under Open Source, then nothing has changed for you - just add new libraries and tools.


Qt for Automation


Qt for Automation is the first addon announced in August 2017 . It is a package of libraries for building solutions for the so-called Industry 4.0 and M2M .


Currently (Qt 5.10) add-on includes:



With Qt 5.11, OPC UA should appear, then CoAP and others. In addition to the libraries themselves, a package of installation / configuration / training services is also provided.


Qt for Medical


While more promo than the real product / addon. Well, of course, it is planned to add functionality specific to the medical industry, for example, working with the DICOM format (although there are already third-party implementations specifically for this format).


In fact, for medicine-related projects, certification is more important than features, and therefore we are now part of such associations and alliances as AdvaMed , Qmed and MassMEDIC . I am far from this industry, because of the real benefits of joining these alliances I can not say anything.


Qt 3D Studio


In October 2017, the source code for Qt 3D Studio was finally published ( an article on OpenNET ). Why they did not publish immediately after receiving them from Nvidia - because everything was written there on MFC, and we decided to port it to Qt first.


A month after the publication of the source released version 1.0. It still uses Nvidia's own 3D engine for authorship, but the work on transferring it to an already existing Qt 3D is almost finished (because it’s enough to produce engines).


Qt 3D Studio and its runtime are available under both a commercial license and GPLv3 (no LGPLv3). The studio itself is free, but using its runtime in your commercial application increases the cost of distribution licenses (if any).


Qt Design Studio


In general, this is still a half-secret project, but since this video was published on the official channel, it turns out to be not very secret.


But just in case, without special details. Sometime soon there will be an official announcement (in a couple of weeks?) And the first public beta (in June?).


Qt Safe Renderer


The Qt Safe Renderer is a certified (IEC 61508 and derived standards of functional safety ) graphics renderer. In fact, a separate application that renders critical GUI elements regardless of the main application. And if the main application "will die", then these elements will continue to be displayed on the screen.


Obvious areas of application: automotive and medical industries, where the main application hangs at a speed of 200 km / h or during a surgical operation is fraught with negative consequences.


An example of use in a digital instrumental cluster (dashboard) of a car:


Qt Safe safe renderer


If interested, I can write a separate article with a "live" example on hardware running QNX (at the end of the article there will be a survey). But just want to say that Safe Renderer in Open Source will not fall and will be available only for money (and very rather big).


Roadmap



Qt on microcontrollers (MCU)


It is often asked if Qt can be used for software development, and particularly GUI, on microcontrollers.


So we conducted a study that ended with porting Qt to the RTEMS real-time operating system and optimizing Qt build to run on STM32F469, STM32F746 and STM32F769 microcontrollers.


On the results of the study recently published a post in the official blog, and by the way, the original of this post was actually written in Russian, so that with minimal effort it can be published on Habré (this will also be a poll at the end of the article).


While there is a collection of feedback from customers, who would like to port where and what, and then further development will be planned based on wishes.


Jobs


This year there are not so many vacancies as in the past, but the search for new employees continues . So if you are interested in something, you can write to me, and I will tell you more.


For example, a sales engineer is wanted for a Berlin office for more than a year and a half (seriously) - this is a person who understands Qt and can talk to people (customers) and answer their technical questions. Already so desperate to find that we take anyone we welcome any candidates. By the way, not the worst way to start a tractor, although I guess I shouldn’t say such a thing. Complicated by the fact that since the position in Berlin, it is very desirable knowledge of more and German.


In total, about 130 people were hired in 2017. People come from all (including Russian-speaking) parts of the planet, there are no racial / religious / sexual preferences / prejudices (except that the position of effective managers is taken only more often by the Finns ( just kidding) ).


Conclusion


If you want to know more about something, write comments, I will try to answer myself or find out from those who know.




Addendum # 1 - About Qt Quick Compiler


At first, Qt Quick Compiler promised to give to Open Source with the release of Qt 5.8. True, it said " ... integrate the Qt Quick Compiler functionality ", that is, as if not Qt Quick Compiler itself, but only its functionality. Looking ahead, this is not the case at the same time.


Qt 5.8 introduced a QML caching mechanism, which was announced as a "replacement" for Qt Quick Compiler. Qt Quick Compiler itself did not go anywhere and was available for holders of commercial licenses in both release 5.8, and 5.9, and 5.10. At 5.11 the situation will change, more on that below.


Why is QML caching called a replacement for the Qt Quick Compiler? Because it generates bytecode and adds it to cache files ( .qmlc for QML and .jsc for JavaScript), and this bytecode turned out to be more "productive" than intermediate (untyped) C ++ code that was generated by Qt Quick Compiler. So QML caching is really a replacement (and good) for the "old" Qt Quick Compiler.


Now about Open Source. The source code of Qt Quick Compiler will not be open, because the management has decided that in this case people will be able to port it to the old versions of Qt, where this component was available only to commercial users who might be upset about it.


Why did I call the Qt Quick Compiler "old" and generally use the past tense? Because it ceases to exist as a generator of C ++ code from QML / JS, and in Qt 5.11 it will be available, firstly, to all users, not just commercial license holders, and secondly, its implementation will differ significantly from the current one, and it will no longer generate C ++ code, but will generate the same bytecode as QML caching.


What then is the difference between the "new" Qt Quick Compiler and QML caching, since they give the same byte code? Retelling briefly the release documentation 5.11 , the "new" Qt Quick Compiler provides the following features that QML does not have caching:


  1. The initial "caching" of QML does not occur with the first launch of the application, but during the assembly of the application, as an additional compilation step. That is, the first start of the application will already be "optimized";
  2. Thanks to this, QML syntax errors can be caught while assembling an application, rather than getting them in runtime;
  3. Among the files of the application, open text QML will not roll, which, although weak, still contributes to the security of the application.

Simply put, this "new" Qt Quick Compiler repeats the functionality of the "old".


Well, respectively, it would not make sense to use both QML caching and Qt Quick Compiler at the same time. More precisely, you and this will not work, because they are mutually exclusive. QML caching works out of the box in an implicit way, and Qt Quick Compiler needs to be explicitly activated, with the result that the caching mechanism simply “shuts down” (which is logical). And by the way, of course, now between them there is no difference in performance, since in essence, both mechanisms do the same thing.


Why then just not always use Qt Quick Compiler, what's the point then in QML caching? As stated in the documentation, Qt Quick Compilers will have a number of restrictions that are not suitable for all projects, because some projects will rely on one mechanism, and some will be able to use another.


Another difference is that if using the "old" Qt Quick Compiler you could not use JIT (because the result of its work was C ++ code (although there is also a second bottom)), the "new" Qt Quick Compiler and QML caching can be used also JIT for highly demanded code fragments. In short, before Qt 5.11, JIT did not give anything over the already "compiled" QML, but starting from 5.11 it will be.


By the way, it turned out that we are just preparing an article on this topic, so that soon you can read in the official blog (by the way, there is RSS there) a more competent / correct explanation of what is happening.


Pro style iOS for Qt Quick Controls 2


As such, the style was more or less ready back in February 2016:


QQC2 iOS style


But he did not get into the release for a number of reasons, including legal ones.


Apple is absolutely not against applications that do not look "native", that is, you can create any madness and everything will be fine (except for the number of stars from your users). But as soon as it comes to the "native" style of iOS, then everything should look perfect and strictly correspond to the guidelines.


Designs / guidelines for the Material (Android) and Universal (Windows) styles are not only shared (they told me so), but also not limited to any single platform, and Google, like Microsoft, on the contrary, strongly encourages the distribution of their designs to all platforms , not only mobile, but also desktops with the web, including competitor platforms. All this can not be said about iOS.


Well, therefore, any attempt to "recreate" the style of iOS will only be an imitation and imitation of the original style. Speaking of "look and feel", the part that "look" is already difficult enough to recreate, but the part "feel" is generally unrealistic. That is, the GUI may and will look like "native", but the first swipe / scroll / pinch will give out a "fake".


Also, as a result of the study, it turned out that this is fraught with exactly the same legal problems - if we give our style to the “native” style of iOS, then Apple can say something unpleasant. Plus, applications from our customers may be rejected on the App Store due to non-compliance of UX guidelines.


In addition, another interesting point surfaced. Since our implementation of the iOS style is, of course, filed on Qt, which is actually a cross-platform framework, all of a sudden the Chinese “producers” of iPhone / iPad clones will be able to use our style in their bucket packs. Honestly, I do not understand why we should care, but nevertheless, I was told that this is a problem.


This project can be a great solution. I already mentioned it in previous articles. In short, this is the use of a truly native GUI platform (and not a "recreated" style) via QML (or C ++, if you like). But from what I see in the internal tracker, the last activity on this task was in October 2017 and since then silence.


Now about what offers V-Play . I honestly do not know, and the team also did not answer. But given the above, there are two options:


  1. They took the path of recreating and reverse-engineering the style of iOS, and what they offer is just a replica, and accordingly, they or their customers can potentially expect problems from Apple. I ask you to take into account that I do not blame V-Play for anything, but simply make assumptions;
  2. They implemented the project mentioned in the previous paragraph - that is, they work with the real GUI of iOS through the QML wrapper.

You can try to contact V-Play and ask them. But they may not want to share such information.


')

Source: https://habr.com/ru/post/354972/


All Articles