Originally, the Qt framework was developed for two main tasks: for building smooth and intuitive user interfaces UI and for developing fast embedded applications. Requirements for entertainment software include both high end UI and instant interaction with user on some specific devices like TV or In-Vehicle Infotainment IVI systems. That’s why the entertainment industry is one of the most suitable branches to apply Qt framework. Today many digital TVs, Set-top-Box platforms, streaming services, cars, and even aircraft use software that is written with Qt.
The Qt Integrated Design IDE and the huge variety of Qt’s sub-tools allow developers to create code faster. The cross-platform solutions (and Qt software is cross-platform) are easy to support, and introducing new devices to the market proceeds quickly.
The Qt company has
But let’s return to the entertainment industry and Qt as an incredible tool for the development of relevant software. Let’s consider who has used the Qt framework in their top-shelf products?
The App Dynamic company developed their top-end product AirServer also using ubiquitous Qt, yes. AirServer is hardware device (receiver) that allows the user to project from any Apple, Google or Microsoft device to any TV, monitor or projector via Airplay, Chromecast or Miracast. AirServer is available for Windows, iOS, MacOS, Android, Embedded Linux and Xbox. It is possible to mirror screens from multiple devices simultaneously. Interesting that such an approach can be useful not only in the entertainment industry. For instance, a teacher can show content using pupils portable devices (no classboard required). Business presentation can be provided directly to many different devices. A gamer can combine a computer and smartphone into the gaming console.
The AirServer supports up to 16 simultaneous device connections.
WebOS 3.0 and Smart TV
WebOS initially was developed by Palm Inc. company who were using Qt to develop the Palm Pilot. LG acquired Palm Inc. and extended the use of Qt to a wide range of current products and upcoming innovations.
LG’s webOS platform is a Linux kernel based multitasking operating system for devices including smart TVs and wearables. It utilizes a number of web applications that run in the Qt WebEngine, based on the Chromium project. Using Qt allowed them to combine high performance, responsive and a visually appealing UI, and helped them simplify optimization of web app performance. As usual, the Qt allowed developers to reduce development time.
The Panasonic company has created Panasonic Avionics system, world leader in In-Flight Entertainment and Communications (IFEC) solutions for commercial aircraft. It combines InFlight Systems, Global Communications Services, and Panasonic Technical Services into a single solution. Avionics enables customers to amplify and differentiate their brand, foster passenger loyalty, generate ancillary revenue, and reduce operating costs at the same time.
Panasonic applied other frameworks in the past. They looked at frameworks that promised to build a fluid interactive UI with wow-factor. But it seems only Qt satisfied both such requirements and also high performance. Moreover, QML layer allowed to skip the complex technical development. Instead of spending their resources on the underlying technology, they could focus on design and usability. Now Panasonic IFEC system serves more than 500 million passengers annually, allows enjoy an amazing entertainment experience.
The Sky Q company applied the Qt framework in the development of their home entertainment system Fluid View. It is like a Netflix-style system that allows the user to continue watching a program on a different device. For instance, you’ve started to watch a football match in the living room, but then passed to a bedroom and finish watching there using a Mini box or a tablet.
For the Sky Q company the most important factors in selecting a UI development framework are its’ ability to create, specify, and clear intuitive user controls and cut the time needed for development.
Cross Platform middleware client
DCC Labs (acquired by SeaChange in 2016) developed a cross-platform hybrid middleware client. It is a framework for DVB, IPTV and OTT STBs. The framework extends graphic capabilities, such as included native and HTML5 UI capabilities. Thanks to such UI technologies, TV operators can deploy of both HTML5- and QML-based applications in hybrid and OTT systems. Also TV were able to support external 3rd party applications regardless of the technology.
The middleware client is designed for all IPTV, Cable, Satellite and Terrestrial devices. Client is consisted from thin and thick (native) clients (HTML5 UX and Qt/QML respectively). DCC Labs chose Qt because of its cross-platform nature, OpenGL graphical user interface as well as its ability to allow for hybrid development combining Qt/QML and HTML5. During development the client used Qt libraries: Qt Core, Qt Quick, Qt Concurrent, Qt Webkit, Qt Webengine, and Qt Locale. Development time was cut in half thanks to the use of Qt, the team was able to reduce time to market and achieve smooth animations with a high number of frames per second using full hardware acceleration.
In-Vehicle Infotainment System
One more important application of the Qt framework is the automotive segment. We’ve looked at this topic closely. Here we just want you to take note of one more kind of infotainment system where Qt is applied. It’s a Linux based In-Vehicle Infotainment System (IVIS) in Rimac concept car that is positioned as the world's fastest electric supercar.
The IVI utilizes close to 100 sensors that make it possible to monitor and display the vehicle’s performance data, energy consumption, battery status, temperature, trip data and so much more. It is possible to use it to customize the vehicle's behavior, look up the route to the closest pizzeria via the location and more useful features.
Now, let us focus on the other side of the same topic. Or rather how the Qt framework has been applied in various products. Qt is a very diverse tool with many options. So it is important to know which set of tools is best-suited for certain design issues. We have provided this brief overview to help developers orient faster.
Wayland Compositor API was released in Qt 5.8. In general, Wayland is a protocol that specifies the communication between a display server and its clients. Wayland makes it possible to render content on the same display for multiple client applications. Qt Wayland Compositor is a module that provides QML and C++ APIs for developing custom display servers based on this protocol.
Qt Quick module is the standard library for writing QML applications. It provides a visual canvas and includes types for creating and animating visual components. An important feature is that a set of Qt Quick-based UI controls is also available to create user interfaces.
Qt Quick, Qt Quick Layouts, Qt Multimedia and Qt Network remain the basis of AirServer. This receiver allows the user to project a picture from any Apple, Google or Microsoft device to any TV, monitor or projector via Airplay, Google Cast or Miracast.
Qt Quick was used to create the GUI, and Qt Multimedia to create rich media background elements. Qt Multimedia supports all basic use cases like audio-video playback, access camera, radio functionality, record video and access to camera settings.
Qt Network module provides a set of APIs for programming applications that use TCP/IP. Operations such as requests, cookies, and sending data over HTTP are handled by various C++ classes.
Qt Quick Layouts are a set of QML types used to arrange and resize items in a user interface. AirServer used it for arrangement of the mirrored screens in a way to make optimal use of the mirroring surface and instantly adapts to the needed alignment of smart devices. The best example is, AirServer can mirror side-by-side for both a horizontal desktop monitor and vertical for a smartphone screen.
Cross-platform Hybrid Middleware Client
The cross-platform client by the DCC Labs company (acquired by the SeaChange International) allows TV operators to deploy both HTML5- and QML-based applications in OTT systems. During development the client such Qt libraries were used: Qt Concurrent, Qt Webkit, Qt WebEngine and Qt Locale .
Qt Concurrent provides high-level APIs that make it possible to write multi-threaded programs without using low-level threading primitives (liek mutexes, read-write locks, wait conditions, or semaphores). Programs written with Qt Concurrent automatically adjust the number of threads used according to the number of processor cores available. Qt Webkit was released for Qt 5.5 but now it is being replaced by Qt WebEngine. WebEngine uses Chromium as the backend, at once Webkit works with WebView. Chromium is a much newer, faster and more robust engine. Now it makes sense to use WebEngine for most applications.
Qt Locale provides locale specific properties and formatted data.
In our honest opinion, the Qt framework is the best tool to develop almost all types of software. Especially if such software is primarily designed as cross-platform. Development at one time for different platforms gives huge commercial preferences (for instance, App Dynamic company saved over 70% development time and cost). Specifically for the Developex company, the C++ based development is one of the main features to make a project successful. That is why we suggest the Qt framework for our customers as an optimal tool for the realization of their projects. Yes, some projects require very specific approach that require only native tools. But if your software should work on at least two different operational systems it is a good reason to apply the Qt framework to save both time and money.