Reducing plugin footprint for Xojo Console and Web projects

We had an idea on the weekend. If we mark more classes to be console unsafe, they are skipped for pre-compilation for console and web projects. The IDE has less items to take care about. So we went through the class list and identified over 300 classes, which you may usually not use in console projects. For example you may not need NSView, NSPanel, Photos, File Dialogs, GameKit, SceneKit or DiscRecording classes in your web projects.

Once this change is made the precompiled plugin data files are now 12 MB smaller and recompilation takes about 30 seconds less time here in our tests.

Another optimization is to split MacCG plugin. This plugin part produces the biggest cache file, so splitting it reduces the footprint for you if you don't need QuartzCore classes and you can leave away the new MacCI plugin.

Please try next pre-release plugins soon and let us know whether you miss a class for a console or web project. And of course let us know whether this helps you.

MBS Xojo Plugins, version 20.4pr6

New in this prerelease of the 20.4 plugins:
  • Added annotationViews function to MKMapViewMBS class.
  • Added NilObjectException check for WKWebViewMBS.LoadData for nil passed for data parameter.
  • Rewrote HotkeyMBS class for Windows to use official API. May prevent from duplicate registration and a hotkey processed in FileMaker is no longer passed to other apps.
  • Added FontWeight, FontStyle, FontStretch and FontFamily properties for GMImageMBS class.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Xojo 2020r1 available

Today Xojo Inc. released the new version of Xojo 2020r1. It brings a lot of new features like Web 2.x, PDFDocument and more.

With Web 2.0 Xojo Inc. navigated itself in a corner as they promised 2020r1 to ship with Web 2, but that was not ready in spring for a release. Now we have August and Web 2 is in an usable state and Xojo Inc. decided it is time to release and for you time to try! If you ever run a big project, you know the 80/20 split. The first 80% of a project often take 20% of the time, but the last 20% take 80% of the time. As expected the fine tuning of Web 2 took longer than expected.

For Web 2, this is the new shinny and cool Web development framework. Supporting responsive designs, modern looks, a lot of new controls, themes and it comes with a much improved file uploader. Please try it. Maybe do a test project to learn how it works and what you can do. It's brand new, so you may want to report bugs quickly and hope for a fix in r2 later this year.

But Web 2.0 not yet complete. Major things like a WebToolbar and WebStyle editors are not yet there. A few things are missing like sheet and palette dialogs, web animator and control sets. Some controls like the WebCanvas, WebMapView and WebLocation may need a refreshment. Before you consider to convert any project from Web 1 to 2 APIs, be aware that you have to change a lot of names for the new API 2.x naming as well as events and there is no way back. If you have a project to be delivered this year, please keep using Web 1 in Xojo 2019. For any project starting now for delivery later next year, you can try and start with Web 2 right away, report bugs and then deliver in spring with using 2021r1, because until then, a lot of bug fixes and enhancements will come for Web 2.

For desktop and console apps, there are a ton of enhancements and bug fixes. The linux folks will enjoy building Windows 64-bit apps on Linux. Or when debugging Windows 64-bit, the debugger now better finds the right line to show for a break on exception.

Let us look on bigger news like the HTMLViewer using WebKit 2 on macOS. If you use MBS Plugin with the HTMLViewer, please change code to use WKWebViewMBS class for enhancements to it. Older WebViewMBS class is now gone for Xojo 2020r1 as it won't be of any use. For some projects, please stay with Xojo 2019 if you need some specific feature not available on WebKit 2!

There is a new PDFDocument class. Written in pure Xojo code, it can generate PDF Files with using graphics class to draw. It has a lot of limits, but may be good as a starting point for the average Xojo developer. If you need more, you can use our classes in the MBS Xojo DynaPDF Plugin, where we also have graphics class support, too. And DynaPDF Starter is included with OmegaBundle 2020, so get it now. If you need importing PDF pages and place them, please consider an upgrade to DynaPDF Lite (for import) or Pro (for rendering or placement).

What is gone in Xojo 2020? I hardly expect anyone to miss the 32-bit macOS support and that is now gone. As Xojo runs on macOS 10.10 and newer only and 64-bit macOS was introduced in 10.7 there is no use for building 32-bit anymore.

Please try the new version, report all the issues you see via Feedback app and we look forward to one of the next releases to come with the bug fixes you need.

Recommended MBS Plugin version for Xojo 2020r1 is 20.2 or newer as in that version we applied the newer plugin SDK for our plugins.

See also blog entry from Bob Keeney: Xojo 2020 Release 1 @ BKeeney Briefs

MBS Xojo Plugins, version 20.4pr5

New in this prerelease of the 20.4 plugins:
  • Added WindowsStoreSKUMBS and WindowsStorePurchasePropertiesMBS classes.
  • Updated DynaPDF to version 4.0.41.117.
  • Updated CURL to version 7.72.0.
  • Added kcfNone constant for DynaPDFMBS class.
  • Added GetInfoEffectiveMethod and GetInfoRetryAfter methods to CURLSMBS class.
  • Added SupportsUnicode, zstdVersionNumber, zstdVersion, and SupportsZSTD to CURLSVersionMBS class.
  • Added ZPL function to GMImageMBS class.
  • Added ArrayItems function to JSONMBS class.
  • Added clone parameter for ArrayItem function in JSONMBS class.
  • Updated to Xcode 9.6.
  • If you pass picture as value for SQL parameter, we now convert to PNG MemoryBlock internally.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Omegabundle for Xojo 2020 ends 31st August

Get the top developer tools and third party components for the Xojo cross-platform development platform at a huge savings until 31st July August 2020.

Omegabundle for Xojo 2020 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 $3,711.00. Omegabundle for Xojo 2020 costs $399. Buy now on the Paradigma Software store.



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. (more)

Eight months till Xojo.Connect 2021 in London

Just eight months till the XDC 2021 in London, England. Tickets are still available for $750 USD till 1st October 2020 instead of $950 later.

This conference was cancelled due to new rules for quarantine when entering the United Kingdom.


It will be held April 21-23, 2021 March 30-April 1st, 2022 in London, England at the Holiday Inn Bloomsbury. This conferences is the best place to meet Xojo developers from around the world in real live, make contacts, present yourself as expert and learn what is new in Xojo. Tickets are available in the Xojo store and if you bring your partner, you can order an extra guest ticket for the dinner events.

Check out the conference highlights video if you want to see what it's like - or ask one of the many attendees from the forum!

Wether you are full or part time Xojo developer, this is your chance to learn all about the Web 2.0 framework, the Android progress and what's new in the Xojo world.

To get there, please use public transportation. The piccadilly line brings you right from Heathrow Airport to Russell Square Station, just next to the hotel. That trip should cost about 3 £ and you may just pay by tap in/out with your NFC enabled credit card or phone. Otherwise buy an Oyster card and load money on it if you don't have such a card. If you come by Eurostar train through the tunnel from France, you can exit Pancras station and just walk to the hotel. Otherwise take one station via subway to Russell Square Station. That station is right behind the hotel block.

See you soon there!

PS: We hope COVID-19 is mostly done by April 2021. As Geoff Perlman, CEO of Xojo Inc., said in a recent hangout event, in case of cancellation that would be end of the year and everyone is refunded. So you can sign up and book flights early in January.

Selling Xojo apps on Windows Store

As you may know we have StoreKit APIs for macOS in MBS Xojo Plugins for years to do in-app purchases. A similar API exists for Windows for the Windows Store from Microsoft.

For next MBS Xojo Plugins we include classes for the Windows Store:
For example to query trial status, you could initialize the WindowsStoreContextMBS class, query the app license and check the trial flag there. To start an in-app purchase you simply pick a product or SKU and run RequestPurchaseAsync method to show the GUI and later get a method called with results.

To learn more about how the Windows Store API works, please check Microsoft's documentation and our Xojo forum thread.

Please do not hesitate to contact us with questions and let us know if you need another method to do some task.

Software Breaking points

Recently a client complained that an old plugin wouldn't work with last version. We try to make our plugins as much as possible forward and backward compatible. You can use our latest plugins with FileMaker 7 or newer and Xojo 2006r4 and newer. But you probably use a newer version from this or last year, right?

While we do have clients successfully use 10 year old MBS Plugins with old license keys, that is usually an exception. In the last years we had a few breaking points:

For example applications had to move to 64-bit. FileMaker 14 and Xojo 2017r3 needed 64-bit code for plugins and everyone had to update their plugins. Currently MacOS with 32-bit is dead, most Linux distributions are now 64-bit only for servers and Microsoft fades out 32-bit versions of Windows.

We had a breaking point with Xojo 2016r2, which added new keywords to the language. As we used those keywords in the function and parameter names, the plugin had to be adjusted. Same for changes for API 2.0, GTK 3 or updated plugin SDKs, which forced users to upgrade. And when Xojo moves to WebKit 2, our HTMLViewer extensions may need newer plugins, too. See version table.

For FileMaker we had a breaking point with version 16 on macOS where Claris redid the web viewer control to use WebKit 2. For Windows this point will come later in 2021 (?) with the move to Chromium based Edge browser for the web viewer. All our WebView functions will need a rewrite then.

If you use anything related to the Internet, there were breaking points, too. All websites and services like SMTP for sending emails now need TLS v1.2. So all the older code, which did only SSL v3 or TLS 1.0/1.1 broke at some point. But we had TLS v1.2 support in for a lot of years, so that should not have hurt you. But you probably use TLS v1.2 exclusively now as anything older is not acceptable under GDPR.

The next breaking point is coming soon: For Macs the CPU will change to Apple Silicon, an ARM64 based architecture. That means once again all developers and users will have to upgrade to current versions of the software to benefit from the new computers they buy.

