Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Qt roadmap and Android/iOS native look and feel (or native enough)
Forum Updated to NodeBB v4.3 + New Features

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

Scheduled Pinned Locked Moved Mobile and Embedded
17 Posts 8 Posters 14.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    artem.marchenko
    wrote on last edited by
    #1

    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!

    1 Reply Last reply
    0
    • V Offline
      V Offline
      Vincent007
      wrote on last edited by
      #2

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

      1 Reply Last reply
      0
      • A Offline
        A Offline
        artem.marchenko
        wrote on last edited by
        #3

        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??

        1 Reply Last reply
        0
        • G Offline
          G Offline
          gyll
          wrote on last edited by
          #4

          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.

          1 Reply Last reply
          0
          • Q Offline
            Q Offline
            qedufun
            wrote on last edited by
            #5

            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.

            1 Reply Last reply
            0
            • X Offline
              X Offline
              Xander84
              wrote on last edited by
              #6

              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++?

              1 Reply Last reply
              0
              • G Offline
                G Offline
                gyll
                wrote on last edited by
                #7

                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/

                1 Reply Last reply
                0
                • Q Offline
                  Q Offline
                  qedufun
                  wrote on last edited by
                  #8

                  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]

                  1 Reply Last reply
                  0
                  • X Offline
                    X Offline
                    Xander84
                    wrote on last edited by
                    #9

                    [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

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      kenjichanhkg
                      wrote on last edited by
                      #10

                      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!

                      1 Reply Last reply
                      0
                      • X Offline
                        X Offline
                        Xander84
                        wrote on last edited by
                        #11

                        @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.

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          artem.marchenko
                          wrote on last edited by
                          #12

                          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.

                          1 Reply Last reply
                          0
                          • Q Offline
                            Q Offline
                            qedufun
                            wrote on last edited by
                            #13

                            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]

                            1 Reply Last reply
                            0
                            • V Offline
                              V Offline
                              Vincent007
                              wrote on last edited by
                              #14

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

                              1 Reply Last reply
                              0
                              • benlauB Offline
                                benlauB Offline
                                benlau
                                Qt Champions 2016
                                wrote on last edited by
                                #15

                                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

                                1 Reply Last reply
                                0
                                • JKSHJ Online
                                  JKSHJ Online
                                  JKSH
                                  Moderators
                                  wrote on last edited by
                                  #16

                                  [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 Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                                  1 Reply Last reply
                                  0
                                  • benlauB Offline
                                    benlauB Offline
                                    benlau
                                    Qt Champions 2016
                                    wrote on last edited by
                                    #17

                                    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.

                                    1 Reply Last reply
                                    0

                                    • Login

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups
                                    • Search
                                    • Get Qt Extensions
                                    • Unsolved