HOWTO qt app without ministro

BogDan Vatra taipanromania at gmail.com
Mon Nov 19 18:59:07 UTC 2012


Hello,

Before I'll answer to some of your questions, I want to clarify a few things.
We, the people behind Necessitas
(http://necessitas.kde.org/people.php), are doing this job for *FREE*
only on our spare time, just because we love to do it.
We are *COMMITTED* to do what *we believe* it is the best for Qt, for
developer and the most important for *USERS*.

Personally, I write a lot on this subject, but it sees it was not
enough, I'll do it one more time now.
You may wonder why I bother to create such a complicated flow and why
I didn't chose to bundled all the needed Qt libs together with the
application or to statically link the application with qt libs? The
answer is simple, if you bundle Qt libs your application package will
be *HUGE*, let me explain more: I had a hunch that there are a lot of
low-end devices (armv5) out there, so, I asked KDE sys-admins if I can
get simple statistics (download count) about the files which are
downloaded from kde.org, they kindly provide me the needed information
and my hunch become reality. According to these stats 45% are armv5
low-end devices, most of these devices have less than 512Mb of disk
space. If you plan to release an application that targets  two
platforms you'll need to bundle Qt libs twice (e.g. armv5 and armv7),
so your package will need 40-100Mb *ONLY* for Qt libs (if you plan to
add VFP support for armv5 and NEON for armv7, you'll need to double
that size). For the most Android users (not only for those how have
low-end devices) is not acceptable to download 100Mb for an
application which doesn't do too many things! There are only a few
apps that are bigger than 25Mb that are downloaded by Android users.
Ministro solves this problem by downloading the right libs for the
user platform *ONLY* once, in a central location, so if the user will
install a new Qt application it will use the existing libs, already
downloaded for other apps. Even more, it detects if the device has an
armv5 CPU with VFP or an armv7 CPU with NEON and it can download libs
tuned for that CPU.
Because I'm committed to do the best for the users and because I'm not
planning to punish them to download 40-100Mb for every Qt application,
I spend a lot of time to invent, design and code Ministro.

Why I believe it is also good for the developers? Static linking (also
bundling Qt libs) to your package comes with even more challenges than
the package size, developers *MUST* provide a way to users to repack
the application with other Qt libs (please check LGPL license on this
matter) or to use a commercial Qt license. Using Ministro, developers
don't have to worry about this problem.

Because I truly believe that Ministro is the best solution for the
users and also for developers, personally I'm not going support or to
spend a single minute on other solutions (static linking, bundling
then into application, etc.) ! It doesn't mean that if anybody creates
a *CLEAN* patch, I'm not going to accept it!
I'll accept any patch with two reasonable conditions:
 - the patch *MUST* not affect existing apps and design in any way.
 - the committer *MUST* update the work every time we'll do a new
release if is necessary.

Also you are free to add this information to necessitas wiki.

Because I don't want to start a flame war here, most probably this is
my last post on this matter.

Now the FAQ part:

> With due respect, this falls into category of making assumptions about what
> everybody needs based on your own needs or perhaps likes. For me, and I
> would venture to guess a good proportioin of others, your assumption is
> wrong.
>

Ray already answer this problem, and I fully agree with him on this matter.

> The benefit of bundling libraries with the app is pretty clear - the end
> user does not have to deal with another unfamiliar step during installation.

The user will do this "unfamiliar step" only once, then (s)he will
forget about Ministro. IMHO is fair trade for not downloading Qt libs
many times.

> What's more, downloading Qt libs after purchasing an app may take up their
> 15 minutes of being able to claim a refund. They get angry if it doesn't
> work out and can't get a refund (e.g. a bug that affects their device or
> they didn't fully understand the app before buying). What follows are
> negative comments, support requests and manual refunds.
>

Hmmm ... if I recall correctly, last time when I bought an application
(a few weeks ago) the purchase notification came to my mail before I
finished the application download. So I wonder how the user will be
able to download in 15 minutes an application that is two times bigger
than Qt libs that are downloaded by Ministro, but (s)he doesn't have
enough time for Ministro to download the libs? Something doesn't fit
in my mind here ...


> If there were a clean solution to this which costs me say $10000 I
> would pay for it to override Ministro.

With all due respect, I'd like to inform you that there are things and
people that can't be bought. For those interested to help us with
money, stating with alpha4, we added an option to necessitas website
where people can make selfless donation:
http://necessitas.kde.org/getinvolved.php


> And when I try to deploy my app in the market, I found that a lot of
> devices don't support Google Play. This means there is no way for user to
> get qt libraries from Ministro.
> The necessity to be linked to Google Play is stopping me too as i
> deploy a lot on Amazon Market.

Please send me a links with all those markets and I'll upload Ministro
to all of them, of course it should not cost me too much money to
create accounts:). I already did it for SAMSUNG apps, appslib.com,
etc.


>Now that I've got the first reactions, I can tell it is a problem.
>I have some complains on this matter from xxx users....

Ministro was successfully download by +2.9M user (yes, almost three
millions users !). What makes you think that your users are more
stupid than these 2.9M users?
It is not Ministro's fault because some of your apps are not wanted
and users don't download them.... Instead of blaming Ministro and
wasting time to remove it, I'll use that time on the application
itself ...

> To address the size issue, I'm going to release two apps on the Market, one for armv5 and one for armv7 !

Be serious! An user that is not able to install Ministro, I bet (s)he
can't make the difference between armv5 and armv7 !


>  Some users doesn't complete the installation, because they think we are installing a malware in their back.

Ministro got these bad reviews for a few reasons:
 - most of the users don't make the difference between Ministro and
the application that they just installed. If you check Ministro's
users comments, you'll see that +90% they are referring to other apps
that they just installed. It seems that there are a few apps that
users really don't like.
 - there are some users that installed Ministro hopping it is a hot
shot game/application without having the curiosity to read the damn
description.
 - there are users that finds unacceptable to download an extra xxMb
of libs. I bet these users will not accept to install the same
application that is twice bigger!

I'm doing my best to help people to understand what Ministro is and
what is its purpose, a little help from your side will be very
appreciated.


I really hope I didn't offend anyone, if I did it, it wasn't my intention !

Yours,
BogDan.


More information about the Necessitas-devel mailing list