This tutorial will guide you through creating a dropdown menu using a PolyList widget. The finished product will be able to display an array of data, even if the array itself contains more arrays. The completed stack should look like the below example, where you can drag a button on, give it a name and click it to create and build the PolyList. You can learn more about the PolyList widget here. Note, Polylist is an addon for LiveCode, if you don’t already own it you can get it here.
read moreLiveCode 10 DP-5: Smaller, faster, richer
by Mark Waddingham on April 18, 2023 3 commentsI’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
LiveCode 9.6.9 Released
by Panagiotis Merakos on April 10, 2023 2 commentsWe’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.
Jay Pinnock’s Journey to Success with Edgenotes
by Heather Laine on March 30, 2023 1 commentWhen 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.
9.6.9 rc-3 released: Support for iOS 16
by Panagiotis Merakos on March 29, 2023 No commentsWe 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:
- Open Windows Task Manager
- Search for a process named “Spooler Subsystem app” or just “Print Spooler”
- 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 moreChatGPT: Language Models 101
by Holly McIntosh on March 17, 2023 3 commentsAs 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 moreSome thoughts ahead of the Only Connect Series 18 final
by Ali Lloyd on March 10, 2023 No commentsIt’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:
- Connections – Figure out the connection from four apparently random clues
- Sequences – Determine what would come fourth in a sequence
- Connecting Wall – Sort 16 clues into four connected groups of four, and find what connects them
- 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 moreOptimising for the App Store: A Critical Factor in Achieving App Success
by James Conway on February 28, 2023 No commentsIntroduction
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
Recent Comments