LiveCode 10 DP-5: Smaller, faster, richer

by Mark Waddingham on April 18, 2023 3 comments

I’m delighted to announce the release of LiveCode 10, dp-5.

Web Engine Size

This release includes the first iteration of the work we have been doing to reduce the download size of the web engine.

The (unicode related) data the engine needs to run has been split into three files – icu-core.dat, icu-iter.dat and icu-coll.dat.

The core data file is always downloaded, the engine will not run without it.

The coll data file is only downloaded if the browser does not have the necessary JavaScript collation APIs (recent versions of Chrome, Safari, Edge and Firefox do have the necessary features).

The iter data file is only downloaded if the browser does not have the necessary JavaScript segmentation APIs (recent versions of Chrome, Safari and Edge do have the necessary features).

The result is that the current minimum size of a LiveCode web app (when running on Chrome, Safari and Edge) has changed as follows:

  • Uncompressed size has dropped from 23.6 Mb down to 15.7Mb
  • Gzip compressed size has dropped from 10.6Mb down to 7.6Mb
read more
Mark WaddinghamLiveCode 10 DP-5: Smaller, faster, richer

LiveCode 9.6.9 Released

by Panagiotis Merakos on April 10, 2023 2 comments

We’re delighted today to announce the release of LiveCode 9.6.9, Stable. This version comes with more than 75 new features, bugfixes, and security improvements compared to 9.6.8, including:

  • Support for Android API 31, which is now a requirement for submitting new apps to the Google Play Store.
  • Update to the version of OpenSSL used by the engine to 1.1.1q, allowing LiveCode built apps including “SSL & Encryption” to be submitted successfully to the Google Play Store.
  • Support for building with Xcode 14.2 and the iOS 16.2 SDK to meet the new (as of April 2023) requirements of the Apple AppStore.
read more
Panagiotis MerakosLiveCode 9.6.9 Released

Jay Pinnock’s Journey to Success with Edgenotes

by Heather Laine on March 30, 2023 1 comment

When did you start using LiveCode?

Jay started with LiveCode by writing apps for his kids. His first app was a clock, and his first challenge was getting the analogue clock hands to sweep around smoothly. He felt incredible when he solved this maths problem and saw it working in the app! Using LiveCode made it easy to load onto an Android device to share the result immediately with his wife and kids. LiveCode offers a sense of achievement very quickly, within hours or days. 

read more
Heather LaineJay Pinnock’s Journey to Success with Edgenotes

9.6.9 rc-3 released: Support for iOS 16

by Panagiotis Merakos on March 29, 2023 No comments

We are pleased to announce the release of LiveCode 9.6.9 RC-3. This version comes with more than 25 bugfixes and improvements.

Features implemented

  • iOS builds have been updated
  • Apple architecture support out of “experimental” phase
  • A displayData property has been added to the iOS native player control

iOS Update

Building iOS apps using Xcode 14.2.x with the iOS 16.2 SDK is now supported.

Important: From the start of April 2023, Apple is only accepting apps built using iOS16.x SDKs. This means that, if you wish to submit apps to the AppStore you will have to be running at least macOS 12.6.3 in order to be able to install the necessary version of Xcode (14.2).

Apple Architecture Support

Apple architecture support has now been officially added to the macOS IDE, standalone builder, and server engine. You can build for M1, M2 etc natively on Mac OS. LiveCode and any standalones it builds will now run using the native architecture of the platform by default.

Controlling the music control center display on iOS

A displayData property has been added to the IOS native player control to allow control over the music control center on iOS 16 and above. The lock screen on iOS displays information about the currently running media, which can be controlled using the iphoneSetRemoteControlDisplay command.

However, on iOS 16 and above this command no longer works when using a native player control, as only metadata defined in the file being played is used.

To work around this problem a new property displayData has been added to the native player control on iOS.

This property takes an array with keys:

  • artwork : the png, jpeg, gif or bmp image data to display as an image description : a string describing the media
  • genre : a string describing the genre of the media
  • subtitle : a string describing the subtitle of the media
  • title : a string describing the title of the media