The conclusion?
Only if you stay current and keep licenses up to date, you can enjoy the latest versions of the software with the latest features on a moving target. And all the software you use need active development with someone taking care. Which usually requires you to keep funding them with regularly paying for updates or getting a subscription. Our plugins are not different in this regard.

If your license lapsed and you are not eligible for update pricing, maybe you want to get the license in November with Black Friday promotion.

PS: In Germany we have a temporary VAT rate change this year and some people had to come back to us to help change the software for this.

MBS Xojo Plugins, version 20.4pr4

New in this prerelease of the 20.4 plugins:
  • Added WindowsStoreContextMBS and related classes for Windows Store.
  • Split MBS Xojo Win Plugin and created new WinFrameworks plugin.
  • Added cameraDeviceDidEnableAccessRestriction and cameraDeviceDidRemoveAccessRestriction events to ImageCaptureEventsMBS class.
  • Updated SQLite to version 3.33.0. This includes decimal extension now.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

ChartDirector and DynaPDF for Apple Silicon

We built already the MBS Xojo ChartDirector Plugin and the MBS Xojo DynaPDF Plugin for Apple Silicon with the new Mac ARM-64bit target. All customers with a valid license at point of release should be able to enjoy the updated plugins once Xojo is released with Apple Silicon support itself.

ChartDirector is our solution for Xojo to create professional charts:
  • 29 types of charts including gantt, box-wisker and 3D charts
  • Per developer royalty free license for macOS, Windows and Linux
  • Full Unicode support
  • No external DLLs
  • One year of free updates
  • Create vector graphics as PDF and SVG files.
  • Export chart as PNG, JPEG, GIF, WMP and BMP.
  • Track cursor movements with a dynamic layer.
  • Use custom fonts.
Included in OmegaBundle 2020, so grab your copy there.

MBS Xojo Plugins, version 20.4pr3

New in this prerelease of the 20.4 plugins:
  • Added support to WinDataObjectMBS class to receive email attachments with email messages from Outlook.
  • Updated ChartDirector for Visual Studio 2019.
  • Updated GraphicsMagick library to version 1.3.35.
  • Fixed bug in error handling for ApplyOptions in PNGReaderMBS class.
  • Updated bzip2 library to version 1.0.8.
  • Updated pcre library to version 8.44.
  • Updated jpeg library to version 9d.
  • Updated jpeg-turbo library to version 2.0.5.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Virtuelles Deutsches Xojo Treffen

Im Xojo Forum organisiert Tomas Jakobs ein virtuelles Xojo Treffen.

Siehe Blog Post

Ein erster Termin steht fest: Freitag Abend, 07.08.2020, 18 Uhr CET

Vielleicht hat ja der ein oder andere Deutschsprachige Xojo Anwender Lust mit zu machen?
Bitte vorher gerne im Forum vorbeischauen für die aktuelle URL und falls sich der Termin verschiebt.

Die Teilnahme läuft via Jitsi und Sie können bequem per Browser teilnehmen.

MBS Xojo Plugins, version 20.4pr2

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

Moving to Visual Studio 2019

For years we build the DLLs for Windows with Visual Studio 2008 for our plugins. The reason we didn't upgrade for a long time was Windows XP. But now we can skip that behind and move to a newer Visual Studio version. Now the minimum is Windows 7 and we relay on the universal runtime. That is a newer version of the Visual Studio Runtime since Visual Studio 2015, which is automatically installed on Windows 10 and used by FileMaker Pro and Xojo.
See Windows App Requirements in Xojo blog and Windows Universal Runtime in Xojo developer guide.

If Windows update didn't install it for you, you can install it manually. The installers are included with the FileMaker or Xojo download, but you can also load it on the Microsoft website as redistributable installers.

By switching from a 10 year old compiler to current one, we gain a lot of new features, so we hope to extend our plugins in the next months with a couple of new Windows based features.

There is a little new feature in Visual Studio 2019, which reduces the space needed for the metadata used for exception handling. But that causes an extra dependency to VCRuntime140_1.dll, which is new since 2019. But as that DLL may be missing on client computer, we disable this feature. This removes the dependency and allows us to relay on the DLLs you already need to have. If FileMaker Pro or your Xojo application runs, the plugin should also load just fine.

For developers the dependency is for __CxxFrameHandler4 function in VCRuntime140_1.dll. You can disable it by using -d2FH4- as a compiler option and -d2:-FH4- for linker option. Also it looks like you have to not use std::nothrow as that also depends on that DLL.

The important thing: Please try one of the pre-releases soon and let us know if you see anything not working. We'll try ourselves 100s of example projects, but you can help to try a few more things.

PS: The MBS Xojo XMP Plugin may have the VCRuntime140_1.dll dependency as we can't build it without currently.
The biggest plugin in space...

Archives

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