PPAs for Ubuntu SDK

I posted about Ubuntu PPAs back in 2013:

I have started to setup the Quirky build system to build Quirky from Ubuntu 15.10 Wiley Werewolf (alpha1) DEB packages, with a view to creating an out-of-the-box developer platform based on QtCreator.
This is an idea that I introduced here:

The PPAs that have the QtCreator DEBs for Ubuntu Phone development are here:

I have put this repository into the Quirky Package Manager, so these PPA DEBs will be readily accessible and installable.
The repo will be named "ppa_main" in the Package Manager.

Read all about the Ubuntu SDK, which is QtCreator with enhancements for Ubuntu Phone development, here:
Posted on 5 Jul 2015, 9:49 - Categories: Quirky

Qt dual-licensing

I raised this question in a recent post:

I was browsing in a forum yesterday, and a couple of guys in South America were discussing the cost of various application-development products, and complaining that they are too expensive.
For a guy who is not on a top "First World" salary, most of these commercial licenses are too expensive.

Qt is asking US$174 to $315 per month for a commercial license, but do we need it?

I am thinking of a young chap on limited income, who would like to create an app, and make that a career, that is, live from proceeds of sale of that app.
This is to be encouraged -- there is nothing like money to encourage someone to keep on developing their application!

I read the Qt licensing terms a bit more carefully, and it does seem that someone can create an application and distribute it closed-source. But, there is a catch!

Look at this site: http://www.qt.io/qt-licensing-terms/
In case of dynamic linking, it is possible, but not mandatory, to keep application source code proprietary as long as it is "work that uses the library" – typically achieved via dynamic linking of the library. In case of static linking of the library, the application itself may no longer be "work that uses the library" and thus become subject to LGPL. It is recommended to either link dynamically, or provide the application source code to the user under LGPL.

This is further clarified here: http://www.qt.io/faq/
The LGPL allows you to keep the source code of your application private as long as it is "work that uses" the library. Dynamic linking is usually recommended here.

However, it is required in your application to acknowledge that it uses LGPL libraries:
The user of an application or device using LGPL licensed software has to be notified of their rights by providing a copy of the LGPL license to the end user and displaying a prominent notice about your usage of LGPL licensed software.

The catch
So, you can create and distribute a closed-source application, but only where the target environment already has the LGPL libraries. If you need to include the libraries in your application-package, then you must have a commercial license.
EDIT: I got that wrong, see comment.

Linux is usually OK. Ubuntu Phone is going to be OK. Anything else, such as Android (?), iOS, Windows, and Mac, is not OK.

A loophole?
My reasoning is that if you can split a package, provide the LGPL libraries as a separate package, with user access to the source code, and another package with closed-source application, that would be legal.
However, I don't see how it can be done in a locked-down environment such as Android and iOS -- it seems that you would need administrator rights when installing the library package, that is, a "rooted" phone.

Well, apparently the iOS App Store forbids an app to require outside shared libraries. So Qt must be bundled in the App, so a commercial license is required.

Another loophole?
If you develop your app using the LGPL license, and distribute it closed-source for Linux and Ubuntu Phone, could you then purchase just one month of the commercial license and build your app for distribution to Android, iOS, etc.?

Very messy/restrictive, but apart from that, would it be legal?
Posted on 5 Jul 2015, 15:06 - Categories: Quirky

So many cross-platform app developers

My previous two posts started looking into a cross-platform tool for developing apps:

This is a good list of them:

...though, that list focuses on tools to target phone and tablet platforms. I do want that, but would also like, if possible, to target desktop platforms, such as Linux and Mac.

One that really stood out as superb, is Smartface:

The host platform is Windows only, and only two targets, Android and iOS.

I got it running, and it is lovely. The amazing thing is we get the fully-featured product for free.
It ticks so many boxes: auto-complete in the editor, sqlite support, embedded browser support, extremely easy to use, lovely GUI layout designer, etc.

QtCreator is not in the list of developer tools in the URL at top of this post. However, it is a cross-platform tool, and does support phone targets.

I installed this in Quirky and have just started to look at it. Qt is supposed to run on anything, and is also the choice of the Ubuntu Phone developers.

It is not as simple as Smartface, preliminary look around, there is minimal help with using it to develop phone apps.

However, I will keep on investigating Qt, with QML. My installation of QtCreator doesn't seem to be working properly, so I might install the latest development release of Ubuntu, see how that pans out, then a bit later have a go at building a new Quirky based on the next release of Ubuntu.

A cross-developer's Quirky
This new Quirky will be my creation that is specifically for use as a cross-platform developer tool. Interesting idea that, a distro that is setup just as a development tool for creating apps that will run anywhere (Linux, Mac, Windows, iOS, Android, Ubuntu Phone, etc). So, I would build it with the 'devx' component already builtin, so it is all ready to go.

That's my thinking anyway. Does that seem like a good idea?
Posted on 1 Jul 2015, 16:38 - Categories: Quirky

LiveCode multi-platform coding

I have been investigating various programming tools that target multiple platforms. Basically, the idea is to create one code-base, that can be used for, say, Windows, Mac, iPhone, Android, etc.

LiveCode is one-such, and has the advantages that it can run on (be the host development environment on) Windows, Mac or Linux. Plus, has an open-source (free) version and a commercial version.

