Training

Monday 6th October

When C01 A03 B05+B06 A05 B07+B08 A06 A04 B09
9:00-10:00   Registration
10:00-12:00   Intro to QML
Kevin Krammer (KDAB)
Intro to Testing Qt applications with Squish
Florian Turck (froglogic)
Model/View programming in Qt
András Mantia (KDAB)
Intro to Multithreaded Programming with Qt
David Faure (KDAB)
Intro to Modern OpenGl with Qt
Sean Harmer, Giuseppe D'Angelo (KDAB)
What’s new in C++11/C++14
Thomas McGuire (KDAB)
Developing with Qt for QNX platforms
Tobias Koenig (KDAB), Marcus Bortel (QNX)
Qt for Mobile Platforms (Android/IOS)
Bogdan Vatra, Nuno Pinheiro, James Turner (KDAB)
12:00-13:00   Lunch break
13:00-14:30  
14:30-14:45   Coffee break
14:45-16:15  
16:15-16:30   Coffee break
16:30-17:45  
18:00-20:00   Evening Event

Again this year it will be possible to join a one day training prior to the actual conference. The price for that extra day of training is only €200, now where can you find a high quality training for that price?

This year KDAB will offer 8 different training alternatives, all based on our regular training catalog. The trainings vary a great deal in focus, so you can find what you need to fit your existing Qt skills.

Below, please find a cheat sheet on which class might be of interest to you based on your current experience and position.

If you are a developer and new to Qt:

If you are a manager or decision maker and new to Qt:

If you already are a Qt developer:

The small print

It costs KDAB a significant amount of time to prepare a training day, so any of the trainings will be canceled if less than 10 people have signed up for it by September 22nd. If you sign up for a training that is canceled, we will of course offer you to join a different training or get your money back for the training day. Don't forget to indicate your second choice when you register.


Introduction to QML - also known as Qt Quick

Target Audience: Developers and managers interested in learning the autonomy of a QML application.

Prerequisite: Knowing the basics of Qt at C++ level is an advantage but not a requirement.

This training is an introduction to Qt Quick. On the one hand it will teach you how to compose fluid user interfaces with slick animations using the QML language. While on the other hand it will teach you how you hook the QML side up to your business logic in C++.

 


Introduction to Testing Qt applications with Squish

Target Audience: Testers, Developers and Managers interested in how to automate testing of Qt applications.

Prerequisite: Knowing the basics of Qt and especially software development is a benefit for this presentation.

Unit testing will only take you so far when a graphics system is involved. If you want to be sure that the overall system works, then you need to blackbox test it too. The tool for automating that in the Qt world is Squish.

Squish is a record and playback tool, that can be used as is, but to get the most out of it a more structural approach is suggested. This training will introduce Squish and the refactoring approach that KDAB has successfully implemented in multiple large organizations.

 


Model/View programming in Qt

Target Audience: Qt developers interested in model/view either from QML or from Qt Widgets.

Prerequisite: Existing Qt knowledge.

A key ingredient in successful software development is the separation of presentation and business logic. Everyone knows that. A larger part of most applications is a list of things, and for those, Qt offers such separation using a model/view framework.

This presentation will introduce this framework and tell you how to develop models independent of whether they are to be displayed in a C++/Qt application or in a Qt Quick application.

This training will dive into subjects such as:

  • The API to implement for use in a 1 dimensional list, a 2 dimensional table and a tree view
  • What model indexes are all about
  • How to successfully implement a proxy model
  • How to debug your models
  • How to implement models in C++ that are displayed in Qt Quick. 

 


Introduction to Multithreaded Programming with Qt

Target Audience: Qt Developers interested in multithreaded development.

Prerequisite: Existing Qt knowledge. Basic understanding of multithreaded programming is also an advantage.

With more and more cores in computers, multithreaded programming is becoming increasingly important for developers. Qt offers several mechanisms for multithreading, however, it is up to you to decide which to use when so that you steer clear of common pitfalls.

This training will introduce you to multithreading concepts in general, tell you about the different mechanism in Qt, and discuss best practices and common pitfalls.

It is a requirement that you at least know the basics of Qt for this training.

 


Introduction to Modern OpenGL with Qt

Target Audience: Developers interested in learning the basics of OpenGL.

Prerequisite: A basic level of linear algebra will be assumed for this course (multiplying a matrix and a vector). Mathematics will be kept to a bare minimum so as not to get in the way of eye candy!

OpenGL is a central part of QtQuick2 in Qt 5 and also plays a key role in displaying the main content of many widget-based applications.

OpenGL has been around for many years and in recent times has evolved to shed much of its legacy baggage and better expose the underlying hardware. Modern OpenGL allows us to take full advantage of the enormous power and parallel processing power of today’s GPUs. Maximizing performance of OpenGL rendering requires us to understand how GPUs work and how to efficiently feed them with data.

Qt provides a number of classes to make life easier when working with modern OpenGL. This training will show you how to do the basic tasks associated with OpenGL rendering and will go on to show how to use Qt and OpenGL to achieve a number of rendering effects and algorithms. You will also learn how to write custom QtQuick2 items using the OpenGL and scene graph APIs.


What's new in C++11/C++14 (with a Qt5 focus)

Target Audience: C++ developers who want to upgrade their C++ skills

Prerequisite: Knowing the basics of C++ (the old standard) is a requirement, though more advanced topics will be explained as needed. Knowing the basics of Qt is beneficial, but not required.

This training is targeted at people who are interested to combine the new features of C++11/C++14 with Qt5 (and, to a lesser extent, Qt 4.8). It will teach you all about the new C++11/C++14 features, but also throws in Qt-specific information, including how to structure your code so that a simple recompile with a C++14 compiler will make your applications both faster and use less memory.

 


Developing with Qt for QNX platforms

Target Audience: Developers and Managers who are interested in seeing the process involved in developing using Qt for QNX

Prerequisite: None

This training day will show you how to go from "Zero to HMI Hero" in 1 day.

For any engineers currently exploring HMI (human machine interface) or GUI (graphical user interface) or RTOS (Real Time Operating System) technologies, this training day will be an important opportunity to listen to the experts and get answers to challenging questions from real-world experts.

In this training, a QNX engineer will take a Freescale i.MX6 reference platform that currently does not have an OS installed and explain how to take a Board Support Package (BSP) to create a minimal bootable operating system image. He will then go on to show how to add additional functionality including SD card interface, networking and Qt HMI capability. Mechanisms for profiling and high availability will also be explained.

An engineer from KDAB, will then show how to deploy Qt 5 to the target and set up the host environment ready to develop with Qt 5 on QNX. He will then develop a small HMI application using C++ for a robust backend and Qt Quick 2 (QML) technology for the GUI. Attendees will learn many facets of the Qt environment and best practices.

The complete source code for the HMI example application developed in the session, along with details of where to download the RTOS image, will be made available to all attendees.


Qt for Mobile Platforms - Android/iOS

Target Audience: Anyone interested in the process of developing with Qt for mobile platforms

Prerequisite: Basic Qt knowledge is beneficial.

This presentation will introduce the tools and processes needed to develop with Qt for mobile devices, including Android and iOS.

The agenda for the day will approximately look like this:

  • Installing and setting up Qt for Android
  • Installing and setting up Qt for iOS
  • Usecase: Targeting desktop and mobile devices using Qt
  • Device independent development - how do you cope with devices of vastly different resolutions and screen density?