[Interest] Qt interfacing to Android native UI ?
Attila Csipa
qt at csipa.in.rs
Sat May 7 14:01:38 CEST 2016
The more interesting thing here is doing react-native with a Qt(Quick)
rendering engine / back-end (so you end up with a web stack that can
render to a scene graph ways faster than a browser engine, while not
having to maintain QML in your tech stack). React really is the
equivalent of QML in terms of the
declarative-ui-tech-that-manages-a-DOM, so I see little point in having
both.
Attila
On 5/5/2016 4:45 PM, Jason H wrote:
> What is the motivation for such a project?
> *Sent:* Thursday, May 05, 2016 at 10:31 AM
> *From:* "Edward Sutton" <edward.sutton at subsite.com>
> *To:* "Robert Iakobashvili" <coroberti at gmail.com>
> *Cc:* "interest at qt-project.org" <interest at qt-project.org>
> *Subject:* Re: [Interest] Qt interfacing to Android native UI ?
> An interesting project:
>
> https://github.com/grassator/react-qml
>
> |react-qml| is a bridge library that allows to use React.js with QML.
>
>
> Example
>
> Usage of |ReactQml| is pretty straightforward — the only difference
> from web version is that you need to pass id of the qml item to
> |React.render| instead of DOM node. For example:
>
> import QtQuick 2.4 import QtQuick.Controls 1.3 import "js/ReactQml.js"
> as React ApplicationWindow { id: root title: qsTr("React QML") width:
> 300 height: 300 visible: true function reactRender(x, y) { var props =
> { x: 100, y: 100, width: 100, height: 100, color: '#000' }; var
> childProps = { x: 25, y: 25, width: 50, height: 50, color: '#fff' };
> var child = React.createElement(React.Rectangle, childProps);
> React.render(React.createElement(React.Rectangle, props, child),
> root); } Component.onCompleted: { reactRender(); } }
> -Ed
>
> On May 2, 2016, at 1:50 PM, Robert Iakobashvili
> <coroberti at gmail.com> wrote:
> Dear Ekke,
> Thank you for sharing your experience with
> qt.labs.controls Qt Quick Controls2 in 5.7.
>
> Sure, we'll be reading you blog.
>
> Kind regards,
> Robert
>
>
> On Mon, May 2, 2016 at 8:38 PM, ekke <ekke at ekkes-corner.org> wrote:
>
> I really like the new qt.labs.controls from Qt 5.6 (will
> become Qt Quick
> Controls2 in 5.7)
> using these lightweight controls together with Material Style
> (Android) or
> Universal Style (Windows) with light or dark themes and all
> the new Controls
> (like Drawer) for mobile-app-navigation and also HighDPI
> Support you can now
> first time ever develop mobile apps with nearly native
> feeling. (iOS style
> will come later when the new controls are stable)
>
> I prefer to write UI in QML compared with React Native's mix
> of Markup and
> JS or using Xamarin where you have one language but different
> code for
> x-platform.
>
> Before leaving QT for mobile apps - give it a try.
> BTW: I'm writing a blog series about my experiences
> https://urldefense.proofpoint.com/v2/url?u=http-3A__j.mp_qt-2Dx&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=13ftz5U9_dHo8BjIh3RKmuX9DkqPXcAx9ctnx5a0YHA&e=
> and
> I'll develop - as proof of concept - Conference APPs for QtCon
> and Qt World
> Summit.
>
> ekke
>
> Am 02.05.16 um 20:17 schrieb Robert Iakobashvili:
>
> Dear Edward,
> React Native - good catch.
>
> Thank you so much for sharing this idea
> and your experience!
>
> Kind regards,
> Robert
>
>
> On Mon, May 2, 2016 at 8:08 PM, Edward Sutton
> <edward.sutton at subsite.com>
> wrote:
>
> On May 1, 2016, at 4:27 AM, Robert Iakobashvili
> <coroberti at gmail.com> wrote:
>
> Dear Edward,
> What are your conclusions and which direction you decided on
> after your experiments?
>
>
> I never made much progress. While QML looked more "native
> like” I never felt
> comfortable using it.
>
> I am doing my new iOS and Android development using Facebook's
> react-native.
> React Native calls native UI from Javascript.
>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__facebook.github.io_react-2Dnative_&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=e9hAWWmY2S0Mo76_ex-_PF0NFk6ccgclP50872TSMfs&e=
>
>
> When it makes sense I select UI components that have
> counterparts in Android
> and iOS in order to increase code re-use. I have seem claims
> of 85% code
> re-use and from my experience I do not doubt these claims.
>
> So far, so good...
>
> -Ed
>
>
>
> Thanks,
> Kind regards,
> Robert
>
>
> On Thu, Nov 5, 2015 at 2:40 PM, Edward Sutton
> <edward.sutton at subsite.com>
> wrote:
>
> Hi Robert,
>
> The approach you outlined below was the one I was considering.
> Use of common
> C++ business layer, widgets for desktops, iOS native UI, and
> Android native
> UI.
>
> The Android native UI was my biggest concern.
>
> I am going to continue experimenting with QML for a few more days
>
>
> Hi Ben,
>
> Thank you for sharing your Android UI interfacing code. I
> will take a look.
>
> Your iOS UI interfacing code was *very* helpful in
> understanding how to mix
> C++ and Objective-C++ in the same *.mm file. Java seems much more
> challenging to interface to native UI. However all I have
> done so far is
> simple JNI calls into Java.
>
> Thank you both,
>
> -Ed
>
>
> On Nov 5, 2015, at 1:51 AM, Ben Lau <xbenlau at gmail.com> wrote:
>
>
> Not really a solution for wrapping Android UI in Qt app. But I
> have already
> developed an image picker with native UI and communication
> library between
> Qt and Java/Android. May be it could used as example / core
> framework.
>
> Image Picker
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_benlau_quickandroid_blob_DEV_QuickAndroid_ImagePicker.qml&d=CwIBaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=nrrSNDcnq0DATI4qf2zrUTNMu_m6wsOws_Oz0VoTjAU&s=b9qfgeLoPCVjdDxzeFLLLuGl5EwnXG7Gv0sTjZwTjwU&e=
>
> System Dispatcher - Invoke Java/Android function and vice visa
> without using
> JNI. Data type conversion is handled automatically.
>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_benlau_quickandroid_blob_DEV_qasystemdispatcher.h&d=CwIBaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=nrrSNDcnq0DATI4qf2zrUTNMu_m6wsOws_Oz0VoTjAU&s=m04hl55EIBiEA7ELiqTGCj-dyEOx30iqkz2skvOT-rM&e=
>
>
>
> -Ed
>
>
> On Nov 5, 2015, at 1:36 AM, Robert Iakobashvili
> <coroberti at gmail.com> wrote:
>
> Dear Ed,
> It seems that I have something native for iOS, but not for
> Android.
>
> I was thinking now about another path to take:
>
> 1. Common layer - with business app logic;
>
> 2. Presentation layer with the below options:
>
> 2.1 Qt Desktop layer to cover Win, Mac and Linux;
> 2.2 iOS-Native;
> 2.3 Android-Native.
>
> Please, update us on your success of co-existence between
> Qt-Widgets and QML and whether after adding QML it is still
> sustains tough memory environment on iOS and low-memory
> Android devices.
>
> Thank you in advance.
>
> Regards,
> Robert
>
>
> On Tue, Nov 3, 2015 at 5:12 PM, Edward Sutton
> <edward.sutton at subsite.com>
> wrote:
>
> I know I can use native iOS UI by mixing Objective-C++ and C++
> in the same
> *.mm file.
>
> I have done a little Android JNI. Are there any examples for
> interfacing to
> Android native UI elements?
>
> I need to create a UI picker for manually entering GPS
> latitude and
> longitude in degrees, or degrees, minutes, seconds for a
> widgets app. I
> expect it will be hard to make a touch usable widget UI
> picker. Developing
> a native interface may take similar amount of time but result
> will be much
> superior.
>
> Thank you for your advice,
>
> -Ed
> This email and any files transmitted with it from The Charles
> Machine Works,
> Inc. are confidential and intended solely for the use of the
> individual or
> entity to which they are addressed. If you have received this
> email in error
> please notify the sender. Our company accepts no liability for
> the contents
> of this email, or for the consequences of any actions taken on
> the basis of
> the information provided, unless that information is
> subsequently confirmed
> in writing. Please note that any views or opinions presented
> in this email
> are solely those of the author and do not necessarily
> represent those of the
> company. Finally, the recipient should check this email and
> any attachments
> for the presence of viruses. The company accepts no liability
> for any damage
> caused by any virus transmitted by this email.
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.qt-2Dproject.org_mailman_listinfo_interest&d=CwIBaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=nrrSNDcnq0DATI4qf2zrUTNMu_m6wsOws_Oz0VoTjAU&s=aIs7iOEK4KMToKD_jb-tP9y5aOCs9wfSJ8tXHkjMU1U&e=
>
>
> This email and any files transmitted with it from The Charles
> Machine Works,
> Inc. are confidential and intended solely for the use of the
> individual or
> entity to which they are addressed. If you have received this
> email in error
> please notify the sender. Our company accepts no liability for
> the contents
> of this email, or for the consequences of any actions taken on
> the basis of
> the information provided, unless that information is
> subsequently confirmed
> in writing. Please note that any views or opinions presented
> in this email
> are solely those of the author and do not necessarily
> represent those of the
> company. Finally, the recipient should check this email and
> any attachments
> for the presence of viruses. The company accepts no liability
> for any damage
> caused by any virus transmitted by this email.
>
>
> This email and any files transmitted with it from The Charles
> Machine Works,
> Inc. are confidential and intended solely for the use of the
> individual or
> entity to which they are addressed. If you have received this
> email in error
> please notify the sender. Our company accepts no liability for
> the contents
> of this email, or for the consequences of any actions taken on
> the basis of
> the information provided, unless that information is
> subsequently confirmed
> in writing. Please note that any views or opinions presented
> in this email
> are solely those of the author and do not necessarily
> represent those of the
> company. Finally, the recipient should check this email and
> any attachments
> for the presence of viruses. The company accepts no liability
> for any damage
> caused by any virus transmitted by this email.
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.qt-2Dproject.org_mailman_listinfo_interest&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=uqkwZ-luxwKEVRGiNcxeHyJJsLYoSoDf-8BpMtqNlGI&e=
>
>
>
> --
>
> ekke (ekkehard gentz)
>
> independent software architect
> international development native mobile business apps
> BlackBerry 10 | Qt Mobile (Android, iOS)
> workshops - trainings - bootcamps
>
> BlackBerry Elite Developer
> BlackBerry Platinum Enterprise Partner
>
> max-josefs-platz 30, D-83022 rosenheim, germany
> mailto:ekke at ekkes-corner.org
> blog:
> https://urldefense.proofpoint.com/v2/url?u=http-3A__ekkes-2Dcorner.org&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=ROE9tC5zKiyvW2K7t2UO997CRQQSluLCIoM811REO6I&e=
> apps and more:
> https://urldefense.proofpoint.com/v2/url?u=http-3A__appbus.org&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=C74B2iQ6kB6KtX4Ox9CndK1CWN7IgAK6EBI6gXq8-ro&e=
>
> twitter: @ekkescorner
> skype: ekkes-corner
> LinkedIn:
> https://urldefense.proofpoint.com/v2/url?u=http-3A__linkedin.com_in_ekkehard_&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=vAySIiYQSFceQQiKLG1CpgRKNiRU07W2tV1hcwMAy5I&e=
> Steuer-Nr: 156/220/30931 FA Rosenheim, UST-ID: DE189929490
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.qt-2Dproject.org_mailman_listinfo_interest&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=uqkwZ-luxwKEVRGiNcxeHyJJsLYoSoDf-8BpMtqNlGI&e=
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.qt-2Dproject.org_mailman_listinfo_interest&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=uqkwZ-luxwKEVRGiNcxeHyJJsLYoSoDf-8BpMtqNlGI&e=
>
> This email and any files transmitted with it from The Charles Machine
> Works, Inc. are confidential and intended solely for the use of the
> individual or entity to which they are addressed. If you have received
> this email in error please notify the sender. Our company accepts no
> liability for the contents of this email, or for the consequences of
> any actions taken on the basis of the information provided, unless
> that information is subsequently confirmed in writing. Please note
> that any views or opinions presented in this email are solely those of
> the author and do not necessarily represent those of the company.
> Finally, the recipient should check this email and any attachments for
> the presence of viruses. The company accepts no liability for any
> damage caused by any virus transmitted by this email.
> _______________________________________________ Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160507/4b4f91b0/attachment.html>
More information about the Interest
mailing list