Qt roadmap and Android/iOS native look and feel (or native enough)



  • Hi all

    I am interested in writing cross-platform mobile apps in Qt/QML and was checking the situation with controls again. After searching this forum, web and Qt bugtracker unfortunately I failed to find much about the Qt's position towards native look on iOS and Android, that is native looking buttons-toolbars--menus-whatever and native looking transitions.

    To my understanding, right now the situation is as "Here are QtQuick controls, style them yourself, it is easy" and that's it. Well, it's a good start, but now that Qt apps can run natively on iOS and Android it would be good to have a set of controls/transitions that are actually supported, cared after (e.g. updates with the iOS updates) and ideally themable together with the rest of the device. 100% precise emulation might be impossible to achieve with QML as IMHO it can only try to replicate system painting, but even 90% quality could be good enough.

    So, does anybody know or at least have heard any rumors about the future of Qt's native look and feel for Android and iOS? Any pointers will be very appreciated!



  • It seems you need to wait for Qt 5.4
    https://bugreports.qt-project.org/browse/QTBUG-35081



  • Thanks, Vincent, good link!
    So it's mostly up to Bigdan Vatra will and whoever joins him and transitions aren't really mentioned. Sad, but understandable, consumer Android apps are probably not in much focus for Digia.

    Any ideas about iOS side of story??



  • If you'll write a useful app, nobody will care about whether or not your GUI looks native. Here's my two cents: make your apps look like web pages, this way nobody will be "shocked" at a non-native look-and-feel.



  • I am porting existing Qt C++ desktop applicaiton to android, I want to use Qml to display GUI and use C++ to write logic in Android. At last I found it is too hard to mix them.

    Now I am write QWidget interface on Android. I have the save question with you. If Qt for Android has native look, it benefits me a lot.



  • widget apps look "terrible" on mobile devices and I don't think you will get lucky with that. QML is meant for mobile devices and works really great, also the c++ interface is not really hard to use. Do you have an example why you consider QML hard too interface with c++?



  • Guys, you really should start looking a little bit into the future: should Qt, or GTK, or whatever framework you're using, die (for whatever reason), all of you guys depending on other people's work will be out of luck. And out of business. Just write your app in pure C++11, make your GUI in HTML5, and use websockets to connect your GUI with your C++ backend (you'll have websockets in a couple of weeks in Qt 5.3). This is the only way to play safe, just use standard technologies. In one year's time you'll have just about anything you need in terms of GUI in HTML5 (it's already very rich, but still has a couple of issues to be solved), and C++11 already offers you your beloved C++98 plus the long awaited multi-threading, so this is the only sane way to go with all this technology mess nowadays.

    PS
    You might also want to take a look in here: http://www.webtoolkit.eu/wt/examples/

    PPS
    And there's also this one coming: http://developers.google.com/native-client/



  • Well, maybe I didn't find a good example with QML and C++ mix together.
    I tried QQuickWidget. Can you tell a good sample application to let me evaluate?

    [quote author="Xander84" date="1397313642"]widget apps look "terrible" on mobile devices and I don't think you will get lucky with that. QML is meant for mobile devices and works really great, also the c++ interface is not really hard to use. Do you have an example why you consider QML hard too interface with c++?[/quote]



  • [quote author="qedufun" date="1397392313"]Well, maybe I didn't find a good example with QML and C++ mix together.
    I tried QQuickWidget. Can you tell a good sample application to let me evaluate?
    [/quote]
    There are some official examples and tutorials, I don't know what you tried but usually you don't need a custom QQuickWidget or anything, you can just call c++ functions from QML and vice versa, all you need is to register the c++ class to the QML engine with "qmlRegisterType":http://qt-project.org/doc/qt-5/qqmlengine.html#qmlRegisterType
    You may also read this article: "Integrating QML and C++":http://qt-project.org/doc/qt-5/qtqml-cppintegration-topic.html

    I could show you some specific examples if you tell me what you want to do :D



  • How about using QML to create swipeable side menu like the one in Facebook Apps?

    Reference UI:
    http://www.queness.com/resources/uploaded/sidebars/fgp.jpg
    http://cdn.androidpolice.com/wp-content/uploads/2013/05/nexusae0_wm_2013-05-09-23.26.10.png

    I'm also thinking what to use to create android/ios apps. QWidget feels like home to me, but for mobile, I need to write something extra to make my UI suitable for mobile devices. I'm not sure how to do what I want with QML...

    Assume I need to write an apps like Facebook, should I use QML? or custom-made my UI with QWidget?

    Thx!



  • @kenjichanhkg: I would use QML for sure, it is much more versatile and easier to create rich UI's with animations. If you know the basics UI design can be as fast as prototyping in my opinion. So it is fast fast and beautiful :)

    I'm on gyll's side on this one, if you create a nice app that is intuitive to use nobody cares if it is native looking or not. Of course there are always a few "fan boys" who might think your app design is bad only because it is not 100% looking like the design guidelines of the OS.



  • Here's a lot of interesting discussion on how much exactly cool app developers should ignore host OS standards, but the original question was a little different :)

    There are some of us that appreciate native look and feel and not making the user to think about where the hell the menu button is.

    It would be cool to know if there are some efforts on making QML-based layouts easily Android-like or iOS-like, if not completely then at least 80-90%. If there are no such efforts.. well, it's sad, but then that's how it is.



  • I have a desktop widget which can play my own file format just like a media player. Then I need port it to Android.
    I know there is a QQuickPaintedItem to show a widget inside a QML container. But the problem is not only the widget to display but also to interact with user.

    I couldn't find an example, QML contains a widget, widget can accept events.

    [quote author="Xander84" date="1397395642"][quote author="qedufun" date="1397392313"]Well, maybe I didn't find a good example with QML and C++ mix together.
    I tried QQuickWidget. Can you tell a good sample application to let me evaluate?
    [/quote]
    There are some official examples and tutorials, I don't know what you tried but usually you don't need a custom QQuickWidget or anything, you can just call c++ functions from QML and vice versa, all you need is to register the c++ class to the QML engine with "qmlRegisterType":http://qt-project.org/doc/qt-5/qqmlengine.html#qmlRegisterType
    You may also read this article: "Integrating QML and C++":http://qt-project.org/doc/qt-5/qtqml-cppintegration-topic.html

    I could show you some specific examples if you tell me what you want to do :D
    [/quote]



  • "Revealing Android style for the Qt Quick Controls":http://lists.qt-project.org/pipermail/android-development/2014-June/000388.html


  • Qt Champions 2016

    By the way , I have started a project to provide Android look and feel components by QML. It aims to provide extra / unique components for Android platform:

    https://github.com/benlau/quickandroid


  • Moderators

    [quote author="benlau" date="1411571856"]By the way , I have started a project to provide Android look and feel components by QML. It aims to provide extra / unique components for Android platform:

    https://github.com/benlau/quickandroid[/quote]Thanks for sharing, Ben.

    Have you seen the latest announcement about native GUI components on Android? http://blog.qt.digia.com/blog/2014/09/08/qt-5-4-alpha-available/ Does your library take advantage of that?


  • Qt Champions 2016

    Hi JKSH,

    Don't really have time to compile Qt 5.4 yet. Still waiting for the Mac binary. However, I have checked the patch. The provided widget set should be different.

    So I will focus on those components not provided by Qt 5.4 (like navigation drawer) or the things I need for my project now which can not wait for Qt 5.4 release.

    Moreover, another objective of this library is the style classes and utilities to create custom component for your own application that look like an Android native application.

    For example , I have asked will it provide the "DP" unit by Qt in mailing list. The answer is no. But you need this value otherwise your software will not looks like native application.

    QuickAndroid is not a replacement / duplicated feature to Qt 5.4's native widget support. It is more like an add-on library which could be co-existed with Qt 5.4.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.