Infinite Livecode: Java progress

by Ali Lloyd on November 9, 2016 4 comments

Current progress

Since the Infinite LiveCode project was funded we have been hard at work with all the unglamorous but important preparation needed to make it possible, including refactoring the LiveCode Builder virtual machine. We have also made significant progress on the Java foreign function interface (FFI) that sits between the LiveCode Builder world and the Java world. Once the remaining few pull requests are merged, it will possible to interface with loaded Java classes, in particular the Android API – enabling you to instantly add vast swathes of additional functionality to your Android apps.

read more
Ali LloydInfinite Livecode: Java progress

Cross-platform app deployment with LiveCode is now even easier!

by Ali Lloyd on June 16, 2016 3 comments

While the majority of LiveCode features are built-in to the language, there are increasing numbers of ways to extend LiveCode, some of which require the inclusion of native code modules and other resources. The long-term vision for the IDE is to provide an extensions ecosystem, where script libraries, plugins, LiveCode Builder widgets, libraries and modules, custom controls and old-style externals can be easily downloaded and installed, and if required, subsequently built into standalone applications.

One important step towards this was the implementation of a dynamic property inspector, so that widgets and custom controls could have a way of specifying their editable properties and how they can be edited. Up until now the standalone settings stack has suffered some of the limitations of the old property inspector – namely that adding features requires manual modification of a stackfile.

An ‘Inclusions’ pane has been added to the LiveCode standalone settings user interface for the 8.1 releases, which not only simplifies the way you choose what extra functionality you want in your apps, but also allows you to select from a complete list of available inclusions, with a clear indication of the supported platforms at the side.

This significantly improves the cross-platform development experience provided by LiveCode. The iOS and Android panes no longer have separate check boxes for the various built-in externals (such as the XML external). Moreover any resources added to the appropriate locations should be reflected in the list.

read more
Ali LloydCross-platform app deployment with LiveCode is now even easier!

LiveCode Widgets: SVG Path

by Ali Lloyd on June 10, 2016 No comments

Continuing the blog series on the initial set of widgets included with LiveCode 8.0, here we are going to look at the SVG Path widget in a bit more detail.

What is SVG?

SVG stands for Scalable Vector Graphics. An SVG image file is essentially a set of instructions about how it should be drawn. SVG paths are sequences of commands which specify how the path is constructed from co-ordinate to co-ordinate (see the specification for SVG paths). This is how the scalability of SVG images is achieved – in order to scale it one simply has to adjust the scale used by the canvas. The SVG path widget only deals with the ‘path’ element of an SVG image. A prototype of full SVG rendering capabilities has been written, however there is a lot to do before SVG can be fully integrated into the engine so that SVG images can be used for button icons and so on.

read more
Ali LloydLiveCode Widgets: SVG Path

LiveCode Widgets: The Navigation Bar

by Ali Lloyd on May 5, 2016 10 comments

One of the first widgets we decided to include in LiveCode 8.0 was the navigation bar. The IDE previously included a mobile template as a sample stack, but the ability to provide this key bit of functionality as a drag and drop object in the tools palette was a no-brainer. It will hopefully prove to be an extremely useful tool for building native-looking mobile applications rapidly; it also demonstrates some of the power of the LiveCode Builder language that widgets are written in and the seamless integration of widgets in the IDE.

read more
Ali LloydLiveCode Widgets: The Navigation Bar

LiveCode Interactive Tutorials

by Ali Lloyd on March 31, 2016 30 comments

Way back in April 2015 I made a small prototype of how an interactive tutorial system might work in LiveCode. Here’s how it looked:Screen Shot 2016-02-25 at 11.37.05

 

It worked reasonably well – well enough to demonstrate the feasibility of such a system. It was generally agreed that it was something we would like to develop. However the prototype was almost completely hard-coded, meaning changing the tutorial would be difficult, and there was no capacity for having multiple different tutorials in the IDE. As there was still plenty of work to do on the IDE for 8.0, the tutorial was put on hold for a while (albeit returned to periodically to make sure it still vaguely worked, and to make some of the generalisations it needed).

read more
Ali LloydLiveCode Interactive Tutorials

Putting the ‘You’ in Documentation

by Ali Lloyd on January 18, 2016 2 comments

First things first, sorry about that title. But once I had thought of it I couldn’t back out.

Now then. In a previous blog I described the new documentation format that we would be using for the dictionary in LiveCode 8, which aimed to be much more easily read and modified than the old XML files. Indeed, there have been more documentation bugs fixed in the 8.0 cycle than those of 6.7 and 7.1 put together, so on that front it has already been reasonably successful.

We have had some community contributions to the documentation, but we would love to have more. So to that end I’ve put together a guide outlining our documentation goals and a step-by-step guide to making changes. The guide takes you through how to modify the appropriate files and submit a pull request in three different ways – using only the GitHub website, using a downloaded Git GUI client, and using the command line.

read more
Ali LloydPutting the ‘You’ in Documentation

How to create plugins and tools with the LiveCode 8.0 IDE

by Ali Lloyd on December 21, 2015 1 comment

The LiveCode 8.0 IDE

Several of the IDE’s palettes have been rewritten in LiveCode 8.0 to support widgets, most notably the Tools Palette and the Property Inspector. Also many stacks have become script-only, to enable better version control in the LiveCode IDE Git repository – this includes the project browser, the menu bar, and parts of the script editor.

Since there was so much code rewriting occurring in IDE stacks any, we took the opportunity to update the way the stack interact with user stacks and each other. As much as possible, the functionality and data provision for these stacks now comes from the central IDE library, revIDELibrary. This removes their interdependency, and allows them to be viewed as plugins or extensions. As such they provide examples of how we recommend structuring such extensions.

They take advantage of some new features and abstractions in the 8.0 IDE, which can hopefully be leveraged by you, the plugin authors and tool makers, regardless of whether you are planning to distribute them or not. By using this system as much as possible, you can help refine the functionality for the benefit of all, all the while ensuring that the tools remain compatible and potentially improving the performance of the IDE while they are in use.

read more
Ali LloydHow to create plugins and tools with the LiveCode 8.0 IDE

A Toast to the Global Jam

by Ali Lloyd on October 8, 2015 1 comment

The global jam is over! First thing’s first: apologies for the toast/jam pun, I probably shouldn’t have skipped breakfast.

Life is somewhat back to normal here at LiveCode HQ – although there are some tired faces (probably due to the fact that most of us were chatting LiveCode well beyond our scheduled hours). This is a testament to those of you that participated in and engaged with the event productively. It could only have been successful with the full support of the community!

read more
Ali LloydA Toast to the Global Jam