Our Blog   Our Claris FileMaker Blog   Our Xojo Blog   Archive     Follow us on Mastodon, Twitter, Xing, LinkedIn or Facebook.

New JSON Plugin for Xojo

Our MBS JSON class called JSONMBS got a bit aged in the last years. Time for a rewrite and over the last months, we got that on the way. To make a compelling offer to our clients for using this class, it has include a few key things:

Although we swap the underlaying library, we have to keep the same interface so existing code using JSONMBS continues to work. And we need to do same behaviors as much as possible.

We need to keep performance at great levels, especially when JSONItem caught up in Xoxo 2021 Release 1. Since we have to go through the Plugin SDK interface, we are slower in some cases due to that extra layer. In other cases we can be more efficient and avoid calls and do things quicker. Performance should be in general the same and exact results depend on what operations are used in the benchmark code.

Since you may use JSONItem, we need to be compatible, so you can easily switch to our class. That means we have to copy the JSONItem public interface in both API 1 and API 2. That is why we get both Value() and ValueAt(). You can choose whatever name you prefer since they are all connected to the same methods internally.

We like to add great new features like JSON Path Queries, Search & Replace and flatten & unflatten. If you know XML queries, you may like the JSON queries:

  • Query(Path as string, Options as Integer = 0) as JSONMBS
  • Search(Path as string) as JSONMBS
  • Replace(Path as string, NewValue as Variant) as JSONMBS
  • Flatten(value as JSONMBS) as JSONMBS
  • Unflatten(value as JSONMBS) as JSONMBS

MBS Plugins on Xojo Cloud

You may know Xojo Cloud as an easy way to deploy Web 1 and 2 applications to the web. A Xojo Cloud plan is just $49 per month for the smallest level and it is very comfortable. Just make your Xojo project, set Cloud as build target and click the deploy button. If you have no time to manage your own VPS, this is the most convenient way to run Xojo web apps. The second most comfortable way is probably using Lifeboat from Strawberry Software to manage your apps on your own VPS, e.g. an Amazon EC2 instance.

When we updated OpenSSL recently in version 23.2, we accidentally broke the compatibility to the linux used on Xojo Cloud, which seems to be current CentOS 7.9. Sorry if you are affected. This is fixed for 23.5pr1 and future releases. Of course Xojo Cloud may update someday to a newer version of Linux, like a current Ubuntu.

For the time being, the following plugin parts (out of about 500) may not load on CentOS due to library dependencies to newer C/C++ versions:

We also got a feature request to upgrade the Linux Cloud Servers to a newer version: Issue 74230.

Please don't hesitate to contact us if you have questions or need assistance.

PS: Please note that the use of 32-bit Intel Linux version of MBS Xojo Plugins is deprecated. 32-bit for ARM is still working fine of course as well as all the 64-bit targets.

MBS Xojo Plugins, version 23.5pr1

New in this prerelease of the 23.5 plugins:
  • Improved UUIDMBS.randomUUID to be a bit more random.
  • Rewrote JSONMBS class.
  • Added Query, Search and Replace functions for JSONMBS class.
  • Added Flatten and Unflatten functions for JSONMBS class.
  • Added Search to JSONMBS class class to perform JMESPath queries in Xojo.
  • Changed SQLConnectionMBS class, so you can load Actual Tech ODBC drivers directly without using iODBC.
  • Added RowsAffected property to SQLConnectionMBS and SQLDatabaseMBS classes.
  • Fixed OpenSSL to not depend on GLIBC_2.25, so you can use our plugin on CentOS 7 again and on Xojo Cloud.
  • Enabled fortified source checks for libc on Linux.
  • Updated DynaPDF to version
  • Added kgfSkaleAnnotIcons constant for DynaPDFMBS class.
  • Updated CURL to version 8.3.0.
  • Updated to Xcode 15.0.
  • Added iterators to DynaPDF with new DynaPDFIteratorMBS class.
  • Added Operator_Convert to DynaPDFAnnotationMBS and DynaPDFAnnotationExMBS to convert between them.
  • Fixed FolderItem.PhysicalFileTotalLengthMBS function for Windows to report block size.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

Seven months until MBS Xojo Developer Conference

Just seven months left until we start our MBS Xojo Developer Conference in Andernach, Germany. We know it is still early, but we already got a few speaker proposals and already the first 10 registrations from five different countries: 🇩🇪, 🇳🇱, 🇬🇧, 🇺🇸, and 🇫🇷.

Outside image of hotel at night.

Please join us 25th and 26th April 2024 in Andernach, Germany for a great Xojo developer conference. You may consider to arrive 24th April to join the evening reception in the hotel. Or even arrive earlier to join our Xojo training day. And if you come from far away, how about staying longer and do a bit of sight seeing with the group on Tuesday?

News from the MBS Xojo Plugins Version 23.4

In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 23.4.


Also in this release we have something new for MongoDB. We updated our SSL support for our MongoDB plugin. We switched to using OpenSSL as the transport encryption for the MongoDB library for macOS and iOS. The SSLLibrary function tells you which SSL library is in use. You can use MongoSSLOptionsMBS class to specify SSL options in addition to putting them into the connection string. To check about possible reasons for connection problems, we got a new trace logging functionality with Trace property in MongoClientMBS class. And by regularly calling ping method you can check whether the connection is alive and keep it open.


For the classes CURLMBS, CURLNMBS and CURLSMBS we have 2 new methods each. When we work with URLs, we mostly need the absolute URL. The new method ProcessRelativeURL now offers us the possibility to convert a relative URL into an absolute URL by additionally specifying the base URL.

With the second new method RemoveAll we can remove all curl handlers at once. So that we don't have to take the way over a loop with RemoveCURL. This makes our work easier and the code remains clearer.


The need for automated checks

When you do things in your business, it is very important to have automated checks. A process needs to check if the previous process did the right thing. Because whatever can go wrong, will eventually go wrong and then you add a new check.

Today we added a check to our newsletter sending to make sure the text file for the announcement is from the current month. This hopefully avoids us sending out over 1000 emails with the old text the next time. Sorry, if you got one of these announcement newsletters with the wrong announcement.

Recently we got a new check when packing the plugins to check if the version number in the plugin file is the current version. Because it happened before, that the build machine failed and didn't copy over a new version. We also check that plugin files have a minimum file size and the linker didn't abort for some reason. The same script checks if all the plugins are from the same day to avoid missing to build one of them. (more)

MonkeyBread Software Releases the MBS Xojo Plugins in version 23.4

Nickenich, Germany - (September 12th, 2023) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 23.4 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo. MBS Xojo Plugins have been updated and now includes over 3000 classes and 80,000 documented features, and the versatile plugins have gained more new functions:

We updated our SSL support for our MongoDB plugin. We switched to using OpenSSL as the transport encryption for the MongoDB library for macOS and iOS. The SSLLibrary function tells you which SSL library is in use. You can use MongoSSLOptionsMBS class to specify SSL options in addition to putting them into the connection string. To check about possible reasons for connection problems, we got a new trace logging functionality with Trace property in MongoClientMBS class. And by regularly calling ping method you can check whether the connection is alive and keep it open.

For macOS we got a new NSSplitViewControlMBS control and the related NSSplitViewMBS class to get the native split control into Xojo. You can customize the splitter and decide between horizontal and vertical layout.

For Windows we rewrote the WindowsPowerStateMBS class. It got a couple of new methods to register for receiving various events about battery capacity change, lid switch change, power source change and suspend/resume events for the mobile computer. The Bluetooth LE classes got updated to support pairing with new WindowsDeviceInformationPairingMBS class. The WebView2ControlMBS control has new methods to map virtual host names to local folders.

For iOS we enabled the use of Midi features using MidiClientMBS class. We updated NSTextListMBS class to work on iOS and improved NSMutableAttributedStringMBS class.

We got new Base32 encoding and decoding functions, the ProcessRelativeURL method for CURLSMBS class can help to expand relative URLs and we include the BugreporterKit with the examples. The SerialPortMBS class can open paths to special devices like pipes.

Finally we updated ChartDirector to version 7.1, curl to 8.2.1, DynaPDF to, SQLAPI to 5.2.5 and SQLite to version 3.43.1.

See release notes for a complete list of changes.

MBS Xojo Plugins, version 23.4pr7

New in this prerelease of the 23.4 plugins:
  • Updated SQLAPI to version 5.2.5.
  • Added new properties for PHPickerConfiguration class.
  • Added audio constants to VLCInstanceMBS class.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

Omegabundle ends in five days

The OmegaBundle offer will end in about five days.

OmegaBundle 2023 with some MBS products

Omegabundle for Xojo 2023 is a collection of the most useful tool sets, add-ons, digital books and components for use with Xojo Inc's Xojo development environment. If purchased separately and not including any additional offers, the total cost would be over $4166.94. Omegabundle for Xojo 2023 costs $499.99.

Xojo is an award-winning, cross-platform development tool for the Desktop (macOS, Windows, Linux), Web, iOS (iPad/iPhone) and Raspberry Pi. With Xojo, you can create native applications by using drag-and-drop to build your user interface and then one straight-forward programming language to enable the functionality. Xojo is powerful and modern, yet easy to use and learn.

Learn more at omegabundle.net , see what is included and order here.

16 years of MBS Xojo DynaPDF Plugin

About 16 years ago we started the development of our MBS Xojo DynaPDF Plugin.

After a year of development, the plugin was released to the public on 1st Sep 2007 with MBS Plugin 7.6pr1.

This plugin has been a big success for us and provides the PDF engine to thousands of Xojo applications around the world. Based on user feedback we got a lot of functions over the years like the raster engine, PDF/A conversion and ZUGFeRD support.

Please make sure you try the plugin, make it part of your toolbox and start to enjoy all the PDF features you can add to your application.

xDev Magazine 21.5 Issue

The September/October (21.5) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Long Memories by Marc Zeedar
Bad bugs can stick in the memories of your users for a long, long time. No matter how much you test, bugs can still slip through, however, so Marc has some ideas on how to minimize their impact and create a more positive experience.

Syncing Dropbox by Marc Zeedar
Dropbox suddenly decided to stop syncing on Marc's old Mac, ruining a crucial part of his workflow. Naturally, he turned to Xojo to create his own crazy workaround.

Rasp Pi Electronic Fun Part 3 by Eugene Dakin
I2C electronics communication is a popular standard that allows many that many controllers, sensors, and remotes connect to a Raspberry Pi board. In this issue's project, Eugene shows how to set up a MPL3115A2 barometric sensor.

Creating a Photomosaic by Marc Zeedar
Have you ever seen a photo that is made up of thousands of tiny pictures? That's a photomosaic, where photos replace the pixels in the larger image. For some reason Marc thought that would be easy to make in Xojo.

Plus: Topics such as Xojo 2023R2, charting, Windows PDFs, database joins and views, and more!

MBS Xojo Plugins, version 23.4pr6

New in this prerelease of the 23.4 plugins:
  • Improved FindField in DynaPDFMBS class to better find a field in a group.
  • Added OpenPath method to SerialPortMBS class.
  • Fixed a bug in setting SQLNumericMBS values with floating numbers, caused by a bug fix in version 23.3. Values showed up as zero incorrectly.
  • Fixed HighlightOnAllPages method in DynaPDFMBS class to pass color correctly.
  • Updated DynaPDF to version
  • Added kif2SkipDPartData flag for DynaPDFMBS class.
  • Added DeleteDPartNode method to DynaPDFMBS class.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

Create a Bar Chart in Xojo with the ChartDirector

Today I want to show you how you can easily create a bar chart, using MBS Xojo ChartDirector Plugin in a canvas in your Xojo application.

In our case we want to show a statistic about the favorite colors of the Germans. Here is the data we want to display

blue red green black yellow white gray brown purple orange
40% 19% 18% 16% 11% 8% 7% 7% 6% 6%

For this we first create three different arrays. An array that contains the individual values and a matching array with the labels. For the values we have to make sure that they are in an array of type double, otherwise they cannot be used later. Last but not least we create an array in which we define the colors. In our case we have specified the color values in hexadecimal.


NSSplitView Control for Xojo

For next release we add the NSSplitViewControlMBS to our Xojo plugins with the attached NSSplitViewMBS class.


Omegabundle price change coming

This year the vendors for OmegaBundle got a different idea on how to do the bundle. Instead of running a bundle for $399 USD for two months including 2 extension weeks, we switch to a different way of running the bundle:
  • 2 months in July and August we offer the bundle for $399 USD.
  • An extension in early September for about 10 days with a $499 USD price tag.
We tell you the price hike in advance to encourage everyone to make the purchase before September for the lower price. When the price goes up, the bundle is basically over. Only if you are very desperate to get the products in the bundle for that price, you make a purchase in September.

Check out what is inside OmegaBundle: Featured Products

MBS Xojo Plugins, version 23.4pr5

New in this prerelease of the 23.4 plugins:
  • Added NSSplitViewMBS class.
  • Added NSSplitViewControlMBS control.
  • Added clipsToBounds property to NSViewMBS class.
  • Updated SQLite to version 3.43.0.
  • Added RemoveAll method to CURLSMultiMBS class.
  • Added ListenForBatteryCapacityChanged, ListenForLidSwitchStateChanged, ListenForPowerSourceChanged and ListenForSuspendResumeNotification methods to WindowsPowerStateMBS class.
  • Added BatteryCapacityChanged, LidSwitchStateChanged and PowerSourceChanged events to WindowsPowerStateMBS class.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

Xojo Meeting in Atlanta

I am coming to Atlanta in early October and I may organize a casual get-together with Xojo developers.

Something like a meet-up for dinner in a restaurant to talk about Xojo.

But I’d be welcome to ideas.

I made a survey with doodle to find a date: Survey to find a date

We previously had several meetings in Atlanta as well as a Xojo conference in 2011 (See report in XDevMag 9.4).

Xojo Sale - Save 25% on licenses and extras!

Xojo Inc. announced a sale for the next few days:

All Xojo new licenses and renewals, along with upgrades and third party extras are on sale through 11:59PM CT Thursday, August 24th.

Buy now!

Keeping your license current gives you access to what’s coming and also gives you immediate access to all of the exciting new features and improvements we had added lately, like:

  • Android (Beta)
  • Dark Mode for web apps and Linux
  • DesktopXAMLContainer
  • PDFViewer control for iOS
  • Chart Control for Desktop and iOS
  • Debugger Variable Filter
  • Code Editor Duplicate Line and Swap Line
  • Build apps for Linux ARM64
  • WYSIWYG display of WebListBox in Layout Editor
  • Project load times are significantly shorter for large projects
  • Build apps for Windows ARM
  • PDF Encryption
  • iOS on-device debugging
  • … and much more

MBS Xojo Plugins, version 23.4pr4

New in this prerelease of the 23.4 plugins:
  • Fixed typo in names for EDSModule.kEdsTonigEffect* constants, now kEdsToningEffect*.
  • Added ProcessRelativeURL method to CURLSMBS class.
  • Added BugreporterKit to examples for 23.4 release.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

ChartDirector 7.1 released

Advanced Software Engineering Ltd announced their version 7.1 of ChartDirector for C++. This update adds support for the Qt Quick/QML framework, which is not of interest for Xojo developers. But we got a couple of bug fixes:

  • ChartDirector crashed if a MultiPagePDF object is with no page at all.
  • Candlestick were not drawn correctly in SVG if the open and close prices are the same. (This only affects SVG output.)
  • ContourLayer image map was incorrect if swapXY was used.
  • If a ContourLayer or SurfaceChart included tooltips and they are put inside a MultiChart, the code did crash when attempting to display the tooltip.
  • Could not load certain JPEG images.
  • The BaseChart.setOutputOptions in C++ may not handle the last option correctly if the option list is not terminated by a semi-colon. This is in conflict with the documentation that mentions the list of options should be delimited by semi-colons and the last semi-colon is optional.
  • In lowess curve fitting, if there was a large number of data points with a very small smoothing factor, the points at the boundaries (the first and last few points) may not have fit very well in some cases. This is not noticeable by looking at the entire curve, but is noticeable when zoom into the first and last few points by using a high zoom factor.
  • In a SurfaceChart, if surface projection was used and the interpolation for the x and y direction were different, the code may crash.
  • In macOS, if ChartDirector needed to resize an externally provided image (eg. an icon to be used on the chart), in some cases the resized icon may have contained "noise".
  • On a chart, if there were both continuous image map (the image map for contour and surface charts with differ pixel by pixel) and regular image maps (the image maps for all other objects) and they overlap, the imageMapHandler may have handled the z-order of these maps incorrectly.
  • Discrete Heat Map parameter substitution was not correct for the zIndex and extra field (which are indexed by the zIndex) if the x and y arrays are provided.

All customers with a current license for our MBS Xojo ChartDirector Plugin with expiration date in September 2023 or later will get this update with the 23.4 release and enjoy the bug fixes. You can get a license included with OmegaBundle 2023.

Older blog entries:

2023-08-20 Tip of the day: Where are we in the code?
2023-08-17 MBS Xojo Developer Conference: Speaker wanted
2023-08-16 MBS Xojo Plugins, version 23.4pr3
2023-08-14 Two weeks left for Omegabundle 2023
2023-08-11 DynaPDF WriteFText last line handling
2023-08-09 MBS Xojo Plugins, version 23.4pr2
2023-08-08 Create PDF with unicode text in Xojo
2023-08-01 MBS Xojo Plugins, version 23.4pr1
2023-07-26 News from the MBS Xojo Plugins Version 23.3
2023-07-18 MonkeyBread Software Releases the MBS Xojo Plugins in version 23.3
2023-07-13 Create a cone chart with MBS and ChartDirector
2023-07-12 MBS Xojo Plugins, version 23.3pr7
2023-07-11 MBS Xojo Developer Conference
2023-07-10 First OmegaBundle orders delivered
2023-07-07 Insert image options with DynaPDF
2023-07-05 MBS Xojo Plugins, version 23.3pr6
2023-07-05 Create PDF/UA with DynaPDF Starter
2023-07-03 xDev Magazine 21.4
2023-07-03 Omegabundle for Xojo 2023 Developer Tools Bundle Now Available
2023-07-02 PDF Viewer controls for iOS


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
XML: RSS Feed XML: Atom Feed