Recently, a manager from a car manufacturer company asked us why they should use Qt for their embedded projects and how is it better than other technologies that exist currently on the market. This is actually a question that people are asking a lot and doing a quick research on google, we realized that there is no place currently that sums up these reasons, thus ‘why’ still remains unanswered, unless if someone really investigates on this.

After said investigation, we ended up with this list of reasons which we categorized and we’re publishing it today with the hope to help not so technical people to understand the benefits of this powerful framework in a non technical way.

Performance & costs

  • One code – many platforms. This effective cross-platform framework saves developers time and reduces the costs of product owners as they can get more than one apps for the price of one using the same code base, and software running on various devices with different operating systems with slight or no change in code, making it also easy to go from prototyping to production.
  • The code is compiled to native binaries, no additional interpretation layers are needed and runs at full speed on hardware, basically, as fast as the device can handle.
  • Better and faster performance, much more memory efficient resulting to less hardware requirements thus, decreasing costs. But also conserving smooth animations, even on low end hardware.

Development speed up

  • Code runs everywhere, no VM, browser or anything else than Qt installation is required.
  • Provides QML and QtQuick for fast and efficient UI creation.
  • Provides language bindings for python and C# among others, making it easy to add device emulation, simulating the target that is usually not available to everyone, allowing developers and designers to test the product on the bench avoiding big surprises during release workshops.
  • Provides. libraries for almost everything, thus making it easy to maintain and update, decreasing dependencies to 3rd party modules.
  • Provides tools for designers that allow them to see the impact of their design changes immediately, one can in theory get a prototype of an application running in Qt using Qt Design Studio, before Eclipse or Visual Studio even load.
  • Unit testing with QtTest module, able to also to run in Continuous Integration environments.
  • Qt 3D for near-realtime simulation, easy 3D rendering into 2D scenes and the opposite, in both Qt C++ and Qt Quick applications.
  • Qt comes with Integrated Development Environment (IDE) that includes profiler for QML, debugger and integration for all major version control systems, among others.
  • Easy styling and theming switch implementation thanks to QtQuickControls 2 module.
  • Rich animations library, and possibility to use custom shaders.
  • Translation system that is easy to use and supports multiple languages.

Reusability 

  • Easy to implement responsive UI, making it possible to use the same code in various screens.
  • Customizable widgets library, Buttons, Switches, Check Boxes, etc.
  • On screen touch virtual keyboard already coming with 45+ languages and possible to add more custom input methods.
  • Powerful layout system, where its contents can resize and position based on it, one thing less to care about in UI development, especially when it comes to translated text.

Misc

  • Open source with transparent code and bug tracking system also well supported framework.
  • Direct access to source code, anyone can upstream fixes and features,  but also it allows to compile Qt from source using the compiler and settings of ones choosing, including a debug version for use during development.
  • It is fast to learn thanks to the very good documentation, useful examples, and to its big open source community – most answers to problems can be easily found on the web.
  • Qt is old, meaning that it has gone through years of testing and validation making it currently pretty stable.

Do you think we missed something or have a different opinion? We’d love to hear it!