PPAs for Ubuntu SDK

No comments
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:

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?

Java and Android M course

No comments
I recently posted that I had pledged 15 UK Pounds to this Kickstarter project:

Looking at it a couple of days later, now 11 days to go, and Rob is getting about 24 pledges per day. At that rate, he won't quite reach the 50,000 Pound plateau.

I hope that the contributions pick up toward the end, as if it reaches 50,000, Rob will throw in one of his other courses for free, that's two courses for 15 Pounds (about US$24 or AU$30).

So many cross-platform app developers

1 Comment
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?

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:

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