Linux.com

Home News Featured Blogs Libby Clark HTML5 and Qt, Two Popular Tools for Embedded Linux Application Development

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.” 

HTML5As 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. 

Among these options, HTML5 and Qt have seen increasing popularity of late, Stewart said.

HTML5

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.

Qt logoFor 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.

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.

 

Comments

Subscribe to Comments Feed
  • Alberto Mardegan Said:

    "[...] QML, an HTML-like markup language that runs on top of Qt [...]" QML is totally different from HTML. It's a declarative language, with a syntax resembling JSON files.

  • Anon Said:

    Why not have both? http://vps2.etotheipiplusone.com:30176/redmine/projects/emscripten-qt/wiki/Demos

  • ranjeet.kuruvilla@yahoo.com Said:

    Hi Does anyone know in qt5 html5 ui how to 1. control an javascript item from the c++ backend 2. control a piece of c++ code from the javascript frontend. Regards

  • AlaguSundar Said:

    Great article. Thanks for sharing. http://www.cavinitsolutions.com/

  • apua Said:

    Hi I want to create a html5 or QT based UI for emebedded Linux which gets in data and writes them in RFID tag. Javascript does not support writing even on files but on the other hand I would prefer HTML5 because it is mainstream kind of. Regards, Apua

  • Rob N Said:

    Apua, Ranjeet - really? You ask a technical question on a specific issue, in a general article on the subject, and on top of that, you pick an article that hasn't had a comment in half a year. Go to a forum about the topic to get answers for that sort of thing. I would mention a couple, but I don't know if I want them polluted by people who can't think that far ahead. (to everybody else, sorry about the rant)

  • Ranjeet Said:

    @Rob N.: Yes, I write it in here.. My comment may very well be a good idea. That is why I put it in here! Your rant is a pollution!

  • Edward Said:

    Qt is been around for almost 20 years now (November 2014) not just 10 years. From my experience, QtQuick/QML is a lot younger but already heaps matured than HTML/HTML5. I have to admit that HTML back in the days used to be a lot cleaner but now a days HTML/HTML5 is quite messy. When you "view source" the responsive themes popular on the market (Bootstrap, Foundation blah blah blah you name it), you will find HTMLs are messier than old Table layouts. QtQuick/QML on the other hand is a lot cleaner, declarative, semantic and purely component based. HTML5 is just starting to be component based. Browser support for HTML5 components is quite terrible. Libraries like Polymer and X-tag are trying to fill in the gaps and make HTML5 more organised but the trade off is the slow speed. Till today, HTML doesn't even have a native combo box. Unlike Delphi, Qt, Visual Studio etc HTML still today doesn't have a matured Graphical UI builder. I would suggest people to avoid HTML as far as possible unless you have to render something on the browser. Don't think HTML/HTML5 is a silver bullet only because it is popular. Being trendy will not make someone smart.


Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board