Training Day

  • Bonus pre-conference training presented by Diamond Sponsor, KDAB

    sponsors_KDAB Monday, October 5 | bcc Berlin Congress Center

    Two days is just not enough to pack in all the great content we have in store for you! Why not join us a day early for one of these pre-conference training options?

    NEW in 2015: Debugging and Profiling Qt applications

    Register

     

  • Choose from 8 options

    • Introduction to QML – also known as Qt Quick
    • Model/View programming in Qt
    • Debugging and Profiling Qt applications
    • What’s new in C++11/C++14 (with a Qt5 focus)
    • Introduction to Multithreaded Programming with Qt
    • Introduction to Modern OpenGL with Qt
    • Qt for Mobile Platforms – Android/iOS
    • Introduction to Testing Qt applications with Squish
  • Which training is right for you?

    Not sure which training is right for you? Check out our suggested pairings!

     

    New to Qt and already a developer?

    • Introduction to QML – also known as Qt Quick
    • Debugging and Profiling Qt applications
    • Qt for Mobile Platforms – Android/iOS

    New to Qt and a manager or decision maker?

    • Introduction to QML – also known as Qt Quick (A bit technical but will give you an idea of the skillset needed)
    • Introduction to Testing Qt applications with Squish (Gives you a great overview of what it takes to test Qt applications)
    • Qt for Mobile Platforms – Android/iOS (Might be a tad too technical, but at least will give you an idea what it takes to develop with Qt on those platforms)

     Already a Qt developer?

    • Introduction to QML – also known as Qt Quick (Only if you haven’t used QML yet)
    • Model/View programming in Qt
    • Debugging and Profiling Qt applications
    • What’s new in C++11/C++14? (With a Qt5 focus)
    • Introduction to Multithreaded Programming with Qt
    • Introduction to Modern OpenGL with Qt
    • Qt for Mobile Platforms – Android/iOS (Great class if you haven’t yet gone to mobile)
    • Introduction to Testing Qt applications with Squish (Are you testing your code enough?)
  • Training Overview

    Note:

    • Don’t forget to indicate your second choice when you register. In the unlikely event that less than 10 people sign up for a particular training by September 21st, we will not run it. We will then offer you an alternative training or your money back.
    • You must purchase a Three-Day Combo Pass in order to register for trainings.
  • 1. 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. On the other hand it will teach you how you hook the QML side up to your business logic in C++.

    Register

  • 2. 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.

    The training 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.

    Register

  • 3. Debugging and Profiling Qt applications

    Target Audience: Developers who want to find and fix problems

    Prerequisite: Knowing the basics of C++, Qt and QML

    This training gives an introduction to various tools, which help developers and testers in finding bugs and performance issues.

    The tools presented cover a wide range of problems, from general purpose debugging and CPU profiling to Qt specific high-level analyzers. Often, it is relatively simple to run a tool, but interpreting the results, or even just using some of the more advanced tools, requires deep technical knowledge.

    The most important tools on all major platforms that Qt supports, i.e. Linux, Windows, Mac OSX, iOS and Android, will be covered:

    debugging

    • general purpose debuggers: GDB, LLDB, Windows Debugging Tools
    • memory error detectors: valgrind’s memcheck, Dr. Memory, AddressSanitizer
    • thread error detectors: valgrind’s helgrind, ThreadSanitizer
    • OpenGL: apitrace, XCode
    • various Qt-builtin features for logging, QML, WebKit, WebEngine, DBUS etc.
    • GammaRay to investigate internals of Qt applications

    profiling

    • CPU: valgrind’s callgrind, Linux perf, Intel® VTune™ Amplifier, Instruments, Visual Studio
    • heap memory: valgrind’s massif, heaptrack, Instruments, Visual Studio
    • OpenGL: apitrace, vogl, NVidia nSight, AMD CodeXL, Vivante vProfile

    testing

    • Qt TestLib: unit tests and benchmarks
    • Squish: testing graphical
    • static code analysis: qmllint, clang analyzer, coverity
    • code coverage

    Register

  • 4. 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.

    Register

  • 5. 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.

    Register

  • 6. 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.

    Register

  • 7. 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
    • Use case: Targeting desktop and mobile devices using Qt
    • Device independent development – how do you cope with devices of vastly different resolutions and screen density

    Register

  • 8. 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.

    Register

view_sessions

2015 session
video recordings
now
available at qt.io ›