The property is applied the next time the content of the player is changed, so should be set
before the filename property. For example:

local tInfo
put the text of image "MyArtwork" into tInfo["artwork"]
put "MyMedia" into tInfo["title"]
mobileControlSet "MyPlayer", "displayData", tInfo
mobileControlSet "MyPlayer", "filename", "MyMedia.mp3"

Which fields from the displayData are used in the music control center appears to be somewhat device and OS version dependent. However, at least the artwork and title properties will always be used. Due to this it is recommended that the new property only be used on iOS 16 and above – with the previous method sufficing on older OS versions.

Windows Certificate Update

The code signing certificate we use to sign the Windows Installer and LiveCode application has been renewed. This means that it will take a certain number of verifications before Windows Defender SmartScreen will not popup a dialog. Please do take the time to download, install and run the LiveCode application at least once to help ensure that it gains the necessary ‘reputation’.

Regressions fixed

  • The ability to apply changes using the Enter key shortcut in the 9.6.9- script editor has been reinstated
  • Replace All now works as expected in the Script Editor
  • Popup button menus now present correctly from modal and sheet dialogs on Windows
  • The input field in the ask dialog is now focused when it is initially opened
  • Embedded images in the message displayed in answer dialogs now display correctly
  • Manipulating properties of datagrids before they are visible no longer causes an error

Bugs fixed

  • The Property Inspector text contents editor now displays styled text in a more readable way
  • The Extension Builder now displays an informative error message when attempting to install extensions without the required
    metadata
  • The engine will no longer abort on startup on Windows machines with certain printer drivers installed
  • Center or right aligned wrapping paragraphs in fields which contain words wider than the content width will now render correctly
  • The dictionary entry for LiveCode Builder extension has now been corrected to include the word ‘widget’ which was previously omitted
  • The firstIndent property has been moved to the Text pane of the field Property Inspector
  • iOS apps will now rotate correctly when the device orientation changes on iOS 16
  • The start using font command will now correctly update text in fields which already have a textFont property matching the new font’s name
  • The NFKD mode of the normalizeText function now works correctly
  • The NFKC mode of the normalizeText function now works correctly on strings which do not contain unicode characters
  • The ask and answer dialogs are no longer resizable
  • Compound text chunk expressions which include the byte chunk are now evaluated correctly
  • Using the trueWord or sentence chunk no longer causes strange behavior which could occur in certain circumstances
  • iOS standalones no longer include the (now obsolete) armv7 architecture
  • Using sockets on macOS and Linux in -ui standalone or server engine will no longer cause wait to cause high CPU usage

Known issues

Potential Linking Error with mergEXT

When building an iOS standalone with a version of Xcode < 14.2, you might get a linking error if you include some mergExt* externals in the Inclusions pane. This happens because in Xcode 14.2 some optimisations took place that broke backwards compatibility with binaries built with older Xcode versions. This does not affect the following mergExt externals:

  • blur
  • mergJSON
  • mergMarkDown
  • mergBonjour
  • mergAV
  • mergNotify
  • mergMicrophone
  • mergCL

If your app uses any of the remaining mergExt externals, and you have to use an older version of Xcode to build, then a workaround is to copy the mergExt* resource folders from an older version of LiveCode (e.g. 9.6.9 rc2) and paste it in the appropriate place in LC 9.6.9 rc3 app bundle. For example, for mergAnswerColor, you can grab the folder from:

/Applications/LiveCode 9.6.9 (rc 2).app/Contents/Tools/Ext/mergAnswerColor

and paste it into

/Applications/LiveCode 9.6.9 (rc 3).app/Contents/Tools/Ext/mergAnswerColor

Potential Launch Delay on Windows

Although the engine will no longer abort on startup on Windows machines with certain printer drivers installed, you might observe a long delay (up to ~60 seconds in some cases) until the engine launches. A workaround for this issue is to stop the printer spooler process:

  1. Open Windows Task Manager
  2. Search for a process named “Spooler Subsystem app” or just “Print Spooler”
  3. Force quit this process

