[Android-development] On False Promises ...

Rubi Mazaki rubimazaki at gmail.com
Mon Jan 6 13:29:43 CET 2014


It’s the greatest thing since the wheel! I told them. They have iOS+Android
support out of the box! They can even debug C++ on Android!

After 8 hours of download I finally managed to get the 5.2.0 Android
installation for my Windows machine.
Being an android developer at my day job, I wanted my home group (my
startup…) to start using QT for some mobile app we plan. So, after
reviewing a number of cross platform frameworks, and being a QT fan for a
number of years now, I told the guys that this is what we need. The right
way to develop cross-platform software..

Once the installation finished, I immediately opened the first sample that
caught my eye. Some photo viewer. Trying to run it I found that the
deployment failed for some reason. Investigating the cause got me to
understand that, I had no Android NDK installed, and that my Android SDK is
not updated.
To make things short, after seeking the right version of NDK to install I
understood happily, that Qt supports the last version of the
NDK(9.something..) which is a plus.

At this point I must say, that a newbie to Mobile dev would flee to
Titanium Appcelerator. Why did the installer not installed the SDK/NDK (or
at least asked to)?

Being a super Qt/Eclipse dev, and an experienced Android dev, I knew that
“just running” QT without setting up the environment variables (JAVA_HOME,
PATH – with java JDT bin path in it, and without other dev environments set
to it…) Qt will just not compile android apps. So, with that experience,
and for my knowledge most people will fall in this path HELL, I managed
compiling the Android app, and I even managed to select the right arm5/7
for my phone (Samsung Galaxy II) – another pitfall..
Newbies don’t understand the difference between x86 (emulator) arm5 (old
phones?) and arm7 (new phones?). Even novice android devs don’t really know
the difference between the arm versions..

Finally! I managed to deploy the QML app to the Android device. It even run
after showing me weird errors about QML debug info that is missing from my
application. Whatever I said. This will not stop me. QML can be debugged on
the computer, and C++ is better anyway (considering that Native UI
components are out of the scope anyway?)

I than found that, the controls in the applications look very small, and
that the photo-surface sample could not access any photo on my phone. It
started in the wrong (apparently) folder, and after trying to navigate
through the directories I got the application stuck after 5 attempts. I
didn’t see a single photo …

Ok, I told myself. I am strong. I am potent. I can do it .. or not..

I looked up in the internet, and found that I could merge in an
AndroidManifest.xml file. Maybe if I would set the permissions, the sample
would finally work!
I didn’t find too many places describing how to set my custom
AndroidManifest.xml into the .pro project file. But I pushed harder, and I
found that if you specify the source directory for the AndroidManifest.xml
than you could get it to work. After some trial and error, I setting up all
of the available android permissions to the sample. I even checked on the
application menu of the phone, and the permissions where successfully set.
All the 350 of them :)

It didn’t help though.. It still didn’t show any photo, and I still could
not browse to the right folder…
I gave up on that sample, and tried a few more others.
To short it up: I found out that none of the samples did work as expected,
and the only one that did run was “chip” which did not fit to my small
mobile screen…

There are at least 3 samples using WebKit in the sample directory. Webkit
is not supported in the arm builds. I found it out googling it out… there’s
an open issue in the Qt JIRA.

I know one can use Qt to develop mobile applications. I just know it :) But
the installation (not to talk about the slow to hell download available by
the qt-project.org site) missing critical parts (Android at least…) and the
Samples directory filled up with malfunctioning samples, all fit maybe to
tablet x86 emulator, are just inadequate for starting up development.

These are small things. But they put Qt in a very bad light.

My Proposal:
1. Downloads can be put to torrents. Even with open source resources – Let
some people be the “torrent keepers” (I volunteer my home connection at day
time..) use uTorrent and leave the downloads open.
2. Add Android installations (sdk/ndk) into the Android installer. Make it
setup the paths right to the environment.
3. Remove all samples from the directory and enter them back, one by one,
once they are adapted for mobile development! It is better if there are no
samples at all at first !!!
4. armv5/7 ?? what are these? we don’t know… You need to let the developer
know what to choose.. when to use arm5 and when arm7. Best if this is
available in the GUI of QtCreator.
5. If QML debugging is not supported on a real phone, don’t even let me
start the deployment. It is much more constructive for the developer to
know what he/she can’t do at development time, and not after the deployment…

Hope my “recommendations” will fall hard on good ears :)

With Regards,

Rubi Mazaki
Email: rubimazaki at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/android-development/attachments/20140106/e2f60dc6/attachment.html>


More information about the Android-development mailing list