HTML5 and Qt, Two Popular Tools for Embedded Linux Application Development
Along with the proliferation of mobile and touchscreen devices, embedded Linux developers have shifted away from building their own operating systems from scratch. Instead they’ve been moving over the past few years toward frameworks such as the Yocto Project, Tizen or Android.
“We build upon existing frameworks and just extend with our hardware abstraction and with an application for user interaction,” said Jan-Simon Moeller, a Linux Foundation trainer in embedded Linux.
Standardization has now also moved up to the application layer as developers adopt tools that simplify and speed UI creation. Instead of building from scratch with Java, Objective C or C++, developers build on top of a stack of pre-defined software that limits the need to rewrite the application’s common functionality.
The holy grail is an application framework that works across all devices and platforms, Moeller said.
“Traditional embedded development typically didn’t have such nice UIs,” Moeller said. “Now every device needs a display and needs a nice UI so (standardization) is a hot topic.”
As a result, application development environments such as GNOME Mobile, Clutter, Java, HTML5 and Qt have become standard tools among embedded developers. So much so that in order to stay up-to-date with how embedded Linux developers prefer to work, the Yocto Project has added support for all of these environments, says David Stewart, embedded Linux engineering manager at Intel.
It’s difficult to create applications for embedded devices because there’s no single framework to use across platforms, Intel’s Stewart said. Apple and Android each has its own ecosystem and developers must build separate applications to suit each – a costly and time-consuming process. This is why Intel is making investments upstream to support HTML5, he said.
Because HTML5 is a standard supported by most web browsers, developers who are experienced with web development can create applications for iOS and Android devices without tying them to those platforms.
The markup language is most popular as the basis for applications on connected devices. But HTML5 applications can be run offline, as well, from the device's local storage with a web runtime, Stewart said.
“(HTML5) holds the promise of really helping developers have the power to deliver the kinds of applications they need to with a very strong portability story,” Stewart said.
Despite the promise of HTML5, it’s still in its early days with embedded applications. Security and standardization across all devices are still the biggest issues facing its adoption by embedded developers, Moeller said.
For example, “once you have to allow access to the systems hardware - how do you ensure integrity of this sandbox?” he said.
Other difficulties include implementing rich UI’s with good performance; mixing with native technologies; alfa-level user interface libraries; and finding developers with knowledge of HTML5 & CSS3 in resource-limited environments, said Tuukka Turunen, director of R&D at Digia, Qt.
With more than ten years as an application development framework, Qt has risen in popularity again with the trend toward touchscreen UIs. It uses a C++ engine “for creating all the application logic,” Turunen said, in combination with QML, an HTML-like markup language that runs on top of Qt, instead of in a browser.
“QML is analogous to HTML5, but at the GUI toolkit level, which can be really interesting,” said Behan Webster, a Linux Foundation trainer and an embedded Linux consultant. “It’s not web-based like HTML5.”
Qt is often used for mobile development as well as for traditional embedded devices, from small handhelds all the way up to heavy machinery. And it actually offers the option to use HTML5 in Qt-based applications, if needed.
“With Qt you can easily develop hybrid applications leveraging the best of native and Web depending on the use case,” Qt’s Turunen said.
Qt has a strong cross-platform play, with Windows and Linux versions, said Stewart. And because its interface is based on C++, which a lot of schools are teaching to computer science majors, “it’s pretty popular,” he said.
Neither HTML5 nor Qt has achieved the coveted ability to build applications that work universally across all devices. Developers view HTML5 as the closest to the grail, The Linux Foundation’s Moeller said. But both tools can help developers achieve the high-quality graphical UI embedded customers have come to expect in an increasingly mobile space.