Why use Qt for mobile development?
-
wrote on 5 Jan 2017, 23:06 last edited by
Hi everyone,
One of the companies I work with is looking to begin some (proprietary) mobile app development in the next few months. They need to support at least Android and iOS, so a cross-platform framework would be appropriate.
There are now at least 50 mobile development frameworks available, all with greatly varying features. And since I'll likely be working with this code a lot, and I happen to love Qt, I'd like to at least have Qt considered an option :)
So, I'd like to build a list of some of the benefits of Qt-on-mobile over some of the other frameworks available. But having not used Qt for mobile development yet, I'm hoping some of you can help me flesh out the list a little.
Some benefits I can see already:
- near-native experience on both platforms
- ability to re-use existing C/C++/Qt code (unfortunately, not too useful in this instance)
- ability to use existing C++/Qt developers / expertise
- support for a good range of sensors (surprisingly, a lot of the other frameworks don't support many sensors)
- excellent low-level performance for CPU intensive work (good for some types of games? cryptographic routines? what else?)
- nice declarative language for UI
- great i18n / L10n support
- open source
- liberal license (LGPL)
I'm sure there's heaps more. So fire away! What do you think are the benefits / advantages to using Qt on mobiles?
Thanks! :)
-
wrote on 6 Jan 2017, 17:24 last edited by
I am currently in the process of finishing my first app with Qt and until now, I am pretty satisfied with the development experience (I hope that won't change on the last metres ;-)).
My reason for choosing Qt was, that I already had a few years of experience with PyQt and always enjoyed working with it. I have never done any native App development nor used other cross platform frameworks, so the following might a bit biased.
The things I really like about Qt:
-
you can easily test most of the functionalities of your app natively on your PC/Mac. For me personally thats a HUGE plus, as the Android & iOs simulator often is painfully slow.
-
QML: It takes a while to you understand how QML works, but once you understand it, it's a really nice, clean and easy declarative language.
-
Exposing C++ Models/Objects to QML: It took me a while until I realized the full potential of that, but now I won't miss that. Most of the time it's easier/faster to implement something in C++ instead of Javascript which makes the exposing of C++ implementations to QML a really powerful feature.
-
Qt Quick Compiler: Qt Quick uses the just in time compilation technique which is great for rapid prototyping. But as the code gets interpreted during runtime complex user interfaces might get a bit slow/sluggish. Qt Quick Compiler eliminates those disadvantages and improves the performance a lot. Unfortunately Qt Quick Compiler is currently only available in the commercial version, but as far as I know that will soon change.
Things that I don't like about Qt:
-
Compared with other App frameworks my impression is that there aren't that many Apps out there that were built with Qt (that's just my personal impression, I don't have any statistics). I think that's mainly because in the past it wasn't that nice to use Qt for mobile App development. Beginning with Qt 5.6 however, Qt made some really good progress regarding mobile app development.
-
Although most of the things are already available in the Qt framework, some (essential) things are unfortunately still missing. (e.q push notification support). In that cases you have to go and implement them yourself natively in objective c/java,
-
-
I am currently in the process of finishing my first app with Qt and until now, I am pretty satisfied with the development experience (I hope that won't change on the last metres ;-)).
My reason for choosing Qt was, that I already had a few years of experience with PyQt and always enjoyed working with it. I have never done any native App development nor used other cross platform frameworks, so the following might a bit biased.
The things I really like about Qt:
-
you can easily test most of the functionalities of your app natively on your PC/Mac. For me personally thats a HUGE plus, as the Android & iOs simulator often is painfully slow.
-
QML: It takes a while to you understand how QML works, but once you understand it, it's a really nice, clean and easy declarative language.
-
Exposing C++ Models/Objects to QML: It took me a while until I realized the full potential of that, but now I won't miss that. Most of the time it's easier/faster to implement something in C++ instead of Javascript which makes the exposing of C++ implementations to QML a really powerful feature.
-
Qt Quick Compiler: Qt Quick uses the just in time compilation technique which is great for rapid prototyping. But as the code gets interpreted during runtime complex user interfaces might get a bit slow/sluggish. Qt Quick Compiler eliminates those disadvantages and improves the performance a lot. Unfortunately Qt Quick Compiler is currently only available in the commercial version, but as far as I know that will soon change.
Things that I don't like about Qt:
-
Compared with other App frameworks my impression is that there aren't that many Apps out there that were built with Qt (that's just my personal impression, I don't have any statistics). I think that's mainly because in the past it wasn't that nice to use Qt for mobile App development. Beginning with Qt 5.6 however, Qt made some really good progress regarding mobile app development.
-
Although most of the things are already available in the Qt framework, some (essential) things are unfortunately still missing. (e.q push notification support). In that cases you have to go and implement them yourself natively in objective c/java,
wrote on 6 Feb 2017, 07:56 last edited byI can't belive V-Play missed this chance to show off their push notification solution. Usually they follow discussions here closely :)
@Paul-Colby V-Play actually has a really good set of supporting libraries for mobile development. So that might be one more plus, if a small license fee is ok for your company.
Take a look at https://v-play.net/
The V-Play stuff is commercial, but priced quite competitively.(Just for full disclosure V-Play is a Qt partner company, but have nothing to do with that. This endorsement is purely based on the fact that their toolset is a really good addition to Qt for mobile development)
-
-
wrote on 13 Feb 2017, 13:56 last edited by GTDev
@tekojo
Thanks for helping us out here, we really missed that one ;-)@Schluchti
V-Play offers several plugins for local or server-triggered push notifications, have a look here.@Paul-Colby
If you got interested and have questions about V-Play, just contact us at support@v-play.net, we're happy to help! -
wrote on 26 Feb 2017, 17:38 last edited by
In case someone is interested, here is a longer article about my experiences with Qt: https://gympulsr.com/blog/qt/2017/02/23/working-with-qt-mobile.html
-
In case someone is interested, here is a longer article about my experiences with Qt: https://gympulsr.com/blog/qt/2017/02/23/working-with-qt-mobile.html
@Schluchti said in Why use Qt for mobile development?:
In case someone is interested, here is a longer article about my experiences with Qt: https://gympulsr.com/blog/qt/2017/02/23/working-with-qt-mobile.html
Hi @Schluchti - great to read your story about Qt for Mobile.
It's also my experience that more and more developers are recognizing that Qt istn't only for Desktop or Embedded. Using QtQuickControls2 I'm able to develop x-platform mobile business apps with great UX. Most apps are hidden at customer in-house, but some will come next weeks also to GooglePlay and Apple Store.
FWIW: I'm also writing about "Qt for Mobile" to help others to find a way through all the Qt stuff : https://appbus.wordpress.com/category/qt-for-mobile/overview/Wish you much luck with your first mobile App using Qt.
-
@Schluchti said in Why use Qt for mobile development?:
In case someone is interested, here is a longer article about my experiences with Qt: https://gympulsr.com/blog/qt/2017/02/23/working-with-qt-mobile.html
Hi @Schluchti - great to read your story about Qt for Mobile.
It's also my experience that more and more developers are recognizing that Qt istn't only for Desktop or Embedded. Using QtQuickControls2 I'm able to develop x-platform mobile business apps with great UX. Most apps are hidden at customer in-house, but some will come next weeks also to GooglePlay and Apple Store.
FWIW: I'm also writing about "Qt for Mobile" to help others to find a way through all the Qt stuff : https://appbus.wordpress.com/category/qt-for-mobile/overview/Wish you much luck with your first mobile App using Qt.
wrote on 26 Feb 2017, 22:32 last edited by@ekkescorner Thanks, really appreciated!
I am following your blog for a while now and also saw the talk you gave at the Qt World summit conference. Great stuff!