In the previous post, I wrote about installing the Java JDK and Android Studio in Quirky Linux (i686 build):

I downloaded LiveCode, file 'LiveCodeCommunityInstaller-7_0_3-Linux.x86', and run that, and it installed to /opt/runrev.
Inside '/opt/runrev/livecodecommunity-7.0.3 (x86)', I ran 'livecodecommunity.i386'.

However, LiveCode Setup does not recognise the location of the Android SDK (/root/Android/Sdk).
So, I went back to Android Studio, ran "studio.sh", then choose "Configure -> Android SDK Manager", then ticked:

Android 4.1.2 (API 16)
Android 2.3.3 (API 10)
Android 2.2 (API 8)

...as per guidelines here:

Note, a lot of other things got automatically ticked in the SDK Manager, don't know why, but too much, unticked a lot of it.
Anyway, after installing the extra things, LiveCode was happy.

Oh, yes, this is where I downloaded LiveCode from:

I have been playing with LiveCode, created a simple Android APK package, pretty easy.
Then I read the User Guide, for many hours last night -- disappointing that it is so out-of-date.

This is not an in-depth review of LiveCode, so I will just make some overall observations and conclusions.

Pretty easy to get going. It is not a professional "full cycle" development environment, as are some other tools (such as WINDEV), basically, you just get straight into designing the UI, then create the scripts to make things happen.

As mentioned above, easy to get going.

A very active project. I am using v7, but v8 is promising some very exciting new features, such as LiveCode Builder, a lower-level language than Livecode, and HTML5 target support.

A very active community, with many contributions, many third-party extensions.

Runs on Windows, Mac and Linux, with targets Windows, Mac, Linux, Android, iOS, Raspberry Pi.

Embedded database, embedded browser, good, I want those features.

The scripting language has me worried. It is excessively verbose, which is supposed to make it very easy for non-programmers to use. However, it is too soon for me to make any definitive statement about this.

The GUI layout designer obviously was created in the desktop days. It does not really cater to the vastly varying screen sizes, resolutions, and changing orientation of smartphones and tablets.

No auto-complete in the script editor, which some other tools have. Given the huge number of functions, etc., some auto-complete functionality would be a help. In fact, some kind of auto-help to suggest what can be typed in a certain context -- for example, a handler for a button will send certain messages, such as 'mouseUp', and it would be nice to have shortlist appear of what messages are relevant in this situation.

Dynamically typed. Well, this is seen as good for beginner-programmers. Studying the documentation though, I can see how run-time coding errors could occur due to lack of type declarations.

Here are some reviews. I notice this first one criticizes the lack of usage of native widgets in each target environment, but as far as I can see, testing Linux target only, it does use native widgets and theme (GTK2).
Note, Xojo looks good, but does not support Android target.

This one reports on developing for phones. It highlights the widget layout problem:
The workaround is to draw the widgets programmatically when a change of orientation is detected, but this seems to make the GUI-layout-designer somewhat redundant -- I plan to post about other development tools that handle this situation very elegantly.

Not a review, a news report:

The jury is still out. Overall, very nice, but I plan to try some of the competition -- well, I have been investigating what else is out there, need to look in more depth.
Will report back!

LiveCode home:
Posted on 30 Jun 2015, 11:03 - Categories: Quirky

Oracle JDK, Android Studio

I have decided to learn Java. I don't know how far I will get with it, as I never really liked Java.

Anyway, running Quirky, i686 (32-bit) build, I installed the JDK and SDK:

Well, first I installed dbus, which Quirky doesn't have. I used the Puppy Package Manager, got these from the "common" repo:

Then rebooted.

Oracle Java JDK
The download page:
I downloaded v7, this URL:

I don't know if this is the best way to install it, but this is what I did:
# tar -xf jdk-7u80-linux-i586.tar.gz
# cp -a -f --remove-destination jdk1.7.0_80/* /usr/

Android Studio
Here is the download page:
I downloaded the studio-ide:

It expanded to folder "android-studio", that I installed:
# cp -a android-studio /usr/
# export PATH="$PATH:/usr/android-studio/bin"

...well, want that PATH at every bootup, so I created file /etc/profile.d/android_studio with that content. Note, contents of /etc/profile.d get called from /etc/profile.

I executed the startup script:
Opened a terminal in /usr/android-studio/bin, then
# ./studio.sh
An Internet connection is required at this point, as the rest of the SDK get downloaded, and expanded in folder /root/Android ...which after expansion, occupies a whopping 2.4GB.

Android M online course
Finally, I have put in 15 UK Pounds for this Kickstarter project:

...I had a look at one of the other courses developed by Rob Percival, it looks good. Text, code, and videos at each step. Plus, he speaks clearly (which is important, some fellows record videos and mumble their way through, much like modern British actors ).
I have to be patient though, the course won't be available until October.

Android M
Android M has not yet been released. Probably 2016. Here is some info:

Rob will be giving JDK and SDK install instructions, Android-M-compatible versions, probably for Windows and Mac, so I will have to redo the installations then.
Posted on 28 Jun 2015, 9:44 - Categories: Quirky

Pages: [1] [2] [3] [4] [5] ...