QtWS2018_globe_white_small

Training Day at Qt World Summit Boston

Continuing the tradition of combining training with the Qt World Summit conference, the Training Day takes place again this year before the Conference Day. Our training partners ICS and KDAB will be hosting the training day in Boston 29th of October. Check out the introductory and advanced level trainings available below. The training courses for Berlin will be announced soon.

  Introductory courses

  • Course descriptions for introductory courses
  • Hands-on Qt on RaspberryPi
  • Effective 3D in Qt
  • Introduction to QML
  • Multithreading in Qt
  • User Experience Design for Embedded Devices

Click the name of the introductory course on the menu to get a description of the course.

 

KDAB_logo_listimageKDAB is the world’s leading software consultancy for architecture, development design of Qt, C++ and OpenGL applications across desktop, embedded and mobile platforms. KDAB is the biggest independent contributor to Qt and KDAB experts build run-times, mix native and web technologies, solve hardware stack performance issues and porting problems for hundreds of customers, many among the Fortune 500. KDAB’s tools and extensive experience in creating, debugging, profiling and porting complex, great looking applications help developers worldwide to deliver successful projects. KDAB’s global experts provide training with hands-on exercises for Qt, OpenGL and modern C++ in multiple languages.

ICS_logo_listimageICS provides custom development and user experience services for touch-screen embedded, mobile and desktop applications. ICS is the largest source independent Qt expertise in North America. The ICS professional services team has solved a wide range of Qt and QML development challenges and helped clients deliver applications with uniquely branded user interfaces across a wide range of industries, including automotive, aviation, medical, entertainment, consumer and industrial devices. In addition, ICS offers open enrollment and custom onsite Qt training courses, plus a library of free online Qt webcasts.

Organizer: ICS

Length: 1 day

Prerequisites

  • Working knowledge of C++ programming
  • Basic knowledge of GUI programming
  • Previous Qt experience is not required

Description

This course focuses on developing modern applications for embedded systems and touchscreens using Qt and Qt Quick. The class utilizes real development boards with touchscreens for each participant and introduces students to working with embedded touchscreen systems. Further, fundamentals of programming with Qt will be covered to give participants a thorough understanding of the underlying ideas of QML and Qt Quick. In the course, we will use the Raspberry Pi 3 with touchscreen as the hardware platform.

Note: Participants will need to bring a modern laptop (supported OS: Windows 7 or newer, MacOS X 7 or newer). After the class, you may keep the Raspberry Pi 3 B+ board and Waveshare touchscreen for a fee. This is optional and we will loan you a touchscreen and board at no extra charge if you prefer.

Trainer: Chris Probst
Chris is a Senior Consulting Engineer and Qt Certified Instructor at Integrated Computer Solutions, Inc. (ICS) who has been working with Qt since 2001. He has extensive experience developing complex Qt solutions for a variety of industries, and has taught hundreds of Qt training courses. He holds a BSc and MSc in Computer Science from Université de Sherbrooke in Quebec, and is fluent in English, French and German.

Organizer: KDAB

Length: 1 day

Target Audience

Qt developers wishing to integrate 3d technology in their application.

Prerequisites

The audience is expected to have familiarity with basic QtQuick and OpenGL concepts, but no in-depth knowledge of them is required.

Description

Starting with the utility and enabler classes (for OpenGL, Vulkan and the upcoming Metal support), we will look at low level support for using OpenGL with QOpenGLWindow for rendering and event handling. We will also look at the support in the Widgets module.

Later we will show the technologies available in Qt that allow deep integration of Qt Quick 2 scenes with custom drawn OpenGL content. We will discuss the possibility of simply providing a Qt Quick overlay for an OpenGL scene. The discussion will then proceed to the creation of custom Qt Quick Items drawn using raw OpenGL commands, which can then be used from QML. We will also illustrate how to manually drive Qt Quick's own rendering if we need to be in complete control of how and when the rendering happens.

Finally, we will look at Qt 3D and how to use its scene graphs and frame graphs to create high performance 3d rendering without requiring the specialist knowledge required when accessing OpenGL directly. Along the way we will introduce the Qt 3D renderer and input systems and how they are built on top of a flexible, highly threaded, Entity Component System (ECS) architecture that scales very well and is ripe for future additions.

You will learn:

  • How to create windows for 3d rendering
  • How to add a Qt Quick based UI to an OpenGL application
  • How to create custom high performance Qt Quick Items using OpenGL
  • How to integrate your own OpenGL renderer with the Qt Quick Renderer
  • How to construct a basic Qt 3D application
  • How to make a scene graph, display 3D graphical content using geometry, materials, textur
  • How Qt 3D maps onto the graphics pipeline
  • How to extend Qt 3D to use your own custom geometry
  • How to write custom materials and shaders
  • How to completely control the Qt 3D renderer dynamically at runtime using the Frame Graph

Trainer: Mike Krus

Senior Software Engineer at KDAB, Mike has been developing with C++ since 1996 and Qt since 2004. He has a broad range of experience in scientific applications, mainly in civil engineering and oil & gas industries. His range of expertise includes C++, QML and interactive 3D visualization software design on desktop and mobile as well as macOS development. Mike is the Qt maintainer for the tvOS platform, one of the core contributors to Qt 3D and is very interested in building mobile applications with Qt, mainly on iOS. He has a PhD in Computer Science.

Organizer: ICS

Length: 1 day

Prerequisites

  • Basic knowledge of programming (e.g. JavaScript, Java, C, or C++)
  • Previous Qt experience is not required

Description

Meet Qt Quick and its companion language QML. This class will give an overview of QML as we build an application for embedded devices. Along with the QML basics, we will explore how QML and C++ interact, how to dynamically manage objects in QML, how to produce cool animations, and how to manage multi-touch gestures. Students will leave able to write their own QML applications.

Trainer: Chris Cortopassi
Chris is a Senior Qt Consulting Engineer at Integrated Computer Solutions, Inc. (ICS) with expertise in desktop and embedded applications. He’s developed Qt-based software since 2005 for motor control, telecommunications, civil engineering, robotics, medical, marine electronics, security, fitness, and aviation industries. He earned a BSc (Hons) in mechanical engineering with control systems emphasis from the University of California at Berkeley.

Organizer: KDAB

Length: 1 day

Target Audience

Qt Developers interested in multithreaded programming

Prerequisites 

Knowledge and experience programming with Qt and C++. A basic understanding of multithreaded programming is an advantage but not required.

Description

Multithreaded programming is essential for developers to create fast and responsive applications on computers, phones, and embedded devices all with an increasing number of cores. Qt offers several mechanisms for multithreading; however, it can be difficult to know which to use and how to steer clear of common pitfalls. This course offers guidance how to write safe and efficient multithreaded code with Qt.

Topics include:

  • Basic multithreading concepts (threads, processes, data races, reentrency, shared data)
  • Synchronization primitives (mutexes, semaphores, condition variables)
  • Special concerns for Qt applications (cross-thread signals/slots, QObject thread affinity, the GUI thread)
  • Low-level multithreading with Qt (QThread, QThreadPool, QMutex, etc)
  • High-level multithreading with Qt (QtConcurrent)
  • Threading with Qt Model/View
  • A brief summary of atomic operations

Why learn about Multithreading with Qt?

Multithreaded development is a complex subject where it is easy to write code that contains severe bugs yet looks correct. This training will provide a solid foundation for writing safe and effective multithreaded code in Qt applications.

Trainer: Jim Albamont

Senior Software Engineer at KDAB, Jim has actively developed with Qt since 2001. He has a background in computer graphics and data visualization, including 6 years as the lead developer of a multihreaded 3D visualization tool for financial data built with Qt and OpenGL. He has held Qt training classes throughout the US where he is based. Jim holds an MSc in Computer Science.

Organizer: ICS

Length: 1 day

Prerequisites

  • N/A

 Description

