Using Infinite LiveCode for Android to Create Native Controls and Wrap OS APIs

by Ali Lloyd on June 28, 2017 16 comments

With the release of LiveCode 9.0 DP 7, the amount you can do with the android API has been significantly increased. Firstly, it is possible to use LiveCode Builder to respond to user events, which essentially allows the Android native control syntax (mobileControlCreate, mobileControlSet etc) to be replaced with draggable widget objects and standard LiveCode syntax. Secondly, it is possible to run services in the background, allowing, for example, background audio on Android.

read more
Ali LloydUsing Infinite LiveCode for Android to Create Native Controls and Wrap OS APIs

What’s new in LiveCode 9.0 DP 2?

by Peter Brett on November 21, 2016 No comments

Over the last month, we’ve been working hard on our next feature release, LiveCode 9.  Today we’re making a new developer preview available, including a powerful new capability for HTML5 development, and a completely rewritten LiveCode Builder virtual machine.

read more
Peter BrettWhat’s new in LiveCode 9.0 DP 2?

Infinite LiveCode – Third Stretch Goal – Mobile Native Field Widget

by Mark Waddingham on May 23, 2016 No comments

One of the biggest new features of LiveCode 8 was the Browser Widget. This new control allows any LiveCode application to take advantage of an embedded browser by just dragging and dropping a control onto a card – just like other LiveCode controls. This replaces the previous way you would use an embedded browser in LiveCode – either via revBrowser on Desktop, or mobileControlCreate(“browser”) on Android/iOS. It goes without saying that this widget was implemented using the power of LiveCode Builder!

The new browser widget really does make using an embedded browser so much easier: there’s no cross-platform difference between how you use it; and there’s no need to manage the browser’s lifetime yourself as it works just like a normal engine control (because that is what it is!). We’d like to extend this ease of use to mobile-specific feature which is widely used: the native field control accessible via mobileControlCreate(“input”).

This stretch goal’s proposal is to build a Builder widget which uses a native layer to make it possible to drag-drop native mobile field controls onto your stacks and use them, with exactly the same functionality as currently provided via the mobileControl functions, but in a way much more in keeping with how LiveCode should be.

read more
Mark WaddinghamInfinite LiveCode – Third Stretch Goal – Mobile Native Field Widget

Infinite LiveCode – The First Stretch Goal – SQLite Library

by Mark Waddingham on May 20, 2016 3 comments

SQLite databases are used ubiquitously in modern applications. Whether they be used as caches for downloaded data (so apps can run offline), as a file format for document editing apps or just for persistent data storage. Indeed, we feel that they are so important that they deserve their own clean, modern, high-level set of functions in LiveCode Script to access directly – rather than going through revDB.

For this Infinite LiveCode stretch goal we propose to:

  • Provide gyp-based descriptions of building the SQLite native code library.
  • Wrap the SQLite API using Infinite LiveCode to allow it to be used directly from Builder
  • Write a Builder module which allows usage of SQLite databases easily from Builder
  • Write a Builder library module which exposes a high-level API for manipulating SQLite databases directly from Script
read more
Mark WaddinghamInfinite LiveCode – The First Stretch Goal – SQLite Library

Trevor DeVore interviews Kevin & Mark on Infinite LiveCode

by Steven Crighton on May 19, 2016 No comments

The LiveCode community is vital to the success of our platform. We want to ensure the community voice is heard loud and clear. To this end, we approached a leading and respected member of the LiveCode community known for his outstanding contributions and for his extremely successful LiveCode built apps.

We asked Trevor DeVore, Director of Technology at ScreenSteps if he would like to interview Kevin & Mark, asking all the questions that he might have as an active LiveCode community member. Trevor kindly agreed and came up with some excellent questions which we are sure will be of interest to a wide audience!

read more
Steven CrightonTrevor DeVore interviews Kevin & Mark on Infinite LiveCode

What does Infinite LiveCode mean for users of the platform?

by Steven Crighton on May 18, 2016 No comments

Unless you have been avoiding your mailbox recently you will know that LiveCode 8 has launched with the first iteration of LiveCode widgets written in the LiveCode Builder Language. LiveCode 8 marks the beginning of the new for the LiveCode platform.

Today, LiveCode lets us build powerful applications faster. We have a powerful and productive programming language that is close to the way we speak and think, we have a tool that enables rapid app development, we can deploy apps to all major platforms from one code base. Imagine if we had a thriving extensions EcoSystem with thousands of useful widgets and libraries that you can use in your application without the need to expand your team size or programming ability. As things stand you can open up LiveCode and drag out useful objects, customise them in the Property Inspector and you have a fully functioning object that would have required hand coding in previous versions. This will forever be useful but it does leave you wanting more, more widgets, more functionality, more usefulness, more productivity.

Introducing the Infinite LiveCode campaign.

What does Infinite LiveCode mean to you, as an end user? Suppose you do not yourself feel you have the time, ability or inclination to write new widgets or extensions for the platform, how does it benefit you?

read more
Steven CrightonWhat does Infinite LiveCode mean for users of the platform?

Infinite LiveCode – An Example

by Mark Waddingham on May 16, 2016 4 comments

Prologue

The engineering team at LiveCode recently published a technical whitepaper on how we’d like to make LiveCode Builder interoperate better with other languages by improving its so-called ‘foreign function interface’.

In this post, I’d like to work through an example of how Infinite LiveCode, once it is funded, might be used to write an extension for an ability the engine does not have: battery status monitoring on iOS.

There are several steps involved in working out how to build an extension which hooks into foreign APIs:

  1. Define what you want to be able to do
  2. Find the foreign APIs that you need to use and figure out how they work
  3. Work out a suitable set of functionality to expose to LiveCode Script
  4. Wrap the foreign APIs for use from LiveCode Builder
  5. Write a LiveCode Builder module which uses the wrapped foreign APIs to build the LiveCode Script functionality.

I’ll go through each of these five steps in turn.

read more
Mark WaddinghamInfinite LiveCode – An Example