site  contact  subhomenews

LiveCode multi-platform coding

June 30, 2015 — BarryK
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.

Installation
In the previous post, I wrote about installing the Java JDK and Android Studio in Quirky Linux 7.0.4.1 (i686 build):
http://bkhome.org/news/201506/oracle-jdk-android-studio.html

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:
http://lessons.runrev.com/m/2571/l/27385-how-do-i-become-an-android-developer-on-a-pc

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:
http://livecode.com/download/

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.

Usage
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.

Advantages
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.

Disadvantages
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.

Reviews
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).
http://www.bkeeneybriefs.com/2015/03/livecode-vs-xojo/
Note, Xojo looks good, but does not support Android target.

This one reports on developing for phones. It highlights the widget layout problem:
http://handsonturkish.com/livecode-review-elearning/
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:
http://www.drdobbs.com/open-source/scotlands-live-code-longshanks-beater/240169277

Conclusions
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:
http://livecode.com/

Comments

I found a site with nice LiveCode lessons:

https://sites.google.com/a/pgcps.org/livecode/

Here is the new link:
http://charlesbuchwald.com/design/lcrestool-lcmover-livecode-plugins-released/

Unfortunately, the browser widget is only supported for the Windows and Mac desktop platform targets.
No good for me.

It should be noted that LC creates very big standalone applications, around 10MB uncompressed. This is due to everything being in the executable -- I created a Linux application and the executable only required libc, libm and a couple other shared libs.

Good for portability, but it does rule out using LC for creating small utility apps.

Tags: linux