The proliferation of tablets and smartphones has raised customers’ expectations of anticipated interaction with any device. If any system with a touchscreen is not as responsive a tablet, users are immediately disappointed. Every year, the bar is set higher and it is important to recognize that compared to desktop systems, users of these new touch-enabled devices have different goals and expectations. This full-day session for software developers will cover valuable User Experience (UX) concepts and techniques to consider before engaging in core development of an embedded systems application. We will present various scenarios and UX best practices, discuss User Interface (UI) prototyping and testing strategies, examine case studies and work through a design problem.

Trainer: Jeff LeBlanc
Jeff is the Director of User Experience (UX) at Integrated Computer Solutions, Inc. (ICS), which specializes in developing world-class, implementable designs for touch-enabled devices. He has extensive experience developing custom software solutions with a strong focus on applying human factors principles to user-interface design. He earned both his BS and MS in Computer Science from Worcester Polytechnic Institute (WPI) where he is also an adjunct faculty member. In his free time Jeff enjoys kayaking, archery, and hiking the White Mountains of New Hampshire with his rescue dog, Alex.

Advanced courses

  • Course descriptions for advanced courses
  • Advanced QML
  • Network Application Dev with ZeroMQ and Qt
  • Optimizing Qt Applications on Limited Hardware
  • Profiling and Debugging for Linux
  • QML Applications Architecture
  • What's New in C++17?

Click the name of the advanced course on the menu to get a description of the course.

 

Organizer: ICS

Length: 1 day

Prerequisites

  • Basic knowledge of programming with Qt on the desktop using widgets
  • Basic QML experience

Description

This course focuses on design patterns and best practices to use when creating applications with QML user interfaces. Entering as intermediate QML programmers, students will leave with the knowledge of when to use various QML constructs in the best manner. This course focuses heavily on applications that are driven by C++ backends.

Organizer: ICS

Length: 1/2 day, pm

Prerequisites

  • Working knowledge of C++ or similar language
  • Basic understanding of network principles
  • Knowledge of Qt is not required, but it helps

Descrition

This half-day course is focused on the ZeroMQ networking library. We will discuss the ZeroMQ architecture, usage patterns, cross-platform capabilities, and integration with Qt. We'll also develop a sample application with Qt and ZMQ that runs on variety of platforms, including Linux, Windows, macOS and iOS. Students will be encouraged to participate by developing their own applications to connect to the server-in-development.

Trainer: Matteo Brichese
Matteo is a Senior Qt Software Engineer at Integrated Computer Solutions, Inc. (ICS), known for his ability to analyze code and engineer well-researched, cost-effective and responsive solutions. He’ll share his insight on developing applications with Qt and ZeroMQ. He holds a bachelor’s degree in Computer Science from Ca’ Foscari University in Venice, Italy and has worked throughout Europe and US.

Organizer: ICS

Prerequisites

  • Working knowledge Qt and Embedded Development

 Description

Performance can make or break a successful user experience. But how do you ensure performance in the face of increasing UX requirements for graphical elements, animations, transitions and video? And how do you deal with the financial mandate to use low-cost hardware? As embedded development grows ever more complicated, this course will help you maximize the performance of your application while adhering to your budget.

You'll learn:

  • The value of performance
  • Level of performance you can expect from various hardware options
  • Key performance improvements in the latest versions of Qt
  • Key hardware characteristics that impact the performance of Qt applications
  • Clever ways to reduce the visual aspects of a Qt application to help you achieve performance goals
  • How to determine critical performance paths thru use of performance profiling tools

Trainer: Jeff Tranter
Jeff Tranter is a Qt Consulting Manager at Integrated Computer Solutions (ICS). He oversees all technical aspects of customer development projects, including architecture and high-level software design. Prior to joining ICS, Jeff was one of the founding members of Xandros Corporation where he managed a team of developers responsible for the desktop components of Linux-based Xandros Desktop products. Widely published, Jeff has written a number of books and articles on Linux and open source programming and has presented at scores of industry conferences and user groups.

Organizer: KDAB

Duration: 1 day

Target audience: Developers who want to find and fix problems

Prerequisites: Knowing the basics of C++ and Qt

Description

This training gives an introduction to various tools, which help developers and testers in finding bugs and performance issues. This variant of the training focuses on Linux.
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 following tools will be covered:

Debugging

  • General purpose debugger: GDB
  • Record and replay, reverse debugging: RR
  • Memory error detectors: AddressSanitizer
  • Thread error detectors: ThreadSanitizer
  • Various Qt built-in features
  • GammaRay to investigate internals of Qt Applications

Static Code Analysis

  • Compilers
  • Clazy

Profiling

  • CPU: Linux perf and hotspot
  • Heap memory: heaptrack

Trainer: David Faure

Senior Software Engineer who also heads up KDAB’s French office, David is a Qt user since its beginning. He has made numerous contributions to Qt, including new classes for QtCore in Qt 5. David is well known in the KDE project for his work on the web browser and especially on KDE Frameworks. He has taught Qt development at numerous conferences and to companies such as Michelin, Schlumberger and Orange. He has become a specialist in multithreading with Qt, as well as performance optimizations. David holds an MSc in Computer Science.

Organizer: KDAB

Duration: 1 day

Target audience: QML developers who want to learn about creating large-scale yet maintainable applications


Prerequisites: Being comfortable with the basics of QML, as well as some familiarity with developing with C++ and Qt (QObject, signals & slots, properties, etc.)

Description

QML is a great language for expressing user interfaces in a declarative, easy to understand way. It can however be difficult to scale up from small demo applications to fully featured, complex systems without paying too high a price in complexity, performance and maintainability. In this course, we explore different techniques to deal with these issues to enable you to scale up your applications while steering clear from the common pitfalls.

Topics include:

  • Custom QML items
  • C++ integration
  • Declarative coding
  • Multi-page application architectures
  • Code organization

Trainer: André Somers

Software Engineer at KDAB, André has been using Qt since 2002 when he wrote an open source Qt 2-based flight computer for use in glider planes. Since then, he has applied Qt in a broad range of industries ranging from oil & gas exploration, scientific data manipulation and visualization to medical devices and many more. His main expertise is in C++ and QML. He has taught QML to customers across Europe. André holds a MSc in Philosophy of Science & Technology.

Orgnizer: KDAB

Duration: One Day

Target Audience: C++ developers who want to know more about the new features introduced in C++17.

Prerequisites: Knowing the basics of C++11 is a requirement, though more advanced topics will be explained as needed.

Description

Starting with C++11 released in 2011, the C++ language and standard library have steadily evolved. At the end of 2017 the new C++17 standard was released, adding a sizable amount of useful new features. All major compilers already support most (if not all) of its features.

In this training, the most useful of the new features introduced in C++17 and its predecessor will be presented. In cases for which these features depend on features introduced in C++11 or C++14, these will be refreshed as well. New library features being presented include the new types std::any, std::optional and std::variant, the new parallel algorithms, filesystem access, std::string_view and new operations on the container classes. The new language features range from ways to improve template code with fold expressions, constexpr if, and class template deduction over improvements of lambdas to structured bindings and initalizers in if and switch statements.

Why learn what's new in C++17?

C++ is the language that powers most applications written with Qt. To make the most out of the language, developers need to know its capabilities and pitfalls, and keep up with the incremental changes done in new releases. Doing so rewards them with ways to write easier, faster, cleaner and safer code.

Trainer: Guiseppe D'Angelo
Senior Software Engineer at KDAB, Giuseppe is a long-time contributor to Qt, having used Qt and C++ since 2000, and is an Approver in the Qt Project. His contributions in Qt range from containers and regular expressions to GUI, Widgets and OpenGL. A free software passionate and UNIX specialist, before joining KDAB, he organized conferences on opensource around Italy. He holds a BSc in Computer Science.

Register today!

Reserve your place and don't miss out on these amazing training sessions. 

Register