PDA

View Full Version : Qt on Android - where is Qt own effort in it?



TorAn
2nd September 2010, 14:11
Samsung Android-based Galaxy slate had been just announced. I am aware of the existing efforts (http://gitorious.org/~taipan/qt/android-lighthouse) to create invocation of qt apps on Android, but I wonder - why there is no official Qt push to help with this project? Explosive growth of Android devices will surely benefit Qt/nokia. For now it looks like a hobby project, I wish them well of course, but Qt silence on Android support is rather strange, isn't it?

I am horrified when I think of porting Qt app to Java...

Ben1
2nd September 2010, 15:03
May your response is here

http://www.qtcentre.org/threads/32837-Qt-in-Android-Possible

but I don't really know

Lykurg
2nd September 2010, 15:05
Once Qt tried to move to Java (Qt Jambi), but they stop that. On the other hand android is an "enemy" for Qt/Nokia's favorite Symbian platform mobile phones (At least I think so). Thus I don't think we will see any actions of Nokia to bring Qt to Android.

wysota
2nd September 2010, 15:17
Samsung Android-based Galaxy slate had been just announced. I am aware of the existing efforts (http://gitorious.org/~taipan/qt/android-lighthouse) to create invocation of qt apps on Android, but I wonder - why there is no official Qt push to help with this project? Explosive growth of Android devices will surely benefit Qt/nokia. For now it looks like a hobby project, I wish them well of course, but Qt silence on Android support is rather strange, isn't it?

I am horrified when I think of porting Qt app to Java...

There are agreements between mobile-device vendors not to tresspass each other's playgrounds. Thus no official iPhone port for Qt too. But Qt is Open Source so nobody can stop a private initiative to provide such a port.

TorAn
3rd September 2010, 14:56
There are agreements between mobile-device vendors.

What are iPad-type devices in your opinion - mobile device or something that goes outside of mobile devices domain? I am on the opinion that they are definitely not "mobile" as this terminology is currently being used. Pretty soon we will have more types of such mini-micro-thin-laptops-pads-slates, powered by Apple, Android, Linux and Windows. So, Qt-based software products will not work on Android, which looks to occupy significant segment of the market. But Java products will happily move from one slate to another. Where does it leave Qt development compared to Java? I am worried. My reluctance to do anything with Java might just be one of the biggest professional mistakes...

That's why I am reading this forum and others almost daily to see any official Qt-nokia reaction on this subject. Hey, anonymous Qt guy! If you are reading this forum, please post some comments either on your official blog or right here. People like me will greatly appreciate knowing official Qt-nokia point of view. May be, if there is enough interest from the community, we can directly ask Qt to comment?

wysota
3rd September 2010, 16:49
What are iPad-type devices in your opinion - mobile device or something that goes outside of mobile devices domain?
I'm not sure what it has to do with the subject. If iPad is compatible with iPhone then obviously an agreement based on iPhone will also apply to iPad software.


So, Qt-based software products will not work on Android,
Nobody said that. Android is not as closed as iPhone's OS nor as the new Windows Mobile will probably be so deploying 3rd party software there should be possible. For iPhone and Win Mobile 7 (or whatever this is going to be called) you'd be breaking the law by installing 3rd party software. I know this is stupid but that's the way it is.


which looks to occupy significant segment of the market. But Java products will happily move from one slate to another. Where does it leave Qt development compared to Java? I am worried. My reluctance to do anything with Java might just be one of the biggest professional mistakes...
You don't see (official) iPhone or Android software moving towards i.e. Symbian devices, do you? In general mobile software is not compatible across device vendors. Even some Java-based software works on one phone but refuses to work on another. I'm not that much into mobile market currently but for me this is great that (in theory) I can have the same software for my mobile as I use on my desktop. "Other" guys don't have such possibility.


That's why I am reading this forum and others almost daily to see any official Qt-nokia reaction on this subject. Hey, anonymous Qt guy! If you are reading this forum, please post some comments either on your official blog or right here. People like me will greatly appreciate knowing official Qt-nokia point of view. May be, if there is enough interest from the community, we can directly ask Qt to comment?
The official Nokia's point of view has already been stated in this thread. It's not a secret and you can easily hear it Nokia people say it i.e. during DevDays (which I stongly invite everybody who's interested in Qt development to visit).

TorAn
3rd September 2010, 17:09
Regarding your first comment:

You stated that "there are agreements between mobile-device vendors not to tresspass each other's playgrounds". I am merely saying that in my opinion iPad and other devices of similar size are closer to the minibooks then to "mobile" device such as cell phones. I would not want to see Qt-nokia to extend agreement not to trespass applied to such iPad-size devices.

wysota
3rd September 2010, 17:36
The agreement is probably about software and not hardware. And besides, Nokia and Apple are already arguing over patents for mobile solutions so I wouldn't be suprised if we saw an official iPhone Qt port next year ;)

squidge
3rd September 2010, 17:47
You stated that "there are agreements between mobile-device vendors not to tresspass each other's playgrounds". I am merely saying that in my opinion iPad and other devices of similar size are closer to the minibooks then to "mobile" device such as cell phones. I would not want to see Qt-nokia to extend agreement not to trespass applied to such iPad-size devices.Have you read the Apple developer licensing agreements? (the ones you have to agree to before they'll even allow you to download the SDK) They specifically state exactly what libraries you may and may not use. Last time I read it (they update it frequently) they expected you to only use there own SDK and UI libraries. If you wanted to use someone elses, fine, but don't expect your app to get accepted into the iTunes store (so you can only run it on your own device + Jailbroken ones)

TorAn
3rd September 2010, 18:06
Have you read the Apple developer licensing agreements?

No, I have not, but I am familiar with Apple approach to sftw.development, OS and hardware. That's why I don't have any current or future plans to do anything with this monster. I don't care about closed platforms one bit, but android platform is another story. Do you agree that in not so distant future you will find number of android - powered slates/minis in you nearest BB? How can we port our Qt investment to these devices?

squidge
3rd September 2010, 18:17
[long message lost as I clicked "Reply to thread" after "Reply" and so it zapped my message. We really should do something about that!]

Short version: There are people porting Qt to Android, but I don't think it'll work the best unless they are developing it as a layer on top of the Android UI SDK to keep the same look and feel of Android apps.

TorAn
3rd September 2010, 18:24
There are people porting Qt to Android, but I don't think it'll work the best unless ...

That is exactly my point. I very much hope that Qt/nokia will consider support of Android in "out-of-the-box" fashion, since it became one of the options for scaled-down "desktop" OS. Leaving it for open-source development is very problematic. That's why I am rooting for the reply from Qt/nokia people. Not the reply from 6-12 months ago, but the one that is considering possible new realities.

wysota
3rd September 2010, 18:29
[long message lost as I clicked "Reply to thread" after "Reply" and so it zapped my message. We really should do something about that!]
Yeah, we should. In the meantime: Lazarus (https://addons.mozilla.org/en-US/firefox/addon/6984/)

shmerl
27th September 2010, 01:03
How mature is Qt for Android project presently? Can one use the latest release of Qt, and for example Qt Quick with it? The reluctance of Nokia to port Qt to other mobile platforms can be probably explained by their market interests, but this really hurts Qt as a cross platform library.

wysota
27th September 2010, 12:03
but this really hurts Qt as a cross platform library.
Please point another toolkit similar to Qt that is available for as many platforms (both hardware and software wise) as Qt.

While other toolkits are available for one or two platforms, I don't think it "hurts" Qt to be available for 31 and not 32 (arbitrary numbers) under very generous (in my opinion sometimes too generous) licences. Qt is open source with open contribution model, nobody stops anyone to help port Qt to any platform one sees fit, including the ones Nokia is not currently working on. Android and iPhone is one thing but we have seen the focus turning away from desktop platforms too and somebody should fill this void either with direct contributions to Qt or through 3rd party additions.

TorAn
27th September 2010, 14:30
I don't think that anyone reading/writing this forum denies the value of Qt as a great cross-platform C++ toolkit. The issue is that Android is becoming a major player in desktop OS marketplace, in addition to it's position in mobile market. I personally believe that NokiaQt is set to loose big time if they are not going to support Android "officially". I doubt that the efforts of the open-source community will be sufficient to create and support Qt port to Android, but I'll be happy to be wrong.

squidge
27th September 2010, 17:37
It will take some serious development to run Qt on the Android platform. If your going to do it, you need to do it right, which means keeping the look and feel of applications to those that use the native UI kit. This gives you some restrictions also. It's not just a simple porting project, but something that needs to be carefully planned and implemented if it were to be an official version of Qt.

I don't think Nokia at the moment are willing to invest this amount of time, and I also think that they don't want to tread on other peoples toes (eg. Google), which is why also Qt does not exist officially for iPhone.

shmerl
27th September 2010, 20:45
One of the major problems with mobile development presently - is a horrible fragmentation. It's very hard to write a decent application in a cross platform manner (unless one limits it to HTML/JavaScript and some other Web technologies with something like Rhodes mobile (http://rhomobile.com/) or JqueryMobile (http://jquerymobile.com/)). One is basically forced to rewrite it for each platform independently, which hugely duplicates the effort.

Qt could really be a big help here, if it would allow real cross platform development. Come on, Android and iOS are major players, saying 31+ platforms but without Android and iOS really greatly diminishes the value of Qt for mobile development (for desktop it's unquestionably the great solution). On the other hand, Qt for Android (http://code.google.com/p/android-lighthouse/) project looks pretty active, as well as Qt for iPhone (http://qt.gitorious.org/+qt-iphone/qt/qt-iphone-clone). I was just asking if anyone here evaluated how mature they are.

About treading on someone's toes - it's a political issue. Real open source projects should not be tainted with politics (alas, it's rarely the case). Using Qt on Android or iOS will not decrease the number of apps for these OSes. If something it will only increase them. However corporations are preoccupied with controlling the market through development tools, but development tools IMHO should be neutral.

squidge
27th September 2010, 22:26
Sure, iOS is a mjor player, but it also has major licensing. It's a question whether or not apple would even allow you to use Qt in your own application without approving it (and they would have to approve each and every version, no doubt) as they used to (don't know if they still do) have a ban on libraries which duplicated functionality already in the iOS (basically, you were expected to use the builtin UI libraries).

Heck, I remember when Apple clearly stated "If it isn't written in Object C, it will not be approved for the App store.", and "If your application is capable of browsing the web, it must use the iOS WebKit framework and no other", and don't forget about the rule that states you application may not interpret or compile code locally, so goodbye QtScript.

wysota
27th September 2010, 22:28
I'm not sure of that (I only heard about it) but I think you can't deploy any third party libraries on the fruit company devices.

shmerl
27th September 2010, 22:51
You probably heard, that Apple recently relaxed their SDK agreement, (probably out of concern regarding antitrust investigations). So some major blockers were removed. (There is still a limitation on Apple WebKit for downloaded scripts, but not for local anymore, so QtScript should be legit. Of course in the end it's up to their store approval to decide, but we are talking about legal concerns of using their SDK, not about approval itself. I.e. it may be legal, but not approved, for example because of some side reasons. In such cases one can use Cydia app store for example, etc.

Here is an example of what they changed:

OLD:

3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

NEW:

3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

jumico
30th September 2010, 02:48
I don't think I saw this mentioned but qt will be on meego. As someone else said Nokia is competing with android. I think Nokia said they wont release an android handset. Also it would be more of google's job to support qt on androd.

squidge
30th September 2010, 07:58
They are just afraid of losing control of there own platforms. For example, some other company comes along, establishes a de facto standard cross-platform software platform on top of the original manufacturers own. Everyone starts using it. Then it's upto the cross-platform-sdk manufacturer company to keep that cross-platform sdk up to date, so in effect, they are now controlling what developers use.

spbSeb
2nd October 2010, 10:48
There is an alternative to porting Qt to iOS and Android - port them to Qt. :) To clarify, if Qt contained abstraction veneers and perhaps a bit of help from moc (or a new preprocessor) to provide substantial iOS and Android support in generic code then when you intend to write a portable mobile app you make an effort to use those veneers and preprocessor functions and a small subset of "proper" Qt. On a desktop system, those veneers just translate to the "proper" underlying Qt classes, but on mobile devices they translate to suitable iOS and Android calls. Veneer source-code suitable for use in the iOS and Android SDK would be provided for inclusion in ports to those systems.

You would not be able to just cross-compile to another platform (partly because of language incompatibilities, device differences, and licensing restrictions) but hopefully the porting and maintenance effort might be reduced to mostly cut-and-paste and minor patching. I know it's not ideal, but considering the difficulty of providing the alternatives might it not be a possibility?

shmerl
14th October 2010, 04:57
I think all platforms which have NDK potentially allow a Qt port. Since unfortunately Nokia has its own internal restrictions, it's up to community to generate enough interest for ports to happen. (It would be really great if Qt would be managed by an independent neutral foundation, but hey, Nokia already did a great thing - opened Qt under LGPL in the first place, which is already a lot).

freely
11th May 2011, 07:13
There is Necessitas suite for dev. to Android:

Hello,
After I've downloaded Android SDK and Android NDK and I've created AVD Android 2.2 API level 8
and I've installed Necessitas tool for building and deploying Qt applications to Android OS I've assigned Android NDK toolchain version as arm-linux-androiddeaby-4.4.3

I've putted Qt version and Android SDK and NDK versions in Qt Creator options I've got android directory with shell java files created as in the videos only when launching as root.
But the problem is when I build Qt project ( with android directory created in project folder's root ) I get following error both on root and user login:

Assembler messages:
Fatal error: Invalid -march= option: `armv5te'
in main.o

Does anybody know why that message ( error ) ? What is the problem? Why it can't be built?
Thank you very much. I will try to help here too.