Alternative, you can stop/start the printer spooler from the command line (with admin access). The commands to do this are:

net stop spooler
net start spooler

We would be grateful if anyone who has a windows system which is affected by this problem could make yourself known to support@livecode.com or post on the bug report about any experiences regarding this issue – i.e. if it works perfectly for you (no longer crashes) or if it works with a long delay.

How to get 9.6.9 rc-3

You can find the release in your LiveCode account area or get it via the automatic updater. If you are looking for the release in your account, please remember to scroll down the list of stable releases to find the test releases, underneath. Not got LiveCode yet? Sign up for a trial here.

Enjoy!

read more
Panagiotis Merakos9.6.9 rc-3 released: Support for iOS 16

ChatGPT: Language Models 101

by Holly McIntosh on March 17, 2023 3 comments

As a follow-on from the LiveCode’s new newsletter and Geoff Canyon’s blog post on using ChatGPT to write LiveCode (which you can read here if you missed it!) I thought I’d write a little bit about how language models like ChatGPT are made.

You’ve probably seen a lot about the what, where, who, and why of ChatGPT, but maybe a bit less about the how. I spent some time studying language model neural networks as part of my Master’s project at university, so hopefully I can shed a bit of light on how chatbot AIs are made.

read more
Holly McIntoshChatGPT: Language Models 101

Some thoughts ahead of the Only Connect Series 18 final

by Ali Lloyd on March 10, 2023 No comments

It’s that time of year again where the current series of Only Connect draws to a close. For the uninitiated, Only Connect is a quiz show on the BBC. It has four rounds:

  1. Connections – Figure out the connection from four apparently random clues
  2. Sequences – Determine what would come fourth in a sequence
  3. Connecting Wall – Sort 16 clues into four connected groups of four, and find what connects them
  4. Missing Vowels – Determine the word or phrase which has had its vowels removed and spaces added or subtracted. These come in connected groups of four, where the connection is given.

It is generally considered to be very difficult. The questions often rely on esoteric trivia, but rarely do they solely rely on such trivia. For many of the questions the answer can be figured out in the moment, based on limited knowledge or partial identification; educated guessing is perhaps the most valuable skill of the Only Connect player.

read more
Ali LloydSome thoughts ahead of the Only Connect Series 18 final

Optimising for the App Store: A Critical Factor in Achieving App Success

by James Conway on February 28, 2023 No comments

Introduction

Creating your app is just the beginning of your journey in the world of mobile apps. The problem is that the majority of apps don’t take off without a great marketing effort. With the Apple app store alone hosting over 3.5 million apps, it can be challenging to stand out and reach your app’s full potential.  With global mobile app revenue reaching $133 billion in 2021, it’s crucial to make your app visible and discoverable to potential users. That’s where App Store Optimization (ASO) comes in.

read more
James ConwayOptimising for the App Store: A Critical Factor in Achieving App Success

Generating LiveCode using ChatGPT

by Geoff Canyon on February 20, 2023 8 comments

Geoff Canyon is a product manager highly interested in machine learning and available to help make your product awesome! 

LiveCode

LiveCode is a combination IDE/UI Toolkit/programming language with a history stretching back to the 1990s, and with predecessors from the 1980s (HyperCard). I’m fond of LiveCode: I’ve used it since the ‘90s, I spoke about it at Apple’s WWDC and other conferences, and I’ve helped to demo it at trade shows by building a working app for Windows, Mac, and Linux, all while holding my breath. Despite being a product manager and not a developer, I still maintain a well-liked plug-in for the dev environment, and I use LiveCode whenever I need a quick UI+code environment in which to work.

ChatGPT  

ChatGPT is a language machine learning model recently released by OpenAI, based on their GPT 3.5 model, fine-tuned with both supervised and reinforcement learning techniques to function as a chatbot. It is a remarkable advancement over previous language generation models, capable of producing a convincingly-human conversational experience.

read more
Geoff CanyonGenerating LiveCode using ChatGPT