Today I’m excited to be bringing you the long awaited LiveCode 10 GM (Stable) version. But thats not all! We have also just shipped Create 1.0 dp-4, and LiveCode 10.0.1 rc-1 with a small but significant enhancement for all iOS users out there. Lets talk about all this good news one by one. First up…
LiveCode 10 Stable
This is the final version of LiveCode Classic, and it has a feature list as long as your arm.
A brief overview of some of the areas we’ve been working on: There have been many feature adds for Web deployment including support for Web Fonts, smaller file size, support for the Map widget and easy customization of the host HTML page. LiveCode Builder has received lots a lot of love, making it easier to use for building your own widgets and wrapping externals. Android and iOS platforms have a raft of improvements to Media management, they now support suspend and resume and have better performance with smoother scrolling thanks to improvements in rendering.
Here is everything we’ve added since the last stable shipping version (9.6.13), in no particular order:
- New bytewise bit operators byteAnd , byteOr , byteXor and byteNot have been added to the engine
- The click command now supports simulating double-clicks
- The number formatting operations in LCB have been improved
- The web engine now uses browser based font management and text rendering via the standard web fonts mechanism
- The standalone zip file created when deploying to web now uses compression
- The browser widget now supports the browserProgressChanged message on iOS
- A new operator “is strictly a name” has been added which checks that a value is being represented as a name
- It is now possible to include custom headers in emails created using the MIME library
- The initializing value for constant and local declarations can now be any constant expression
- The suspend and resume messages are now supported on mobile platforms
- A new operator “is strictly a number” has been added which checks that a value is being represented as a number
- The Amazon Web Services library now supports configuring custom S3 compatible endpoints
- Browser widgets on Android can now allow access to the device’s camera and microphone
- A handler call can now specify that any trailing arguments be taken from a sequence array by using the … operator
- The params function can now return a range of parameters passed to a handler as an array
- The browser widget now uses WKWebView on macOS
- The browser widget on iOS now implements the allowsInlineMediaPlayback property, controlling whether media is played fullscreen or not by default
- The browser widget on Android and iOS now implement the mediaPlaybackRequiresUserAction property, controlling whether media can be played automatically or not
- New properties have been added to the pdf widget to allow greater control over how page content is rendered
- New features have been added to the background audio library on Android to allow greater control over audio playback
- A new operator “is strictly” has been added which checks values for equality in a strict manner
- A library has been added which gives access to the Sign-in with Google API on Android
- On Web, data required by the engine to run has been separated out into optional files thus reducing the size of the download required in many cases
- Support for working with media controls on Android has been added
- A prototype implementation of the ‘script widgets’ feature has been included
- Dictionary and sequence literal syntax has been added allowing much easier expression of array-based values
- A new constant nothing has been added to expose the special value placed in uninitialized variables
- A utility handler has been added to LCB to allow starting Android activities and receiving their results
- The map widget can now be used in apps deployed to Web
- Syntax has been added to LCB allowing encoding to, and decoding from, base64
- Syntax has been added to LCB allowing encoding to, and decoding from, a variety of text encodings
- A new option Guidelines has been added to the View menu which turns on dynamic indicators when moving and resizing controls
- A handler can now be marked as variadic by using … as the last declared parameter
- The Web-specific LCB utility function HandlerAsJSFunction can now be used on any handler
- A new set chunk has been added to LCB to allow access to specific custom property sets of script objects
- Aspect-ratio preserving options have been added to the button’s iconGravity property
- Browser widgets now implement the opaque property, controlling whether the default background is drawn or not
- New handlers have been added for easily converting between JObjectArray and List types in LCB
- The browser widget can now be used in apps deployed to Web
- It is now possible to customize the HTML page used to embed apps when deploying to Web
- A preview of a new chart widget is now available on the tools palette
- A new clipSnapshots property has been added to the barcode scanner on Android
- Support for GLES3.x acceleratedRendering has been added for Android and iOS devices
- A new bounds option has been added to the LCB begin layer command
- A new device transform property has been added to the LCB canvas object
- A new is valid operator has been added to the LCB image object
- Web deployment now uses WebAssembly
There is also a laundry list of fixes and enhancements, 67 in total. To see this list in full please check the release notes for 10.
LiveCode 10.0.1 rc-1
This is a significant release for one major reason: we have broken the link to specific Xcode versions when building for iOS. You can now have any version of Xcode installed from 12.4 onwards, and you will be able to build for the latest iOS from LiveCode 10.0.1 rc-1. An end to downloading the most enormous file I’ve ever seen to install the “correct” Xcode for your version of LiveCode. An end to headscratching when the build fails due to mysterious mismatches of versions. An end to updating the FAQ of which version runs where and is compatible with what on which version of MacOS. If you are building for iOS, you want to be using LiveCode 10.0.1 rc-1.
Other features of this release include an even smaller Web engine – 6.4mb vs 9.9mb in 10.0 and better support for Safari when building for both Web and Mobile.
In addition a number of bugs have been fixed vs 10.0:
- The htmlText property now correctly preserves unicode when present in attributes such as href and metadata
- A stack’s visible area will now update correctly when switching between cards when there is a menubar on the stack on macOS
- Exporting images to the gif format now works correctly on 64-bit windows
- The engine will no longer crash when attempting to select items from a submenu created from a definition with indent greater than a single tab
- The field’s listStyle property is now set correctly from ‘ol’ and ‘ul’ elements in htmlText
- The dboracle database driver is now supported natively on Apple architecture macs
- Unicode can now be used in the metadata options passed to ‘open printing to pdf’
- The lines returned by ‘the dnsServers’ will now always be valid IPv4 or IPv6 addresses on macOS
- Web standalones now work correctly when run in Safari browsers
- Setting numeric properties will now throw the correct error when not given a number in the correct range
- The printTitle property now supports Unicode
- The engine will no longer crash when attempting to use long, invalid, regex patterns
- Script widgets are now initialised correctly when created by cloning using modifier key + drag
- Using ‘the executionContexts’ in a handler called as a result of JavaScript callback on web now works correctly
- Images made using LCB’s pixel data image constructor now correctly handle transparency
- The ‘externalCommands’ property will no longer omit commands which use the utf-8 encoding
Going forward, we will continue to make maintenance releases of 10 to ensure support for the latest operating systems. All significant new features will be added to LiveCode Create.
Create 1.0 dp-4
Last but not least, we’ve released dp-4 of LiveCode Create. If you are using Create Cloud, this is already updated in your browser. If you have Create Native, you can download dp-4 from your account. This release now brings official support for the Safari web browser, as well as Chrome.
Other Enhancements:
- Actions no longer cause a hang when being reordered
- Custom themes are now saved
- Actions return variables can now be accessed
- Cursor issues with material field fixed
- Error fixed when switching between action bar stacks on Native
- User preferences now saved in Create Native
- Multi-layout project no longer becomes unresponsive when saved
- Color picker can now be vertical or horizontal
- Project browser no longer shifts visually when focus changes to user stack
- Relogin flow now works correctly when access token has expired
- IDE warning dialog (in particular when deleting a layout) no longer causes crash
If you haven’t been keeping up with the progress of LiveCode Create, here is a quick rundown of the major features added so far: The very first release brought you the ability to use the brand new single window IDE in the cloud and on the desktop. In dp-2 we brought you engine level JSON support. Dp-3 provided the ability to use undo/redo for recent changes to your work, plus a rework of the Actions workflow. Learn more about the new Create product line here. We’re incredibly proud to be bringing you this modern no-code platform. I hope you are excited as we are about the future!
20 comments
Join the conversationAlan Green - October 9, 2024
So, if I install LC 10.0.1 rc-1, I can download and install the latest Xcode (which Apple keeps prompting me to do) and I’ll be able to build Livecode apps for iOS without any compatibility issues – correct?
Heather Laine - October 9, 2024
Yes, that is correct. 🙂
Jim Lambert - October 9, 2024
jiml@netrin.com
Wow! This is a bonanza of LiveCode goodies.
Thank you and Well Done!, LC Team.
Stam - October 9, 2024
Wow, that’s quite the list of improvements and fixes. That’s a monumental amount of work guys, well done!
Robert Mills - October 9, 2024
I have a lifetime Indy license, but I didn’t receive LiveCode 10.0.1 rc-1. How can I download it?
Heather Laine - October 10, 2024
Hello Robert, you can download test releases from below the list of stable releases. Please see this lesson for details:
https://lessons.livecode.com/m/4072/l/1123259-how-do-i-download-a-test-release
Megumi Fazakerley - October 10, 2024
Disappointing… Upon launching LC 10, it stands out in macOS dark mode environment – odd and out of place, as if it is from a decade ago. If there is a way to change its appearance to comply with the system appearance setting, I can’t find it in the settings. I know it’s only an appearance issue, and as such, perhaps, not functionally critical, but it does seem indicative of the level of polish LC team cares about for their product. As a long-time LC user (though not a professional developer), I must say I am rather disappointed…
Heather Laine - October 10, 2024
I’m afraid the LiveCode 10 IDE does not support dark mode. We will be addressing this in the Create IDE.
Megumi Fazakerley - October 10, 2024
So, my disappointment remains… I had hoped a major upgrade from v.9.x to v.10 might address this long-standing issue, but it seems that LC team is no longer interested in LiveCode as a product. Since I am not interested in your new product with new features, I am left with no hope of any resolution to this issue I had reported L-O-N-G time ago.Not only does the LC 10 IDE NOT support the dark mode in macOS, also the standalone apps created by LC 10 DON’t support it, either. This means that LC10 is only good for making apps that look odd in the modern macOS dark mode environment. I find it very disappointing if LC team consider this good enough.
Heather Laine - October 10, 2024
LiveCode built apps for Mac do support dark mode – is this not working for you?
Megumi Fazakerley - October 10, 2024
I am surprised that you said that. I don’t know what else to say…
Megumi Fazakerley - October 10, 2024
I am genuinely surprised that you said that.
Megumi Fazakerley - October 10, 2024
Is it really so difficult to make LC compliant with macOS system-wide appearance setting? Looking at the Bug 22221 and Bug 24061 reported at LiveCode Quality Control Center, is it not simply a matter of changing a key-value pair?
From:
NSRequiresAquaSystemAppearance
to::
NSRequiresAquaSystemAppearance
in info.plist files:
/Applications/LiveCode 10.0.0.app/Contents/Tools/Runtime/Mac OS X/x86-64/Standalone.app/Contents/Info.plist (for standalone engine)
/Applications/LiveCode 10.0.0.app/Contents/Info.plist (for IDE)
Heather Laine - October 10, 2024
I see. Its really quite a long and complex thread in the Quality Center. It seems that it is possible to support dark mode fully on Mac, albeit you have to take care of a plist setting yourself.
Our ongoing work is now focussed on LiveCode Create. This will have a dark mode, and I trust in time this will be suitably polished and satisfactory for everyone using it. We expect to provide multiple themes / custom themes at some point in the future.
Megumi Fazakerley - October 10, 2024
I thought this post was about LC (now apparently branded ‘Classic’) on the occasion of its v.10 release, which is why I am writing about LC (‘Classic’). I am not sure how to respond to your repeated statement of preference for LC Create. Do you mean to say that LC (‘Classic’) is now basically abandoned and there is no point in talking about fixing its problems or improving its level of refinement?
Heather Laine - October 11, 2024
I thought that we had explained this fairly clearly in previous communications, I’m sorry if we made a bad job of that! LiveCode Classic is now in maintenance mode. This will be the last feature release, from now on it will receive only maintenance releases to ensure security and compatibility with new operating systems. All new features will go into LiveCode Create.
Megumi Fazakerley - October 11, 2024
Oh yes, I understood that LC Classic will no longer be actively developed. Was I talking about adding new features? I thought I was expressing maintaining LC Classic to fix bugs (like the one I reported years ago) to bring compatibility with macOS (like systm-wide colour mode setting, which was introduced several years ago).
Giampiero - October 12, 2024
Great work, thanks! One question: So far, I am working with LC10-DP1 and LC10-DP4 for web deployment. In the html-code, I used, src=”standalone-10.0.0-dp-1.js” (for DP1) and src=”standalone-10.0.0-dp-4.js” (for DP4). For LiveCode10.1.rc-1, (I guess) it should be: src=”standalone-10.0.1-rc-1.js” but this does not work. Also, for LC10Stable, (I guess) it should be src=”standalone-10.0.0.js”, but this also does not work. Any suggestions?
Andreas Bergendal - October 25, 2024
@Giampiero That code is correct, but from DP5 (I think) a lot of other code in the generated HTML file changed, mainly due to the introduction of handling web fonts. So if you are reusing an HTML file generated by e.g. DP4 with a 10 stable deployment, you will get errors. It’s not as simple as changing the scr version. You need to use the HTML file that 10 stable or 10.0.1 RC1 generates, and make any modifications you like based on that.
Giampiero - October 31, 2024
The problem is solved with great help from the LC support team: the firewall of my web provider was blocking the three DAT files that are generated for Web Deployment with the more recent versions of LiveCode. After removal of this firewall block, everything works great.