One of the standard communication protocols for web services is SOAP, which is basically XML over HTTP. I wrote an opensource library called KDSoap which makes it easy to do SOAP with Qt (both client-side and server-side). In this video you will see how, starting from a web service which provides a WSDL file to describe its API, KDSoap can generate code to make synchronous or asynchronous calls to the web service.
In recent years, a lot has been happening to improve performance, maintainability and tooling of QML. Some of those improvements can only take full effect when your code follows modern best practices. Here are 10 things you can do in order to modernize your QML code and take full advantage of QML's capabilities. 1. Use […]
A very common communication protocol is REST, which is simply JSON over HTTP. Qt has all the building blocks for this, with QJsonDocument for JSON and QNetworkAccessManager for HTTP. In this video, you will see a real-world library that makes REST requests to a web service called TMDB (movie database), as an example.
Not all devices require screens. Some rely on web-based user interfaces or smartphone apps for control and interaction. But if your product needs a built-in screen and you need to decide which to get and what to do with it, the rest of this blog is for you. Elaborate or plain? It’s important to choose […]
This video shows an alternative way to a DBus client using Qt, using the convenience of blocking calls but without blocking the GUI thread: all blocking calls are done in a separate thread.
This video shows how to implement a DBus client using Qt, using generated code so that calls and their signature are checked at compile time. Special care is taken not to block the GUI thread, using asynchronous handling only (via signals and slots, and a queue of pending requests)
KDAB is a Gold Sponsor at this year’s Meeting C++, a highly recommended 3-day hybrid event for the European C++ community. Locate the KDAB booth on the entrance level and talk to experts Ivan Čukić and Milian Wolff on any of the event days. At the booth, you will also get a live demo of […]
Choosing the right hardware for an embedded Linux device is so much more important than your software choices. Making the wrong decision can lead to significant costs and disruptions if you have to change hardware mid-development. Read this blog first before you solidify your choice. Custom or commercial? Choosing between a custom or commercially available […]
This video shows how to implement a DBus server using Qt, in order to communicate between two processes. The benefits of using DBus include the fact that it's a standard communication protocol on Unix systems especially, and the ability for Qt to generate classes the client can use to make calls in a type-safe way. For now we'll test the server using the qdbus command-line client, the next video will show how to make calls from C++.
We’re pleased to announce the release of KD Reports 2.3.0, the latest version of our reporting tool for Qt applications. This marks our first major update in two years, bringing several bug fixes and new features that further improve the experience of generating reports. What is KD Reports? KD Reports is a versatile tool for […]
Recap In Part 1, we covered PCM audio and superimposing waveforms, and developed an algorithm to combine an arbitrary number of audio streams into one. Now we need to use these ideas to finish a full implementation using Qt Multimedia. Using Qt Multimedia for Audio Device Access So what do we need? Well, we want […]
In this video, you will see an alternative to the asynchronous handling done in the previous video. If the socket is managed by a separate thread, it becomes possible to implement the protocol in a synchronous manner, which is much easier.
In this video, you will learn about a common programming pattern called the job pattern, useful for asynchronous operations (for instance, driven by the Qt event loop) such as socket communication, or any other operation that emits signals upon progress and completion.
Adopting proven practices like continuous integration (CI) and continuous deployment (CD) is a key part of modern software design. These methodologies enhance software quality and team productivity while shortening development cycles – what’s not to love? Arguably, it’s the short-term pain of getting these systems installed and configured for your environment and the long-term pain […]
In this video, you will learn how to use the JSON classes in Qt (5 or later) to implement a communication protocol between two processes. Special care is taken not to block the GUI thread in the graphical client application, using asynchronous handling only (via signals and slots, and a queue of pending requests).
In C++20, the standard library introduced new synchronization primitives: std::latch and std::barrier. These are the utilities designed to coordinate between concurrent threads. What is a synchronization primitive? In concurrent programming, synchronization primitives are the fundamental tools that help in managing the coordination, execution order, and data safety of multiple threads or processes that run concurrently. […]
In this video, you will learn how use Qt (5 or later) to develop a server and a client application which communicate using a local socket. You will learn how to handle the various issues that arise from systems made of multiple processes. For instance, what if the client tries to connect before the server is running? What if the server is restarted? What if the server crashes? What if the server is started twice?
This video shows an application that makes synchronous (blocking) and asynchronous (non-blocking) calls from the main thread of a graphical Qt application, and how this affects the user experience.
Desktop software has many differences from mobile and embedded applications but one of the biggest and most obvious is the screen. How can you take advantage of all that real estate for your application? Six considerations for managing the screen in your desktop application Choosing the right GUI framework Use a flexible GUI framework that […]
This video introduces the series, defines the types of inter-process communication and the technical alternatives that will be presented, and advises on what are the things you should know or learn before watching this video series.