Software Development Whitepaper
A white paper from Witekio has finally identified an answer to a question pondered by software engineers the world over: which software toolkit is best for my development project – Qt or Android?
Whether you are designing smart cooking appliance, medical device, or any kind of embedded device with a fancy user interface, chances are, this question will pop up: How do we create that rich UX exactly? Should we go for the industry standard with Linux and Qt? Or should we leverage Android’s features?
And honestly, that’s a pretty good question. Both have their merits. We all saw the kind of application and UX we can create on Android smartphone: Fluid (or not) animations and effects, touch friendly, and third-party application. On the other end, the industry leans heavily toward Linux-based distributions for their reliability and flexibility, while Qt is one of the most popular frameworks for embedded.
There are truly many criteria to consider: security, performance, flexibility, affinity with the technology stack, capabilities, and more. So as an Engineer, Technical Lead or Product manager, how do you make an educated decision? Well because we love a challenge, we put them to the test with a head to head comparison, by creating the same application… twice!
Three engineers set out to determine which of the two solutions would be the best foundation for an embedded software project.
Instead of looking at features only or contributing yet another opinion to the Linux/Qt vs Android debate, Witekio’s engineers took a practical approach and decided to build an application from scratch on an i.MX 8 board specifically geared to deal with connected objects.
Julien first investigated the low level challenges comparing Android and Linux performance on an i.MX 8 Quad board. Then, Erwan and Stephen took over for the application part. Erwan by building a version of the application on top of Android OS, and Stephen by doing the same using the Qt toolkit.
To quote the engineers themselves: “By developing both applications simultaneously, we were able to get a real handle on the strengths and weaknesses of both Android and Qt,” said Stephen. “The board was the same, the OS was the same, the specifications for the application was the same, the only difference would be the underlying software frameworks, and we could see which would come out on top.”
While each of the music players would be built on different frameworks and using different software languages (C++ for Qt, Java for Android), the functionality needed to be the same:
Erwan and Stephan tracked their experience working with their competing frameworks and reported on the pros and cons of each throughout the project, and again at the conclusion of the project. These reports and the expert opinions that inform them form the basis for the new Witekio white paper that may finally put the Qt vs Android debate to rest.
More than just a write-up of laboratory notes, this white paper from Witekio takes the battle between Qt and Android head-on.
It opens with a general discussion of the context for this Qt versus Android debate. The white paper explains the common reasons for choosing either the Android or Linux and Qt framework. Including the advantages that accrue to the former’s Google Play Store updates and the latter’s memory and CPU economy.
Whether clocking an optimized boot speed, comparing the speed to a proof of concept (POC) software solution, or assessing the need for RAM, Linux was the platform that came out on top.
At the core of the white paper is the comparison between Qt and Android across three criteria:
1/ Framework features
2/ Development ease
3/ Development speed
For each criteria Witekio’s experts explain how each framework fares and offer clear examples as to the strengths and weaknesses of each approach in the context of the development process. Specifically, Witekio’s team explains the impact of the frameworks on:
By focusing on mounting an experiment that pitted the two frameworks against each other instead of theory-only and guts feelings, Witekio’s white paper can explain definitively why one of the frameworks is judged superior to the other.
It was a close-run. Qt is stronger when it comes to pure UX, the Android development environment offers better developer assistance and debugging, and both are strong when it comes to manipulating media files. In the end, though, there is a winner, and our white paper explains why it is the better choice in the context of our Embedded Music player app.
An answer to a question pondered by software engineers: Should I use Qt, Android, or even both?