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

MonkeyBread Software Releases the MBS Xojo Plugins in version 22.2

Nickenich, Germany - (May 17th, 2022) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 22.2 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 79,000 documented features, and the versatile plugins have gained more new functions:

Our RegEx plugin now contains new PCRE2 based classes to do regular expressions. With full unicode support, just-in-time compiler and a lot of options, this provides much better performance for search and replace in Xojo.

For our SQL Plugin, we got new functions for SQLite to dump databases to string and file. We can query the internal connection handle for SQLite and use it for the dump. For SQLDatabaseMBS and SQLConnectionMBS we got options to decide about quoting of table and field names. You can now use DateTime for binding values to timestamp fields.

The WebView2ControlMBS control can now do Copy, Cut, Paste, SelectAll, ClearSelection and Print operations directly.

The Windows User Notifications classes got a rewrite and with that a few new properties and methods. We work on new Bluetooth classes for Windows and a few of them are included here.

For those interested in using ZStandard compression, we got a ZStdMBS class. The WordFileMBS class got a new Tags function to list all available tags.

On MacOS you can now render pictures of NSViewMBS class to get a screenshot, even if it is not visible directly. We added more properties for SUAppcastItemMBS class for Sparkle users.

The DynaPDF library has been updated and tested to work with ZUGFeRD 2.2 / Factur-X 1.0.06. We improved the character spacing for graphics class when used with PageGraphics in DynaPDFMBS class.

Finally we updated CURL library to version 7.83.1, DukTape to version 2.7, DynaPDF to 4.0.66.181, pcre2 to 10.40, openssl to 1.1.1n, SQLite to 3.38.5, and Xcode to 13.3.1.

See release notes for a complete list of changes.

MBS Xojo Plugins, version 22.2pr7

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

XDC Developer Retreat 2022

Since the last Xojo conference in London had to be postponed and then cancelled, we are happy to see that there will be a conference in Nashville later this year:



Xojo Developer Retreat 2022, 19th and 20th September 2022.

Since a few people are still cautious to travel (although restrictions got lifted a lot), the event will be a bit smaller with only 2¼ days and less planned attendees.
Please reserve the days from 18th to 21st September in your calendar. You may want to use the weekend to come to Nashville earlier to enjoy the city and then join the get-together on Sunday evening. Two days of conference follows with a special developer adventure on the second day. Yes, instead of lots of sessions in a ballroom, Dana organized something different this time. I bet you'll enjoy it! Be sure sure to stay the night on Tuesday, so you can enjoy the dinner and travel home a day later.

You can either stay in the conference hotel ($269 USD/night) or maybe better get a cheaper hotel outside and drive daily to downtown for the conference. Or maybe you like to share a room when traveling with your colleague?
Since the conference hotel allows you to cancel, it may be good to reserve a room and later rebook it or cancel, when you find a lower rate.

Students, please contact Dana to get a discount. And if you have an interesting topic to present on, please also don't hesitate to contact Xojo.
Sign-up until 15th May, so you can benefit from the lower $499 USD rate for the conference.

MBS Xojo Plugins, version 22.2pr6

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

MBS Xojo ChartDirector Plugin Birthday

Just 15 years ago we added the ChartDirector Plugin to our MBS Xojo Plugin collection.
Thanks to Mr. Jason J. Campbell for asking me to add a charts plugin and thanks to Peter Kwan from Advanced Software Engineering Limited for his support over the years and the excellent co-operation.



PS: ChartDirector is also the engine used by FileMaker Pro internally for the chart generation as you can see on the included DLLs.

xDev Magazine 20.3

The May/June (20.3) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

XDC Anywhere 2022 by Marc Zeedar
In April Xojo held their first virtual conference. What happened? Did you miss it? It's not too late as everything is up on YouTube for you to watch at your convenience.

Xojo 2022 Release 1 by Marc Zeedar
The latest Xojo update has some major new features. Marc gives an overview and shows how to create some cool new Code Assistant scripts.

Easy Money Entry by Tom Baumgartner
Tom wanted to write his own accounting app and learned that creating a proper currency field is harder than it seems.

Making a Fontbook by Marc Zeedar
When Xojo added support for using uninstalled fonts, Marc thought it would be a great way to make PDFs of his font collections. Unfortunately, the process was a lot more complicated. In the end, he had to learn how to parse font files to get the project to work.

Plus: Debugging basics, JSON, using Continuity Camera, subqueries, and more!

Iterate with PCRE2

For our new PCRE2CodeMBS class, we add a new Matches method. It returns an iterator, so you can use it with a for-each loop in Xojo:

Sub test() Dim rx As New PCRE2CompilerMBS rx.CaseLess = True rx.DotAll = False rx.Ungreedy = False rx.NewLine = rx.kNewLineAnyCRLF rx.Multiline = True rx.Pattern = kMarkerPattern Dim code As PCRE2CodeMBS = rx.Compile If UseJIT Then code.JITCompile(code.kJITComplete) End If for each MatchData as PCRE2MatchDataMBS in code.Matches(TestString, 0) foundCount = foundCount + 1 next End Sub
(more)

MBS Xojo Plugins, version 22.2pr5

New in this prerelease of the 22.2 plugins:
  • Updated RemoveAccentsMBS function to recognize more characters like ½.
  • Updated DynaPDF to version 4.0.66.181.
  • Updated DukTape library for JavaScriptEngineMBS class to version 2.7.
  • Small fixes for PCRE2 classes and performance upgrades.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

New PCRE2 Plugin for Xojo

As you may know we have Regular Expression classes for many years in our Xojo plugins. See RegExMBS class for the old interface using the older PCRE library. Those classes will stay available for the future, but we mark them as deprecated. The library is no longer in development and only gets security related fixes.

For PCRE2 we made new plugins classes:

The PCRE2CompilerMBS parses a pattern and creates the PCRE2CodeMBS object with the compiled version of that pattern. Unless configured otherwise this includes running the Just-In-Time compiler to convert your pattern to a little native piece of program code.



Once you have the code, you can create a PCRE2MatchDataMBS object to hold the results of a search. You can now loop over text to find all positions where your pattern matches. The data object is reused. We have convenience functions to perform the search and return you a new data object or an array with match data objects for all the found positions.

The PCRE2MatchContextMBS class can be used to configure limits in matching like the amount of memory allowed to be used. All error handling is translated to exceptions with the PCRE2ExceptionMBS class. Please check results of functions since not finding something doesn't cause an exception, but returns a negative number for the number of matched captures.

If you like you can check the various flags to configure the search. This may include multi line, case sensitively, whole word and other useful flags. The library is unicode aware, so you can find unicode characters. If you like, you can also check the compiled pattern for what parameters it contains and enumerate all the callouts. Compiled patterns can be stored serialized for later reuse. This further reduces the CPU time to prepare them for reuse.

Finally we have a Substitute() function to replace a found pattern with a replacement pattern. This new pattern can then reference captured values from the search pattern. If you set the SubstituteGlobal flag, we perform a ReplaceAll for a whole text.

Our new RegEx plugin is already compiled for all 15 platforms: macOS 32 and 64-bit Intel, macOS Apple Silicon, iOS for Device and Simulator, Windows 32 and 64-bit for Intel and 64-bit ARM, Linux in 32/64 for Intel and ARM. But as you know 64-bit ARM is not currently included in the downloads for Windows and Linux since Xojo is not yet ready for that.

Please try the new plugin part with 22.2pr4 and play with the classes. Please don't hesitate to contact us with your questions or bug reports, so we can fix any issue before the final version ships later this month.

Upcoming changes for MBS Plugins

We have a few pending things to do.

OCR

We added support for Tesseract 4 last year. Later this summer (blog article for Xojo and FileMaker), we will also check Tesseract 5.1 to make sure it works correct and provide you newer libraries. Of course you could try it yourself and we would expect it to work already.

Once version 5 is official supported by MBS Plugins, we will remove the version 3 code from our plugin. Please adjust your projects later this year.

Pricing

For the last two years, we thought about how to change our pricing. It has been the same for over 10 years. But we see issues, where we like to make adjustments. Our plugins grew a lot over 10 years and in that time the currency values changed quite a lot. And there are cases where were our plugin could be more affordable to be used in more situations. The new pricing is not final and will come later this year.

All customers have the chance to order licenses and updates in advantage for the old pricing. Just use the web shop as needed. We can provide you an update link. For special requests with bundles or multi year discounts, we can generate a custom invoice.

Swift

New frameworks from Apple are now Swift only. We get requests for newer technologies to be supported in the plugin where we need Swift. Our plugin may in future support that, but it may raise the required macOS version for the Intel version and we may need to provide two versions, one for older and one for newer macOS versions.

Barcode Detection

We deprecate the zxing classes for Xojo and will remove them eventually. For FileMaker, that's the Barcode.Detect function. Please move to newer zbar class (or Barcode.Scan function). The old zxing code is heavily outdated and doesn't recognize as good as before.

To make the transition easier, we may do a new implementation of Barcode.Detect to use zbar internally, but you'd still need to put the zbar dll somewhere.

MBS Xojo Plugins, version 22.2pr4

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

Apple MapView In Xojo

Stefanie presents how to use maps in your Xojo application on macOS and iOS with MBS Plugins.

All movies   Watch on YouTube.

(more)

XDC Anywhere - MBS Xojo Plugins

Let us show you what is new in MBS Xojo Plugins for 2021/2022:

All movies   Watch on YouTube.

(more)

XDC ANYWHERE 2022

Today the visual Xojo conference 2022 starts and we look forward to the announcements in the keynote.

The following session videos will be shown on the Xojo YouTube channel:

  • XDC Keynote from Geoff Perlman - Founder and CEO of Xojo, Inc. Geoff Perlman discusses our vision for Xojo, how we have been delivering on that vision and our plans for continuing to do so for the future.

  • Xojo for Android from Paul Lefebvre - Xojo Engineer Paul Lefebvre talks about Xojo for Android, currently in pre-release testing. Learn about Android Architecture (ART), supported Android OSs, Android UI Components, Android Framework items, debugging and more coming to Xojo Mobile, plus a look at some sample code for Xojo Android.

  • Building Plugins for Xojo from William Yu - In this XDC Anywhere session, Xojo Engineer William Yu talks about how you can use the Plugins SDK to create your own Xojo plugins. You’ll see what the structure of a plugin looks like and explore how the dynamic API can be utilized to access parts of the Xojo framework.

  • Building a Xojo Web Dashboard from Wayne Golding - In this XDC Anywhere session, Xojo MVP Wayne Golding builds a Xojo Web Dashboard where all dashboard pages are the same, so the activity is managed at the Application level.

  • What’s New in MBS & Xojo 2022 from Christian Schmitz - Christian shows you what’s new in MBS Xojo Plugins for 2021/2022. Monkeybread Software is one of the most respected names in the Xojo community and offers a variety of plugins.

  • Filling in the iOS Gaps from David Cox - There is a learning curve when moving from developing Desktop or Web Apps to iOS. There are many differences and entirely new ways to approach the same problems, but it can be done. Learn how you can create an iOS app that is fully iOS and has the equivalent functionality from both Desktop and Web.

  • Favorite Xojo Web Features from Travis Hill - In this XDC Anywhere session, Xojo Engineer Travis Hill talks about his favorite Xojo Web features.

  • Using Xojo’s PDFDocument from Javier Menendez - Xojo Engineer Javier Menendez discusses all of the exciting changes that have come to PDFDocument in recent releases.

  • Apple Mapview in Xojo Using MBS Plugins from Stefanie Juchmes - Stefanie shows how you can embed maps from AppleMaps into your solutions and even calculate your own route!

For more information visit the XDC Anywhere website.

Two months of war in Ukraine

Today we are two months into the Russian attack on Ukraine. This war is heart breaking as we know people both in Ukraine and Russia. We have quite a few customers in those countries. It's amazing to see how much of the people we work with or buy stuff from are based inside the Ukraine. Like Valentina database is developed there. LibXL also is from there, but they left just in time before the war.

We personally had visited Russia before on a cruise ship trip to St. Petersburg. A nice city, friendly people and a lot of history to see. What could have happened to Russia, if they invested all the money from their resources into the country. See what other oil countries do like Norway, Saudi Arabia or Dubai. They all know the oil will end and put the money into the country to prepare it for the time after the oil.

No idea what the Russian government wants in Ukraine. They already killed tens of thousands Russians (Soldiers and civilians there) as well as thousands of Ukrainians. And that all to control a piece of land as if Russia wasn't big enough already?

For us, we stopped selling to Russia immediately two months ago. Days before sanctions blocked the credit cards anyway. We donated for good causes in Ukraine and will continue to help.

We hope the Ukrainians can stand their ground and defend their country long enough, that the Russian government realizes this is not going to end in their favor. Or maybe the Russian people revolt to force a change in the government. We know most Russians may not know about the war since it's not shown in newspapers or TV inside Russia.

I feel sorry, for the Russians, who get dragged in a war by their government with all the bad consequences. But I feel even more sorry for the Ukrainians being attacked. We pray for you guys!

Safe on Xojo license with updating now

You have a current or expired Xojo license?

Xojo Inc. changed their price list and adjusted the prices. Adjusting prices every few years is okay and nobody should complain. But if you carefully read the blog post here: Changes to Xojo License Pricing, you may notice that old prices are still available for renewals and upgraded until 5th May 2022.

Anyone with a current or expired license should consider ordering an update now.
If your license is good until e.g. August 2022, you may think an update is not needed. But still you may do one and extend your license by one year to August 2023.

If you enjoy using Xojo, plan to use it for another year and you like to save a bit of money, you should order your renewal before 5th May.

MBS Xojo Plugins, version 22.2pr3

New in this prerelease of the 22.2 plugins:
  • Rewrote Windows User Notifications.
  • Added more properties for WinUserNotificationMBS class.
  • Removed boolean result for HideNotification and ShowNotification methods for WinUserNotificationCenterMBS class.
  • Updated to Xcode 13.3.1.
  • Improved Glyphs, Positions, Advances, and StringIndices to handle NULL buffer situation better in CTRunMBS class.
  • Updated DynaPDF to version 4.0.66.180.
  • Changed ClearPageGraphics in DynaPDFMBS to clear last font, so next time you draw to graphics, we set it again.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

Upload email to Sent folder via IMAP

As you know you can send emails via the CURL functions in MBS Xojo CURL Plugin. To have your mails show up in sent folder, you need to upload them to the IMAP server. The following snippet does it for Xojo. Key thing is to pass in URL to IMAP Server with name of Mailbox, e.g. "imap://imap.monkeybreadsoftware.de/INBOX.Sent". Than you set the upload option and provide the data to send. Of course you should use SSL, certificate verification and pass in your credentials. So here the Xojo code from the example project:

Sub UploadEmail() // we use here TLS with this login: Const Server = "sslin.df.eu" Const Username = "test@macsw.de" Const Password = "xxx" // we build a test email to upload Dim email As New CURLEmailMBS email.Subject = "Test Email" email.PlainText = "We uploaded this email via MBS Plugin."+EndOfLine+EndOfLine+"Greetings"+EndOfLine email.AddTo "test@test.test", "John Miller" email.SetFrom "test@test.test", "Marc Jones"
(more)

MBS Xojo Plugins, version 22.2pr2

New in this prerelease of the 22.2 plugins:
  • Updated openssl to version 1.1.1n.
  • Added Copy, Cut, Paste, SelectAll, ClearSelection and Print methods to WebView2ControlMBS control.
  • DynaPDF has been updated and tested to work with ZUGFeRD 2.2 / Factur-X 1.0.06.
  • Corrected declaration of autoresizingMask in CALayerMBS to correctly state as not supported for iOS.
  • Added option for SQLDatabaseMBS and SQLConnectionMBS to enable quotes around automatic generated INSERT statements: db.Option("Quotes") = "yes".
  • Rewrote ScreenshotWindowRectMBS and ScreenshotWindowMBS functions to work again.
  • Added Screenshot function for NSViewMBS class to render view into picture.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

Using MBS SQL Plugin with PostgreSQL

We like to show you how to use our MBS Xojo SQL Plugin with the SQLDatabaseMBS class with a local PostgreSQL server. This includes connecting, inserting records and running a query to load them into a listbox.

To test locally, we can download the PostgreSQL app and install it locally on our Mac (or Windows/Linux version on PC). With the app, we get a way to launch the server locally and create a database. Then we can open a connection in the Terminal and directly run queries.

Let's create a test table there with a few fields:

CREATE TABLE Persons (
   PersonID SERIAL PRIMARY KEY,
   LastName varchar(255),
   FirstName varchar(255),
   Address varchar(255),
   City varchar(255)
);
(more)

Older blog entries:

2022-04-08 MBS Xojo ChartDirector Plugin Birthday
2022-04-06 Xojo 2022r1
2022-04-01 MBS Xojo Plugins, version 22.2pr1
2022-04-01 Company's 22nd Birthday
2022-03-31 Xojo Stammtische in Berlin und Hamburg
2022-03-30 News from the MBS Xojo Plugins Version 22.1
2022-03-25 XDC ANYWHERE 2022
2022-03-21 Order troubleshooting
2022-03-17 Scintilla for Xojo
2022-03-15 MonkeyBread Software Releases the MBS Xojo Plugins in version 22.1
2022-03-10 MBS Xojo Plugins, version 22.1pr7
2022-03-08 MBS Xojo Plugins, version 22.1pr6
2022-03-06 Contextual Menus in Scintilla
2022-03-03 Text alignment for alerts
2022-03-02 xDev Magazine 20.2
2022-03-01 MBS Xojo Plugins, version 22.1pr5
2022-02-26 Scintilla in Xojo with Search and Replace
2022-02-25 Xojo Meetings for Montreal and Quebec City
2022-02-22 MBS Xojo Plugins, version 22.1pr4
2022-02-21 Upgrading WebKit for Windows support

Archives

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