Xojo 2024r2
Today Xojo Inc. released the new version of Xojo, their second release for this year. Let's check what is new.
Control Sets for web projects
Better late than never, but this makes it easier to convert older Web 1 projects using control sets to Web 2. And of course you can use array indexes directly instead of putting controls in your own array property. A control set allows you to access an set of controls by the same name and the index.
See also What’s New in Xojo Web in 2024r2DatabaseConnection project item
You can have a database added to the project. New is to have different databases for alpha, beta and final release. That is more for business applications within a company where all users go to the same database and the database selection is not a preference dialog or through a web service. For SQLite the database file is now copied to resources folder, so it can be read from there and you don't need to copy it there.
In the project you can setup different connections for all 4 stages. You can setup which stage is active in the build settings.
See also New Database ConnectionsCompact and Inline styles for iOS MobileDateTimePicker
The MobileDateTimePicker for iOS has a new property for the display style. So instead of showing the selection wheels, you can just show fields or inline the calendar sheet.
On the right a picture with top normal style, middle the compact and on bottom the inline style.
See also See iOS: Selecting Date and Time with More StyleSupport for iOS privacy manifest
This are new settings to declare your usage of certain APIs, when you submit to the iOS App Store. You find that in the extended settings for the iOS build. So click left panel on the iOS entry and then go to the inspector to use the gear icon to reveal additional settings. On the bottom is a button to go to the dialog. Here you can declare what APIs you use and let Apple know why need some things. This is Apples crack down on some advertisement SDKs use free disk space, user preferences or keyboard layout to identify users over multiple applications.
See also iOS: Privacy EditorDatabase.AddRow() As Integer that returns unique ID of added row
New to various database API is a function to return the row ID for a new row you added. If there is interest, we may cover that for our SQL Plugin. We have already some database specific functions for a few database types.
TCPSocket for Android
A long requested function to make some custom connections. Not everything is HTTPS via URLConnection and sometimes you just like to send a few bytes to a device in the local network. You may be able to use TCPSocket directly to query weight from a scale or send commands to a MQTT server.
String and characters
Xojo got some new functions to check how many characters a string has. Not just length in unicode code points, but groups of unicode code points that form a character together. This for example avoids that you e.g. cut an umlaut A in German stored as two code points into an A and the two little dots. Or an emoji with a modifier.
The String.Characters and String.CodePoints functions got rewritten. Please note that they changed from returning an Iterable to returning an array of strings for characters and integers for code points. If you used these APIs before, you will have to adjust your code and maybe wrap it in #if for switching between Xojo versions.
As you see on this picture, we have an emoji for a boy with a skin modifier. In UTF-8, this emoji is constructed with one character, two code points or 8 bytes. The existing functions like Left, Middle and Right work on code points, so they will cut the emoji into the original one and the modifier.
See also Enhanced Emoji Support: A Look into Graphics and String.Character ImprovementsDebugger
When debugging you can now easier look on pictures in the debugger as you can live scroll. And when debugging web projects, the debugger doesn't get invoked randomly when a bad request is received.
WebPagePanel and WebTabPanel
The Web framework got over 20 changes. One we like is the ability to add or remove panels at runtime from a tab or page panel. This is great if you like the user to be able to add a tab or close one as needed. Or for building the layout of a preference panel by adding available padding
Static variables
Finally the compiler got upgraded to no longer mix static variables with the same name in different overloaded methods. We often use static variables in a method to cache values in a dictionary or to count method calls.
More to checkout
And of course there are plenty of more changes. Check out the over 100 bug fixes alone! And you find more like a ton of new Android functionality where it catches up to the other platforms.
See also Android: New Features and ImprovementsFor MBS Plugins, please use version 24.x with Xojo 2024r2. They work fine together as far as we see.
More in the Release notes. Enjoy!