Qt Simulator is going public

Qt Simulator running the photoviewer Qml demo

I'm Christian Kamm, one of the developers responsible for the Qt Simulator that celebrated its debut with the release of the Nokia Qt SDK beta last month. In this article, I will introduce this new tool, explain how it works and how to get involved.

Qt Simulator is a fast and lightweight simulator for Qt applications intended to run on Nokia devices. As such, it should be your first target when developing a Qt application for Symbian or Maemo/Meego devices. The quick turnaround time should allow you to find, debug and fix a lot of issues before deploying the application to a real device. To give it a spin, grab the Nokia Qt SDK 1.0 beta from Forum Nokia.

The idea behind the Simulator is simple: Make an application look and behave as if it was run on a device, without incurring the overhead of actually emulating the hardware, the operating system or even compiling for a different platform. Applications destined to run inside Qt Simulator link against versions of Qt and Qt Mobility which have been modified to communicate to the Simulator application and behave like they would on a device. We call these Simulator Qt and Simulator Mobility to distinguish them from the regular desktop versions.

For instance, the Simulator Qt does not create native top level windows. Instead, it draws the application's windows to a shared memory area and lets the Simulator use that to display the contents to the user. In return any user input is sent back from Qt Simulator to the corresponding client application and processed there.

Qt Simulator with control window

Another core aspect is Qt Mobility simulation. Take the Contacts API, for example: The Simulator manages its own contact list (it has a few stub contacts at startup, you can import vCard files into it) and whenever a client application uses the Contacts API, it operates on the simulated address book. This allows straightforward testing of applications using this API without fear of accidentally messing up your desktop computer's address book. The other components of Qt Mobility 10.1, like system info, location, messaging, etc. are exposed in a similar way.

To enable testing complex situations, like changing GPS data, the battery running out or turning the device upside down, Qt Simulator comes with a JavaScript interface to many of its components.

We hope this tool to be useful to everyone developing applications for mobile devices and are eager to get feedback and bug reports! You can also go a step further and contribute directly: The sources have been released under the same licenses as Qt Creator's, commercial or LGPL 2.1, and the repositories are available at

Qt Simulator
Remote Control Widget
Simulator Qt
Simulator Mobility

More information on how to get started can be found on the Qt Simulator wiki.

Blog Topics: