Year 2024 in review

Let's review what happened in the year 2024. In total I visited seven of the thirteen FileMaker conferences this year. We run our own Xojo conference in Andernach. And we released six updates to our plugins for FileMaker and Xojo.

January

January started with the development of new 14.0 and 24.0 plugins, a lot of blog posts advertising for the conferences.

(more)

Merry Christmas

Frohe Weihnachten und ein gutes neues Jahr!

Merry Christmas & Happy New Year

Joyeux Noël et Bonne Année

Buon Natale e Felice Anno Nuovo


Franziska, Sebastian, Michael, Monika & Christian Schmitz

MBS Xojo Plugins, version 24.6pr6

New in this prerelease of the 24.6 plugins:
  • Updated DynaPDF to version 4.0.96.273.
  • Added new constants for PhidgetMBS class.
  • Added IsOpen, MinDataRate, MaxDataInterval, MaxDataRate, MinDataInterval, DataRate properties to PhidgetMBS class.
  • Added ImageFile property for ImagePlaygroundMBS class.
  • Added kUTTypeJPEGXL, kUTTypeHEIF and kUTTypeHEIC to UTTypeMBS module.
  • Fixed a problem with array handling affecting e.g. CoreTextMBS.RegisterFontsForURL function.
  • Added RequestFonts method to CoreTextMBS class.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared DropBox folder.

You can subscribe to our Xojo mailing list to get notified for new pre-release and release versions.


Use Image Playground in Xojo

Since macOS 15.2 we can use Image Playground in our applications. The users love to generate an image with Apple Intelligence. Whether you need a cool image to add to a social post, a placeholder image for some operation, the AI can just generate something based on a few keywords.

Our ImagePlaygroundMBS class provides a few methods to handle this. You make an instance, configure it with maybe a few concept phrases, a source image and then show it. We recommend to show it from a button somewhere in the user interface. You implement the events and the CreatedImage event will provide the folderitem to the image file. Just load and display like our example project.

(more)

Using writing tools in Xojo for Apple Intelligence

You may have heard that newer Macs get some Apple Intelligence features this year. As a developer, we may want to have our users enjoy these features. But in some cases we like to opt-out of the new features. Or provide hints to the system what is appropriate for our applications, so let's check a few of the new properties to configure.

(more)

MBS Xojo Plugins, version 24.6pr5

New in this prerelease of the 24.6 plugins:
  • Added automaticallyInsertsWritingToolsItems property to NSMenuMBS class.
  • Added allowsWritingTools property to NSTextFieldMBS class.
  • Added writingToolsItems shared method to NSMenuItemMBS class.
  • Added NSHTTPCookieSetByJavaScript shared method to NSHTTPCookieMBS class.
  • Added NSWritingToolsExclusionAttributeName shared method to NSAttributedStringMBS class.
  • Added NSToolbarWritingToolsItemIdentifier shared method to NSToolbarItemMBS class.
  • Updated to Xcode 16.2.
  • Added items method and debugItems property to NSMenuMBS class.
  • Added showWritingTools method to NSApplicationMBS class.
  • Added ImagePlaygroundMBS class.
  • Updated DynaPDF to version 4.0.96.272.
  • Added ConvToFreeTextCallout method to DynaPDFMBS class.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared DropBox folder.

You can subscribe to our Xojo mailing list to get notified for new pre-release and release versions.


Tip of the day: Add hover effect to a control in Xojo

We got the question how to add a hover effect to a control in Xojo for a web application. For a CSS file to the application, you can of course just use the :hover pseudo class to add whatever effects you like. But here we like to add the effect on the fly in code to a label as needed.

Here is a code snippet showing how we add three mouse event handlers in JavaScript to change the color:

Var s As String = "document.getElementById('"+Label1.ControlID+"')." Var s1 As String = s + "addEventListener('mouseenter', function() { this.style.color='red'; });" Var s2 As String = s + "addEventListener('mouseout', function() { this.style.color='green';});" Var s3 As String = s + "addEventListener('mouseover', function() { this.style.color='yellow';});" Me.ExecuteJavaScript s1 Me.ExecuteJavaScript s2 Me.ExecuteJavaScript s3

As you see we use ControlID to know what random six digit code is used internally to reference this control. With document.getElementById() we can find the control. Once we grabbed the control, we can use addEventListener to add the event and put in a function to do the style change.

Please try and let me know if this works for you.


MBS Xojo Plugins, version 24.6pr4

New in this prerelease of the 24.6 plugins:
  • Added more NULL checks for DevicePairingRequestedEventArgsMBS, WindowsDeviceInformationMBS, WindowsDeviceInformationPairingMBS, WindowsBluetoothLEDeviceMBS, WindowsGattDeviceServiceMBS and WindowsGattSessionMBS classes.
  • Updated curl library to version 8.11.1.
  • Removed kError_FUNCTION_NOT_FOUND and kError_HTTP_POST_ERROR constants for CURLSMBS class since they are obsolete.
  • Added new constant names for CURL classes: kError_WEIRD_SERVER_REPLY, kError_UNKNOWN_OPTION, kError_SETOPT_OPTION_SYNTAX
  • Deprecated old constant names for CURL classes: kError_FTP_WEIRD_SERVER_REPLY, kError_UNKNOWN_TELNET_OPTION, kError_TELNET_OPTION_SYNTAX, kError_SSL_CACERT, kError_LDAP_INVALID_URL, kError_CONV_REQD.
  • Added GetInfoEarlyDataSent method for CURLSMBS class.
  • Added kSSLOptionEarlyData constant for CURLSMBS class.
  • Updated expat library to version 2.6.4.
  • Updated mongo-c-driver library to version 1.29.1.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared DropBox folder.

You can subscribe to our Xojo mailing list to get notified for new pre-release and release versions.


Xojo 2024r4 released

Today Xojo Inc. released the new version of Xojo, their forth release for this year. Let's check what is new.

Release notes - Download

New is support for Windows ARM 64-bit for XojoScript. We waited years for this feature, because it enables Xojo Inc. to make an ARM version of the IDE for Window in the future. That would be great since developers like me use a Macbook with Apple Silicon and use Windows 11 in a VM. Running the Intel version on an ARM chip slows the IDE down a bit. There may be in the future the possibility to also do a Linux ARM IDE version. Then Xojo Inc. may do an universal installer which brings both variants and installs the right one.

Apple asked many years ago to sign applications. Later added notarization to make sure applications are not modified between the developer packaging them and users installing them. While it sometimes causes a bit of hassle for developers, I think this is a great enhancements to prevent a lot of malware. For the last 12 years could get everything done properly with the AppWrapper application or do similar things with a script in Terminal. Xojo 2024r4 has its own settings to do similar things for macOS. While we appreciate to have something finally, I expect a lot of people will still use App Wrapper for more options. And since you also need to sign applications on Windows, you may need to look for something similar for the Windows side.

The new preemptive thread feature in 2024r3 was great, but not perfect. Real world usage of this feature showed a few bottlenecks and Xojo Inc. improved the locking mechanisms to make things run faster.

If you use the IDE for coding you probably enabled things like applying standard case and standardize format options. New in this release is the option to highlight the current row and display matching selections. Basically if you select one variable name, the IDE will highlight other places where these appear. In the background the IDE does a word search for the same text.

If you use SSLSocket, you may like to see the upgrade to TLS v1.3, which helps with newer servers, that require the newer version. And the URLConnection class can now follow redirects, which is convenient as you don't need to code this yourself.

For MBS Xojo Plugins, please use version 24.x with Xojo 2024r2. They work fine together as far as we see.

You find more details in the Xojo 2024r4 Release Notes.


Three weeks till year's end

The year 2024 will end in less than three weeks. Do you need some more licenses?
  • You can order licenses for 2025 or later and have invoice, delivery and payment done in 2024.
    This way you secure the current pricing and the possibility to keep upgradeability for older licenses.
  • And of course you can order updates for several years in advance for all your MBS products.
  • As all our Xojo and DynaPDF plugin licenses are per developer, you should check if you got a new developer in your team this year and adjust licenses to match team size.
  • For MBS FileMaker Plugin please check if you have enough license for the number of seats or servers you have in use.
    If you upgrade to unlimited seats or servers, the plugin won't need to check the usage counts.
  • For LibXL you can check if you like to upgrade from individual developer licenses to the Enterprise level. We can assist and may apply a special upgrade price.

Especially if you run on a budget and you want to spend some money in the old year, you can buy updates for several years in advance.
If you need help to decide what Xojo, FileMaker or plugin license you need, we may be able to assist you.


MBS Xojo Plugins, version 24.6pr3

New in this prerelease of the 24.6 plugins: Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared DropBox folder.

You can subscribe to our Xojo mailing list to get notified for new pre-release and release versions.


Stacktraces for Windows

The last weeks, I have been looking for where some crashes in some code happen. You know, somewhere in a big app you have a crash, but not stack trace to figure it out.

So we have the CallDelegateCrashSafeMBS method, which is great to handle this. If you know something may crash, just call it through CallDelegateCrashSafeMBS like this:

CallDelegateCrashSafeMBS AddressOf test

This function takes extra care to catch crashes on a low level and raise a Xojo exception, so you may have a chance to see something in the debugger. I write may as the application crashed and we have no idea in which condition the application is. But we can try to show you the location with the exception.

(more)

ZUGFeRD Update

Many customers in Germany are currently interested in the topic of electronic invoices. With the MBS FileMaker Plugin and the DynaPDF functions, we can help you to implement this in FileMaker solutions.

ZUGFeRD

If you are looking into the topic of e-invoicing, then you should read on the website of the Forum elektronische Rechnung Deutschland what ZUGFeRD, what XRechnung and what Factur-XX is.

Then download the current standard: ZUGFeRD 2.3.2. In the download you will find the specification for ZUGFeRD (and Factur-X). There are also various code lists, schema files and many sample invoices.

(more)

MBS Xojo Plugins, version 24.6pr2

New in this prerelease of the 24.6 plugins:
  • Removed the dependency on VCRUNTIME140_1.DLL for TagLib plugin part. Appeared back in pr1.
  • Updated DynaPDF to version 4.0.95.269.
  • Added GetLastTextPosYAbs and GetLastTextPosXAbs functions to DynaPDFMBS class.
  • Improved freeing objects in threaded code for Windows, e.g. for Bluetooth, Store, OCR and PDF classes in WinFrameworks plugin.
  • Improved trace logging in DynaPDF Plugin to include more DynaPDF objects.
  • Fixed memory leak with DynaPDFBitmapMBS class destructor leaking a memoryblock.
  • Fixed memory leak with DynaPDFOptimizeParamsMBS class destructor leaking an array.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared DropBox folder.

You can subscribe to our Xojo mailing list to get notified for new pre-release and release versions.


ZUGFeRD Update

This is the German version. See the English version here.

Viele Kunden interessieren sich im Moment für das Thema elektronische Rechnungen. Mit dem MBS Plugin und den DynaPDF Funktionen können wir Ihnen helfen dies in FileMaker Lösungen und Xojo Anwendungen zu implementieren.

ZUGFeRD

Wenn Sie in das Thema e-Rechnung rein schauen, dann sollten Sie auf der Webeite vom Forum elektronische Rechnung Deutschland einmal lesen, was ZUGFeRD, was XRechnung und was Factur-X ist.

Dann laden Sie sich den aktuellen Standard mal runter: ZUGFeRD 2.3.2. In dem Download finden Sie dann die Spezifikation für ZUGFeRD (und Factur-X). Dazu kommen noch diverse Code Listen, Schema Dateien und viele Musterrechnungen.

(more)

MBS Xojo Plugins, version 24.6pr1

New in this prerelease of the 24.6 plugins:
  • Improved WordFileMBS class with PropertyValue() to work on custom properties, too.
  • Fixed memory leak in Invoke method of DeclareFunctionMBS class.
  • Fixed a memory leak in the RequestAccessCompleted event of WindowsBluetoothLEDeviceMBS class.
  • Fixed a memory leak in the RequestAccessAsyncCompleted event of WindowsGattDeviceServiceMBS class.
  • Fixed a memory leak in DeclareLibraryMBS constructor.
  • Fixed a memory leak in ConvertStyledText in DynaPDFMBS class.
  • Added GetFontSize method to DynaPDFMBS class.
  • Fixed a memory leak in running request in FMConnectionMBS class.
  • Fixed a memory leak in recordWithIDWasDeleted event in CKFetchRecordZoneChangesOperationMBS class.
  • Fixed a memory leak in FieldByName function in MimeHeaderMBS class.
  • Fixed a memory leak in EstimatedDocumentCount function in MongoCollectionMBS class.
  • Fixed a memory leak in exception handling for Java classes.
  • Fixed a memory leak in Root method in IORegistryMBS class.
  • Fixed a memory leak in Match method in PCRE2CodeMBS class.
  • Fixed a memory leak in the Convert method in RabbitMQ classes to convert dictionaries.
  • Fixed a memory leak in fetchSubscriptionCompleted, discoverUserInfosCompleted and fetchRecordZonesCompleted events in CloudKit classes.
  • Updated to Xcode 16.1.
  • Deprecated ContentLengthPenaltySize, ChunkLengthPenaltySize and MaxPipelineLength properties in CURLSMultiMBS class.
  • Updated taglib to version 2.0.2.
  • Added ID3v2Tags property to TagLibFileRefMBS class.
  • Added Document property to XMLXPathResultMBS class to keep the reference to the parent document here.
  • Updated mongo-c-driver library to version 1.29.0.
  • Added AVPlayerViewControllerMBS class.
  • Added AVPlaybackSpeedMBS class.
  • Updated ssh2 library to version 1.11.1.
  • Improved Advances function in CTRunMBS class to be quicker if possible.
  • Fixed a few memory leaks where the result array was leaked if an exception was raised in the same method later.
  • Fixed a memory leak in GetSupportedIntentCodes in LCMS2MBS module.
  • Added more parameter checks for MongoDB functions.
  • Updated zlib to version 1.3.1.
  • Updated LibXL to version 4.5.0.
  • Added XLCorePropertiesMBS class.
  • Added RemoveAllPhonetics and CoreProperties methods to XLBookMBS class.
  • Added RowFormat and ColFormat functions to XLSheetMBS class.
  • Updated SQLite to version 3.47.1.
  • Improved DynaPDF.Initialize to log the version of DynaPDF loaded in the trace log.
  • Improved XL.Initialize to log the version of LibXL loaded in the trace log.
  • Split UIViewControllerMBS into it's own plugin part, so it can be used without AdMob classes.
  • Fixed a crash with UIViewControllerMBS destructor not working as it should.
  • Improved OSVersionString function in SystemInformationMBS module to better recognize Windows Server 2019 and newer.
  • Added BasicAuthenticationRequested event for WebView2ControlMBS control.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared DropBox folder.

You can subscribe to our Xojo mailing list to get notified for new pre-release and release versions.


The biggest plugin in space...

Archives

Jan 2025
Dec 2024
Nov 2024
Oct 2024
Sep 2024
Aug 2024
Jul 2024
Jun 2024
May 2024
Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008