C++ and Qt is a good choice for developing a mobile application. Especially if you need at least two versions for different platforms. But this way is not yet too popular. Why you ask? Well, because there are IDEs like Android Studio, SmartCode, and additional helpful toolchains. It is natural to think that a native application is better than cross platform software.
Well, in general it is true. But the bigger truth is each project has own unique set of specific requirements. In many cases it is obviously a good decision to develop an individual type of mobile application using, absolutely yes, some compiled languages like C++ and an IDE that was created especially for this platform.
The Qt framework is good choice for developing cross-platform applications both for desktop and for mobile. This is just our honest opinion. This opinion is based on the rich experience that DevelopEx Company has gained over the more than 15 years of working on these types of projects. But why Qt? There are a lot of other tools for multi-platform development like Xamarin or PhoneGap. And perhaps somebody liked even Adobe Air… Well, we like the Qt framework because it has large number of libraries, is well supported with excellent documentation, proven by time and has QML. Also, historically we as an outsource company started with C++ as a basis for many of our projects. Qt suits our well-experienced developers better than any other development platforms we have tried..
We have good experience in the realization of clear mobile applications (for Android and iOS) using C++, QML and all of the rich set of Qt tools. One of such project concerns tuning audio for cars and vessels. We began the project two years ago. Now the applications are in final stage of development. The biggest advantages particularly for this project (and such kinds of projects in general) are a relatively low rate of development time and maintenance, and also stability after updates.
But often doubts still appear: To believe or not to believe in a mobile application written a non-native language, that is the question. We believe because we did it. And we wrote about the benefits in previous articles. Now just to exemplify we list several mobile applications we found that were written in Qt:
- Spotify, a music, podcast, and video streaming service.
- Subsurface, a software for logging and planning scuba dives initially designed and developed by Linus.
- ArcGIS Runtime SDK for Qt. ArcGIS is a geographic information system (GIS) for working with maps and geographic information.
- Math Graphica, advanced scientific calculator with 3D graphs available for desktop and mobile.
- Function Plotter, a simple function plotter and tabulator. You can store the resulting plots as PNG and the data as CSV in order to open it latter in an Excel or LibreOffice spreadsheet.
- Image Transformer, perform Fourier transform and color space analysis on images from a gallery or taken from a camera.
- Atlas, real time volumetric 3D editor and rendering engine.
- Night Clock, simple clock app which shows time in large friendly numbers.
- Shopping List Reminder, a shopping list that stores the ingredients for your favorite meals and recipes.
- QT View Classic, security digital video recorders, used to check property and business apartments.
- Music Doctor, an ID3 tag editor that will help you clean up a music library.
- LK – Live Controller, remote controller application for music software and hardware, featuring a tight integration with Ableton Live.
- TKFX, it is Traktor Controller app for iOS and Android.
- MuseScore Sheet Music, allows you to create, play and print sheet music.
- Weather App, displays LIVE weather data from participating organizations.
- Quick Forecast, Worldwide weather forecasts. Its user interface is written using Qt Quick Controls and Layouts.
- V-Play Apps SDK, allows you to create cross-platform mobile apps (especially games) from a single codebase.
- A whole lot of mobile games are also based on Qt.
Obviously, these are no all simple projects and they were successfully created. That is why before you say ‘No’ to multi-platform development isn’t it better to carefully analyze criteria of a project? There are some general cases when it is definitely better to apply native environments. In short, they are:
- User Interface is a key feature of an application;
- App should have as high as possible rank in app stores;
- Software uses specific features of certain platform;
- Security must be everywhere (like for iOS that gives ability to store secret information in an encrypted storage).
Nevertheless, many projects do not have such limitations. Then why not use a cross platform development environment? It is a good approach to save money and to have product for all platforms even after strong updates. As for other platforms, mobile application written on Qt is:
- Cost and time effective,
- Easy to localize,
- Stable behavior during updating features,
- Definitely fast because it is binary.
If you still have some doubts then just call us. In any case, we will find the optimal way to implement your requirements. Even if the requirements are very specific and unusual or just well-proven by time and universal.
Images are used in this article: