Il training durerà tutto il giorno e sarà diviso in sessioni teoriche e pratiche. Durante le sessioni teoriche verranno introdotti i concetti più importanti di Qt Quick; durante le sessioni pratiche i tutor proporranno degli esercizi da risolvere e poi commentare insieme. Scaletta del training:
QML’s power of expression is a double-edged sword. The language provides little to no constraints regarding various choices, including component boundaries, nesting depth of elements, property-binding policies, data storage and statefulness patterns. In my experience, this limited prescriptiveness seems to speed up development at the beginning, but it does in fact slow it down when it comes to modularisation of the code, addition of new features and iterative development-testing loops. Hands-on experience and commitment, however, let you discover development practices that can give you a smoother ride.
Whether you are a complete beginner or someone who already had their own share of QML joys and pains, I got you covered with some useful ideas and best practices to reduce the pain and increase the joy. Since QML is mainly used for UIs, and since UI development poses specific challenges, we will mainly focus on Qt Quick UI development. Many of the tips, however, are applicable to all kinds of modules that expose a QML API.
Topics covered include:
If you also have some tips & tricks, share them with the audience in the discussion after the talk.
Con Qt 5.9, QtLocation ha ricevuto molte nuove funzionalità, alcune delle quali hanno rivoluzionato le limitazioni interne che il modulo portava con se, come la capacitá di utilizzare motori di mapping terzi per disegnare le mappe e gli oggetti aggiunti su di esse. Se QtLocation 5.9 é stato un enabler in molti campi, spaziando da applicazioni IVI a soluzioni mobile, nuove funzionalità e miglioramenti sono state aggiunte da allora, in aggiunta ad una riorganizzazione del modulo che apre a componenti sperimentali da integrare nelle successive releases.
Lo scopo di questa presentazione é di illustrare cosa é stato aggiunto, e in che modo la struttura del modulo é stata modificata, e come utilizzarne le potenzialitá sia da un punto di vista dell’utente finale, sia da un punto di vista del fornitore dei servizi geomatici.
This talk is entirely based on my 4 articles on Qt Test:
C++ unit testing with Qt Test – part 1 – introduction This tutorial explains how to use Qt Test for testing a C++ class. That will involve creating a project, defining the unit test and using the different macros available to test code.
C++ unit testing with Qt Test – part 2 – advanced testing This tutorial introduces more advanced features of Qt Test, like how to handle a project with multiple unit tests and how to implement data driven testing. it will also give examples of more testing macros and it will show you the integration offered by Qt Creator.
GUI unit testing with Qt Test – part 1 – introduction This tutorial will introduce GUI unit testing with Qt Test. In particular it will discuss how to write a basic unit test for a widget class, how to simulate mouse and keyboard events and how to write data driven tests for GUIs.
GUI unit testing with Qt Test – part 2 – advanced testing This tutorial will introduce more advanced features of Qt Test dedicated to GUI unit testing. In particular it will show how to simulate and handle keyboard focus and how to test Qt signals when unit testing a Graphical User Interface.
GammaRay is an open source debugging and profiling tool for Qt applications that has been developed by KDAB for the last few years. Traditional debugging techniques (using debuggers, breakpoints, watchpoints, printfs in the code…) are invaluable, but they have a limitation: in order to debug an issue you need to know the internals of the application and the libraries you're using. For Qt applications this means knowing the internals of Qt, following d-pointers around, access private structures and so on.
Enter GammaRay: GammaRay is a "high-level debugger", able to show the status of various Qt subsystems inside an application, with an easy to use interface (that does not require any knowledge of Qt internals). GammaRay can, amongst other things, show the properties of any QObject in the application, show the status of all state machines, inspect and debug layouting and stacking of both widgets and Qt Quick applications, analyze raster painting, show the 3D geometry in a Qt3D scene, and much more.
This talk introduces the audience to the basics of GammaRay usage, showing (in the time available) its general usage. I will then apply GammaRay to a few interesting cases, in order to show how GammaRay solves various practical problems. While having some previous knowledge of Qt APIs is desiderable, it's not necessary in order to understand the tool capabilities.
Building on the experience of running Plasma on many different devices, the KDE community built Kirigami, a complete set of QML components to build responsive, user-centered applications.
The attendee will learn why starting to use Kirigami and how to do so. We will go through the motivations that led to the creation of the framework, the main components which are included and their structure. We will show how to install the library and what are the best practices to use it. We will point out differences with other popular frameworks and concepts, such as Material Design, and when it's best to use each framework. We will also demo a few application which make extensive use of Kirigami.
My talk explains how one of the world’s largest home appliance manufacturers could save millions by using Qt over Web technologies.
Both Facebook and Netflix implemented their eponymous apps with Web. Despite spending millions of dollars, neither of them could achieve an iPhone-like user experience (60 frames per second and less than 100ms response to user inputs) on anything less powerful than or as powerful as a system-on-chip (SoC) with four ARM Cortex-A9 cores.
In contrast, numerous products like infotainment systems, in-flight entertainment systems, harvester terminals and home appliances prove that you can achieve an iPhone-like user experience (UX) on single-core Cortex-A8 SoCs. Our above-mentioned manufacturer HAM Inc. (renamed for the sake of confidentiality) verified these results by building both a Web and Qt prototype.
At a volume of one million units, the SoC for Qt is 11 euros cheaper per unit than the SoC for Web – to achieve the same user experience. At a volume of one million units, an industrial-grade NXP i.MX53 SoC with a single Cortex-A8 core costs roughly 10 euros. This is enough for Qt. At the same volume, an NXP i.MX6 SoC with four Cortex-A9 cores required for Web costs roughly 21 euros.
This means that Qt can reduce hardware costs by over 53 percent.
Even if HAM offset the SoC costs against the costs of the commercial Qt license, HAM would have to pay millions of euros more for a Web than for a Qt solution. And, HAM would have no way to scale down the Web solution to mid-range and low-end appliances.