[Interest] qt vs web-runtime

Kate Alhola kate.alhola at gmail.com
Thu May 3 12:39:44 CEST 2012


On May 2, 2012, at 8:37 PM, ext Nicola De Filippo wrote:

> Hi,
> >Hi,
>  
> > However, you must expect binary compatibility problems in the future.  Intel is looking to grab a share of the market, and remember also that MIPS got themselves Android certified before Intel did.  There may also be edge cases of incompatibility between the various vendors' ARM-based solutions.
> >

Is future binary compatibility any real issue, you could always compile your application for that architecture. It is not and it has not been problem.

>  
> > You'd have a significantly increased amount of testing to do, across the various hardware types.  A HTML/JS based solution sidesteps that problem.
> 

Js is just a programming language, how it solves this issue ? Hardware is about always accessed via some abstraction API that hides the implementation.
Hardware capabilities are still there and no programming language can fig them. Good example is screen resolution and size.

> > An Android user is unlikely to know details about which CPU they have, and I have not yet seen a clean solution for making a single apk which supports multiple architectures...  but I haven't been looking very hard either!

Necessitas packs actual Qt application actually as .so library that is called from Java wrapper. If necessitas is going to support other platforms, wrapper could easily chose .so library for that architecture.

Remember that all these CPU/architecture stuff affects all native code , C/C++/ObjectiveC with Qt or not.  Typical example is cross platform games written in C++/OpeGl

> > 
> > Perhaps somebody else on this list has looked into it.
> > 
> > How much control do you have over your target platform?
> > Personally, I would not recommend Qt for creating Android apps for the general public, purely because of the testing and deployment issues.  This is not the case for iOS; don't know about WinPhone hardware.

This is issue for all Android development what ever language you use. Android is so fragmented platform and that's the problem. No programming language can 
fix this problem.

>  
> > If you are looking to target Android, WinPhone and iOS with a cross-platform app, and if the app's functionality is possible with HTML/JS, I would suggest looking at PhoneGap with jQuery Mobile.
> 

I am not convinced about these Web runtimes. They have been around years and have not been big success. They are good in limited
usecase I don't believe that they could be successful as general purpose environment like C++ before I see even one successfull Web runtime based
platform. I agree that in certain cases, Web runtime based approach could be easiest but that depends on yoyr application..

> > I should also mention that there is a port of PhoneGap to the 'Qt platform' called 'callback-qt'.  It's a little lacking in plugins, but it does work.  This means you can have your PhoneGap app run on Windows, Linux etc - which may help development.
> > 
> > 
> > 
> > > I do not like losing...
> > 
> > If you let your personal preference trump your objectivity, I would say you had already lost!  What is the best solution for the person who has to use the software you produce?
>  
> Your speech is very consistent, but it seems that qt is almost useless
>  
> 

That depends what you do. If you can live with limitations with Web runtimes, that's way to go. If you require speed, performance and rich set of API's for native C/C++ code and good cross platform portability Qt is obvious choice. We could then have discussion that should we use Qt or just plain system independent C++. If you use plain C++, then your code is even mode portable when there is no external dependencies but then you need handle abstraction of many system dependent API's yourself. Basically you end up re-inventing wheel, Qt, creating a platform independent  library.

I age a lot with Harri, I have also written application with Qt/Qml that runs on MeeGo/N9, Android, iOS, OSX, Linux desktop and could run on other platform but I have not just tried. The C++/Qt code is common for all platforms, very little amount of #ifdefs even needed. Just some things like Joystick support etc needed #ifdefs. All UI is made with QML/Components and different UI style is just chosen be loading different Qml main file. Desktop version uses Desktop components, MeeGo and Android uses MeeGo components and there is also support for Symbian components.  The thing I love in Qml is that I can easily tailor UI for particular platform and device.



Kate
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20120503/89f52c41/attachment.html>


More information about the Interest mailing list