
As I spend the last week a lot of time on custom plugins, I'd like to let you know what we offer there:
- Wrap a static library or interface a DLL
- Wrap some C/C++/Objective-C code you may want to use
- Proper memory handling with correct cleanup of allocated objects
- Exception handling for NSException, C++ Exception or setjmp and raising Xojo Exceptions.
- Proper thread handling with mutex and redirecting event calls to main thread.
- Checks in methods to avoid crashes and raise exception early
- Threaded functions for Xojo to perform work on preemptive thread.
- Matching class hierarchy for Xojo with subclasses
- Returning subclasses C++ object with correct subclass in Xojo
- Object cache to return always the same Xojo object for the same C++ object.
- Automatic conversion of Xojo objects to matching C++ objects, e.g. Dictionary to CFDictionary/NSDictionary.
- Automatic conversion with Xojo arrays to/from C arrays
- Using Xcode 10.3 for 64-bit MacOS
- Using Xcode 9.4 for 32-bit MacOS
- Using gcc in various versions for Linux in 32-bit and 64-bit for x86 as well as ARM 32-bit for Raspberry Pi and similar computers.
- Using Visual Studio 2008, 2010, 2012 or 2017 for Windows, all with 32 and 64bit. By default we use VS 2008 for compatibility down to Windows XP. But we can also use VS 2017 with universal runtime.
- Optionally support for older Xojo, Real Studio or REALbasic versions.
If you have a project requiring a custom Xojo Plugin, please get in touch.
Beside our big plugin collection for the public, we made several dozens of custom plugins over the years.

New in this prerelease of the 19.4 plugins:
- Improvements for next Xojo version.
- Added more methods to CVPixelBufferMBS to create them with data, copy data and use more pixel types.
- Changed SelectSQL method in SQLPreparedStatementMBS to return type RowSet and made it private.
- Updated ChartDirector to a newer version which loads fonts on MacOS Catalina.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
We got an updated
ChartDirector plugin to work with MacOS 10.15 Catalina and show fonts as usual.

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 Mac OS X, 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.
The fix will be included with next MBS Xojo Plugin prereleases.

Just two months left before our conference & training for Xojo starts. Order a conference ticket now for 100 Euro off and get a room at the conference hotel. A few spots are still available in August!
Monkeybread Software is pleased to announce the
European MBS Xojo Conference in metropolitan Cologne, Germany. We meet in the lovely Dorint Hotel in the center of Cologne. The hotel is in the city center and in walking distance to the main station. Beside our two conference days we have accompanying social programme with our dinner event and optional two training days. For the evenings we have casual get-together in the hotel bar or beer garden.
To give you an update, we have already over 50 attendees signed up from 15 countries:
🇩🇪, 🇬🇧, 🇳🇱, 🇫🇷, 🇨🇭, 🇺🇸, 🇬🇷, 🇸🇮, 🇦🇹, 🇮🇹, 🇺🇦, 🇪🇸, 🇯🇴, 🇧🇪, & 🇨🇦.
The schedule:
Oct 23rd: Xojo Training in English
Oct 24th: Conference, first day with dinner event
Oct 25th: Conference, second day
Oct 26th: Xojo Training in German
Registration is open. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Dorint Hotel as well as an accompanying social program.
Sessions are to be held in English. Our conference is conceived as a networking event for the Xojo community. The conference is an ideal opportunity for sharing your thoughts and your own development experience with fellow users and developers.
See also
conference website,
Things to do in Cologne beside our conference and
European Xojo Conference FAQ.

New in this prerelease of the 19.4 plugins:
- Improvements for next Xojo version.
- Notarized the disk image for MacOS Catalina.
- Patched ChartDirector to load fonts on MacOS Catalina.
- Fixed bug in GraphicsMagick font mapping with font names containing spaces (GMImage.Annotate function).
- Added HMAC function to SHA512MBS class and rewrote it for SHA256MBS, SHA1MBS and MD5MBS classes.
- Added exceptions to CipherMBS to report if de/encryption fails instead of silently return no or garbage data.
- Added authorization property for CBManagerMBS class.
- Added CopyFileMBS class for low level Mac file copy API.
- Updated to Xcode 10.3.
- Added PID parameter to CGEventTapMBS constructor to watch only a specific process.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
With MacOS 10.15 Catalina Apple includes some new classes for Speech Recognition. We started with a Xojo plugin to use the classes and do speech recognition:

We add this new SpeechRecognition classes for our plugin:
You can already load a file with
SFSpeechURLRecognitionRequestMBS class, initialize a
SFSpeechRecognizerMBS object for the designed language and run the request. The example above shows the results in a listbox for inspection.
Coming soon in a beta of
MBS Xojo Plugins to be used with a beta of MacOS Catalina. We hope to be ready in time for the fall release!

When you try to load a DLL on Windows via our plugins, you may get back an error message on failure.
Error 126: The specified module could not be found.
You passed an invalid path to the DLL or you tried to load a DLL and it refers to another DLL, which could not be found. For example several DLLs belong together and they should all be in same folder, so Windows can find them. Or a Visual Studio Runtime DLL is missing for the version of the C runtime needed by this DLL.
You can use
Dependency Walker application to figure out which DLL is missing.
Error 127: The specified procedure could not be found.
The DLL was loaded, but then an expected function was not found. This could happen if you load the wrong DLL, which doesn't have the functions at all. Or if you have an older DLL, which does not yet export the required function.
Error 193: This is not a valid Win32 application.
Either this is really not a DLL or you mixed 32 and 64bit platforms and got the wrong one. Please make sure you use 32-bit DLL for a 32-bit application and a 64-bit DLL for a 64-bit application.
Error 998: Invalid access to memory location.
The path passed may be invalid and cause a memory access error.
Error 1114: A dynamic link library (DLL) initialization routine failed.
The DLL got loaded, but the initialization routine returned an error message. This may happen with Visual C libraries, if you try to load more statically linked libraries, then you have handles available. Memory may be available, but some handles have a limited list and loading too many DLLs (over 500) can run into a limit.

We recently had a client asking how to connect to Oracle database with
MBS Xojo SQL Plugin. So first install
Instant Client. For that download it, unzip the folder and put it somewhere you like to have it, e.g. in a C:\Oracle folder. Next you need to add the folder to the PATH variable, so you go to My Computer -> Properties -> Advanced -> Environment Variables -> PATH and add in the list as first item the path to the folder with the instant client libraries, e.g. C:\Oracle\instantclient_19_3.
Now you can use
SQLDatabaseMBS or
SQLConnectionMBS classes to connect. You may need to specify the database connection string. As we use Oracle, it starts with "Oracle:", so
SQLDatabaseMBS knows which driver to use. Next you specify hostname with optional port and service name in format <hostname>[:<port>][/<service_name>]. Please also set option with kOptionLibraryOracle constant to the path pointing to the DLL file. You can either use SetFileOption with folder item, Option() with file path or just let it away and the plugin will look for oci.dll itself. Here some example code:
Dim db As New SQLDatabaseMBS
// where is the oci.dll library?
Dim fa As FolderItem = GetFolderItem("C:\Oracle\instantclient_19_3\oci.dll", FolderItem.PathTypeNative)
DB.SetFileOption(SQLConnectionMBS.kOptionLibraryOracle, fa)
DB.DatabaseName = "Oracle:" + "localhost:1521/XE"
DB.UserName = "zEPI"
DB.Password = "root"
if DB.Connect then
MsgBox "We are connected. Server Version: " + db.ServerVersionString
else
MsgBox db.ErrorMessage
end if
Please do not hesitate to contact us with your questions.

Once again Xojo Inc. sponsors an episode of the
Under the Radar podcast.
Originally pointed to by Paul Lefebvre's
tweet, I quickly subscribed as they talk about various topics for independent app developers and those episodes are very interesting. They face similar issues as myself and so I like to hear their solutions.
Thanks to David Smith and Marco Arment for their apps and the podcast.
Thanks to Xojo Inc. for supporting the shows.
Do you like this podcast? Or any other good podcasts not to miss?

Monkeybread Software today is proud to announce Combine PDFs 5.4, an update to their popular PDF merge and split tool for Mac OS. With a focus on ease-of-use, Combine PDFs is a lightweight utility which allows anyone to merge PDF files and images into a single PDF file. The user need only drag & drop files onto the program icon. The main window appears, allowing the user to set the order in which the files are joined.
Changes in Version 5.4:
- Requires MacOS 10.10 or newer.
- Upgraded to Xojo 2019r1 for dark mode support.
- Notarized.
Combine PDFs Website
Requires MacOS 10.10 or newer for 64-bit. Older 32-bit version stays available and still works very well.
This application is made with
Xojo 2019r1.

New in this prerelease of the 19.4 plugins:
- Improvements for next Xojo version.
- Changed Variant to NSObject conversion to make NSColor for Xojo colors.
- Enabled MimeTypeToFileExtensionMBS and FileExtensionToMimeTypeMBS for console apps.
- Added SelectSQL method to SQLPreparedStatementMBS class.
- Patched ReplaceObsoleteElements function in Tidy library to avoid endless recursion in ParseString method in TidyDocumentMBS class.
- Added Picture properties to zxingBinaryBitmapMBS and zxingLuminanceSourceMBS classes.
- Added CIImage function to CVPixelBufferMBS class.
- Added more text encodings for TextConvertMBS class: CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}, CP864, EUC−JISX0213, Shift_JISX0213, ISO−2022−JP−3, BIG5−2003, TDS565, ATARIST, RISCOS−LATIN1.
- Added Vision framework for MacOS 64-bit with 48 classes.
- Improved search for JavaVMMBS class to find jvm.dll on Windows.
- Added zxingByQuadrantReaderMBS, zxingGenericMultipleBarcodeReaderMBS and zxingMultipleBarcodeReaderMBS classes.
- Added NSColorSamplerMBS class.
- Modernized NSScreenMBS class with more real properties.
- Updated DynaPDF to version 4.0.30.90.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
For the next
MBS Xojo Plugins, we worked on including the Vision framework from Apple. Our new vision plugin part (in MacFrameworks) covers the whole framework with all 49 classes and one module for globals. We even include the new features coming with MacOS 10.15 Catalina release. All functions can be used asynchronously with delegates for the callbacks. The plugin makes sure those callbacks execute on main thread to avoid threading issues in Xojo.

