Congratulations to our 2022 Qt Champions!

Is Qt the right choice for me?

  • Ho to all,
    I want to develop an app which I want to deploy, of course, on Android, IOS and Windows phone.
    I though of using Qt since I'm familiar with C++ developing on Linux and Windows, but I have some questions:

    Does Qt require an engine to be installed in the device or does it compile to native code.

    The application needs to also run on the background, not only as a UI app, is this possible with Qt

    Does Qt have access to the network API?

    How much of the app will I still have to do in Java/ObjectiveC/C#?


    1. You need to develop your UI in qml. A QML engine is needed to run qml code. The QML engine is bundled with your application. What you need to do is just to deploy your applications to devices.
    2. use QNetworkaccessmanager

  • Thanks for the answer!
    What about running in the background if it is not a UI app?

  • I found it is possible.
    Thanks again!

    1. Qt compiles to native code. It does not need any engine or VM.

    2. Is already answered, I never tried that.

    3. Full Network support has IMHO always been part of Qt, also for the mobile devices.

    4. For Android, Qt compiles the Application into a c++ library and packages it together with a Java program that calls the library. You do not need to write a single line of Java and do not need any Java knowledge.

    However it might happen that you want to use a feature that is not covered by Qt. For example, I had to create Java objects and call Java method from my C++ code to communicate vie Bluetooth (Qt 5.2 did not support it, Qt 5.2 now does). That requires Java knowledge of course.

    Somebody wrote that you have to develop the GUI in QML. This is not 100% correct. You can also write the GUI in C++ Widgets. And you can design the GUI with a graphical editor (Qt Designer) and load the generated files by C++. So you have 3 options.

    I prefer plain C++ for tree reasons:

    1. I dont want to learn another language at the moment (maybe later, when I am more experienced).

    2. I have diffculties to create dynamic design for different screen sizes and orientations. It is possible but I fell more comfortable for program that the old traditional way. Maybe that's because I learned programming GUI applications in the 90ies.

    3. I tried many of the QML examples on my mobile and desktop devices. I noticed lots of errors (like flickering text, random pixels, black/white screens). The traditional Widgets seem to be more stable.

    However, If you want to use all the cool features of the mobile devices and want that your applications look like others, then you have to use the development Kit of the related OS.

    Qt is a compromise to develop one application for multiple platforms with single source code. You should also think about HTML 5. I think this could become another very interesting alternative when I want to develop one application for multiple platforms.

  • If you do not use QtQuick, you cannot use Scene Graph.

    C++ Widgets are not supported by Jolla currently.

  • Yes, good that you mention this.
    All the cool 3D stuff and animations are not supported by Widgets. These features are out of my personal interest (at the moment), but other people might want to use them for sure.

  • Take also look into this tpoic:

    Pleople discuss Qt look & feel versus native look & fell there, which might be a big issue for Apple devices.

Log in to reply