Qt vs. HTML5 for Cross-Platform Apps

By Christian

VisionMobile, one of the leading firms for programming related researches & surveys, just released an interesting article: Cross Platform Apps – Qt vs. HTML5. We’d like to add our thoughts about this article to help you choose the right framework for your project.

Qt and V-Play

We initially built V-Play to develop games with the power of Qt Quick. This declarative scripting language of Qt is so powerful that it saves up to 60% lines of code compared to other programming languages. Moreover, since the release of Qt 5 you can also build great cross-platform apps with Qt, both for mobile and desktop.

With the next release of V-Play (coming next week!), we will further simplify app development with Qt, just as we make programming games easier. So stay tuned for the update and enjoy this blog post about Qt vs. HTML 5.

Qt Benefits over HTML5

Let’s quickly cover the main pros Qt has over HTML5, in addition to the ones mentioned by VisionMobile:

Ease of Learning

Learning HTML5 has become trickier because you get overwhelmed with frameworks. Frameworks are actually a good thing, but to know which framework fits your project best can take up weeks.

To learn Qt Quick (QML & JavaScript) is quite the opposite – it’s self-explaining and easy to understand, and the only choice you have. :)

The latest developer survey from research2Guidance of 2,188 developers also proves that learning Qt and V-Play is easier than PhoneGap for example. This image shows the result of comparing the complexity to learn a cross-platform tool:

Top 10 Cross-Platform Tools of Complexity to learn the tool (low complexity means easy to learn):


Download V-Play now and Create Cross-Platform Games and Apps


This is a big one. Qt is based on C++ and has a hardware accelerated scene graph which makes it even fast enough to power high-performance games, so you get great performance for apps too. In the last years, a lot of work has gone into further optimizations for mobile app use cases to get the most out of rendering performance. For example ListView optimizations or auto-batching of textures to minimize draw calls (see here for some benchmarks). You can even do crazy shader modifications simply from QML and apply video filters at runtime.

Animated UIs

Qt Quick & QML were initially created to make animated user interfaces easier, not something that was added later on to it!

The declarative approach is a bit weird in the beginning to understand, but once you get the hang of it you will never want to let things such as property bindings go. Things like state machines and animation components makes transitioning between views and animating UIs just a matter of 1 or 2 code lines.


Qt Creator, the IDE of Qt and thus also of V-Play, is one of the best IDEs out there. It has everything tailored to the Qt framework you need: a debugger, integrated help, UI designer, and a top-notch profiler where you can measure draw calls, JavaScript timings, QML bindings and a lot more.

Native Integration

Qt originated as a C++ framework, with Qt Quick & QML added later as a declarative layer to simplify UI development & prototyping. So you get a solid and proven C++ framework which makes the integration between the scripting world and C++ easy and allows to define nice separations between application logic and UI. So if you have existing C++ logic you want to reuse in your mobile app, Qt is the way to go.

Similarly, calling Objective-C or Java code for Android is simple too (for example Qt 5.2 introduced some helper classes to simplify JNI communication for Android). This means you can integrate any native functionality that is not supported by the core framework and make it accessible from a scripting environment.

Native SDKs with Qt

We have worked on 30+ Qt apps and games in the past years, and often were in the situation where we needed a native functionality or 3rd party service not existing in the Qt framework.

To make these native SDKs available from QML across projects, we started the V-Play Plugins. These exist to integrate native services for multiple platforms with a single API call. You can for example use them to integrate monetization services like in-app purchases or mobile Ad frameworks like AdMob and Chartboost in your Qt 5 apps. Or to access the native Facebook SDK or Push Notifications from Qt.

You can find the Qt 5 plugins here: http://plugins.v-play.net/


To be fair, HTML5 also has its advantages, like not being developed by one major contributor. But there also are advantages with that, because you get bugs fixed faster as you don’t need to count on different browser vendors to fulfill the standard or to agree upon a new required feature.

As Mark Wilcox from VisionMobile puts it:

“Qt has a slight edge over HTML5. However, there are other metrics you could use that would give the opposite result. In practice the technology needs to be selected to fit the project.”

Because of the additional reasons given above, we do see Qt on a far better track than HTML5. What is also great is the rapid rate of improvements that are released with every Qt update, and we’re happy to be in the Qt community and to simplify Qt development as a Qt Technology Partner!

If you want to share your app or game development story with Qt too, hit the comment section below. 😉

There is also currently this year’s VisionMobile developer survey going on – vote for Qt and V-Play here:

Vote for Qt & V-Play in the Global Developer Survey

Just enter V-Play in the “Other” section for the question “Which cross-platform tools are you using?” and also select Qt.



  • Mythiclese

    Just came accross this article, very nice. My story is from a different
    perspective. I had an app that was first developed for the desktop
    (Linux and Windows), then moved to Windows CE (shudder), then moved to
    embedded Linux, then moved to Android. This was made pain free because
    of Qt. I discovered Qt 6 years ago, when I was looking for a better
    language than Java, and have been hooked ever since.

    • We fully agree! Once you know the power of Qt (and especially Qt Quick), you will never want to let it go. :)

Voted #1 for:

  • Easiest to learn
  • Most time saving
  • Best support

Develop Cross-Platform Apps and Games 50% Faster!

  • Voted the best supported, most time-saving and easiest to learn cross-platform development tool
  • Based on the Qt framework, with native performance and appearance on all platforms including iOS and Android
  • Offers a variety of plugins to monetize, analyze and engage users
create apps
create games
cross platform
native performance
3rd party services
game network
level editor
easiest to learn
biggest time saving
best support