The Vision framework performs face and face landmark detection, text detection, barcode recognition, image registration, and general feature tracking. Vision also allows the use of custom Core ML models for tasks like classification or object detection.
With Catalina you also get classification, text recognition, attention and object based saliency, animal and human detection.
You can read
Apple's documentation here.
Here our new classes:
A few examples are in the make, but please let us know what you'd like to see.
Looking for someone to hire?
Please visit the
Find a Developer website on Xojo.com to submit a job offer or a consultation request. Your job offer is forwarded to a list of Xojo developers, who may contact you for details and make an offer to help.
Looking for work?
If you are professionally working with Xojo as a development tool, you probably already have a Xojo Pro license. With that license comes access to a special forum section for
consulting leads, where the requests from the find a developer form above are posted as well as any direct inquires to Xojo's customer support.
An official Xojo Consultants list
We made recently the case in Feedback for an official Xojo consultants list. See
Feedback Case 55135. We see the benefits of the
FileMaker Business Alliance and would enjoy a similar program for Xojo to increase visibility of the thousands of Xojo developers out there. We tried ourselves to make such a list for Germany, but it needs to be integrated with the Xojo website and accounts.
For example it could be that there is a checkbox in the Xojo account to request being listed on a consulting list, just like the checkbox for the beta program. Xojo Inc. could ask you to provide details for a listing if they accept your wish. By making it dependent on having an active Pro license, they could make sure you can serve all customers as you can use all product features. It may be a good idea to ask for an example of your work to see if you are indeed doing development on a professional level. And if you quit Xojo and stop updating your license, you would automatically be delisted. Great way to avoid having outdated entries in the list.
If you check the
FBA requirements, you may see that beside the fee to pay and having a postal address, you need to be one year in business, show customer references and show a sample of custom app work. In the FBA program, you can improve your listing with taking the certification test, but that may be a different topic for Xojo.
Just one month left for the early bird offer to
XOJO.CONNECT event hosted by Xojo Inc.
Tickets are available for $799 USD till 15th September 2019.
It will be held March 25-27, 2020 in Nashville, TN at the
Sheraton Music City Hotel.
Registration is currently $200 off full price till 15th Sep 2019 ($799 instead of $999). Please sign up early to get the best deal.
Check out our
conference highlights video if you want to see what it's like - or ask one of the many attendees from the forum!
Looking for a conference this year? Join the
European Xojo Conference 2019 in Cologne, October 24-25th.
The CURL conference for 2020 is announced:
curl up 2020 will take place in Berlin, Germany in mid May.
When: May 9-10, 2020
Where: Berlin, Germany
Venue:
Co.up Community
Anyone interested in the
CURL project is welcome to join the conference!
For details, please check the
website.
Maybe we can arrange some developer meeting with our Xojo and FileMaker clients, too?

New in this prerelease of the 19.4 plugins:
- Improvements for next Xojo version.
- Implemented own FSRef/FSSpec conversion for Xojo 2019r2 to use older code paths, e.g. for our ResourceFork class for Mac 32-bit.
- Fixed a crash with DarwinGroupMBS when using UserName function with negative index and a crash with too small array allocated internally.
- Deprecated CarbonEventsScrapMBS, CarbonApplicationEventsMBS and CarbonWindowsEventsMBS classes.
- Fixed crash with nil folderItem passed to Read, Constructor or Ping methods in GMImageMBS class.
- Upgraded KindMBS method in FolderItem class to use newer API.
- Fixed problem with LaunchServicesFindApplicationForInfoMBS function.
- Deprecated ApplicationFileMBS and ApplicationCreatorCodeMBS in Application class.
- Duplicated some Application class extension to ConsoleApplication class.
- Fixed TextArea.RTFDataMBS declaration for console app.
- Changed to Application extensions for Xojo 2019r2.
- Fixed declaration for WinSendMessage in RemoteControlMBS module.
- Added more constants to NSAppearanceMBS class.
- Renamed BindedValues and BindedTypes properties in SQLPreparedStatements to BoundValues and BoundTypes.
- Fixed a problem with loading LDAP.framework on Mac for use in CURL.
- Added CACertFile property for LDAPMBS class.
- Rewrote VolumeSizeKBMBS and VolumeSizeMBS for FolderItem class to use newer APIs on MacOS.
- Added NativePath property to FolderItem for Real Studio.
- Fixed title property for NSSavePanelMBS to avoid NSException for empty string.
- Improved pretty formatting for JSON arrays for JSONMBS class.
- Updated DynaPDF to version 4.0.30.89.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Nickenich, Germany (August 6th, 2019) -- Monkeybread Software releases new versions of their Xojo Kits, powerful add-ons to Xojo with additional functionality provided as source code.
We offer six kits aiming to provide additional functionality for iOS projects in Xojo:
Addressbook,
Events,
Audio Player,
Encryption,
Network and
UDP Socket. Our desktop kits
Updater,
Bugreporter and
WebStarter provide valuable code to add to your projects, but may require additional plugins from us.
All Kits have been updated to make sure they work in Xojo 2019.
If you have a current license, bought within the last 12 months, you can use the updates for free.
Otherwise you can order licenses on our websites or in the
Xojo store as needed.
The webshop offers the iOS related kits in a discounted bundle named
iOS Kit Set.
(more)