In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 24.4.
ZXing
We had zxing classes in our plugins to recognize barcodes for many years. The older zxing library we used got outdated, but there is a successor. The zxing library got branched and we can use the newer versions with a different interface to make new classes and a module for Xojo. Today we are pleased to introduce the three new classes ZXingReaderOptionsMBS, ZXingReaderResultMBS and ZxingRuntimeExceptionMBS, as well as the module ZxingBarcodeMBS.
With this module 18 different types of barcodes including EAN, UPC and QRCodes can be read. We can pass the options as a ZXingReaderOptionsMBS instance in the call. We then receive an instance of the ZXingReaderResultMBS class as a result. This provides us with the required information about the barcode. If there are any exceptions, the ZxingRuntimeExceptionMBS class can help us.
Dim result As ZXingReaderResultMBS = ZxingBarcodeMBS.ReadBarcode(pic, options)
MessageBox result.Text
If you would like more information on this topic, please have a look at our blog article Read barcodes with newer zxing classes
(more)
New in this prerelease of the 24.5 plugins:
- Added WillPopUp, WillDismiss, SelectionIsChanging and SelectionDidChange events to NSComboBoxControlMBS control.
- Updated DynaPDF to version 4.0.94.265.
- Added GetTextBBox and GetAnnotColor functions to DynaPDFMBS class.
- Fixed an edge case with swiss keyboard layout for PressKey function in RemoteControlMBS module and the virtual key lookup.
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.
This Release Includes:
- Preemptive Threading
- Android tablet support
- Web supports adding CSS classes to controls
- Code Editor improvements: Row highlighting, command bar button for Standardize Format, and Syntax Help area size control
- Web now uses Bootstrap v5.3.3 and Bootstrap Icons v1.11.3
- macOS Popovers can be resized
- Windows HTMLViewer can now access camera and microphone
- iOS Picture can now access EXIF metadata
- Android improved Declare support
- Android RegEx classes
The complete list of improvements can be found in the Release Notes. Download here
MBS Plugins 24.3 and later work fine with Xojo 2024r3.
New in this prerelease of the 24.5 plugins:
- Fixed crash with running Python on Windows.
- Updated DynaPDF to version 4.0.93.262.
- Updated CURL to version 8.10.1.
- Added GetAnnotTextAlign function to DynaPDFMBS class.
- Updated to libxml2 version 2.13.4.
- Updated to libxslt version 1.1.42.
- Updated OpenSSL to version 3.3.2.
- Note: SSLv3 is disabled now.
- Removed outdated CKFetchNotificationChangesOperationMBS, CKModifyBadgeOperationMBS and CKMarkNotificationsReadOperationMBS classes.
- Updated to Xcode 16.0.
- Updated jpeg library to version 9.6.
- Using REALCopyStringCFString on iOS to quicker get CFString from Xojo String.
- Fixed CURLSMultiMBS class, broken in 24.4.
- Added scroll methods for NSViewMBS class.
- Added sendAction method for NSControlMBS class.
- Added more properties for ArchiveEntryMBS class.
- Updated libarchive to version 3.7.6.
- Updated discount library to version 2.2.7d.
- Improved exception handling for ReSVGMBS class.
- Updated unicode tables for removing accents for RemoveAccentsMBS function.
- Added abortEditing method to NSControlMBS 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.
For years we had XLST 1.0 and XQuery in the plugins using open source libraries. We could add the Saxon processor library for XLST, XQuery and XML Schema functionality. But that library has a cost as a commercial library, so making a plugin would only work if we have enough people taking it. We are collecting a list of developers interested in this to know whether it is feasible to do this.
(more)
Sometimes you may work on a project for macOS where it would be useful to know the location of the computer. You can use CoreLocation classes in MBS Xojo Plugins to query the location, but maybe it is not available, so lets check status.
We can ask locationServicesAvailable to check whether the API is available and use locationServicesEnabled to check whether it is enabled. Nowadays most Macs have location enabled, but sometimes in a cooperate environment, it may be turned off. If turned off, we can stop bothering asking the user.
Sub Init()
If Not MyLocationManager.locationServicesAvailable Then
MsgBox "Location Services are not available."
end if
if not MyLocationManager.locationServicesEnabled then
MsgBox "Location Services are not enabled."
end if
End
(more)
Nickenich, Germany - (September 17th, 2024) -- Monkeybread Software today is pleased to announce MBS Xojo Plugins 24.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 82,000 documented features, and the versatile plugins have gained more new functions:
Use the ZxingBarcodeMBS module with the functions there to read barcodes from images. We support 18 different types of barcodes including EAN, UPC and QRCodes.
We improved our Linux support by using newer compilers for all 4 Linux targets: 32- and 64-bit on ARM or x86 architecture. This enables 32-bit Linux support for newer parts of our plugins. You can use JSONMBS class, Phidget classes, LibUSBTransferMBS class and XL classes there.
Use Handoff to continue tasks on your other devices with macOS or iOS. The NSUserActivityMBS class helps you to implement this in your Xojo project and pass the current state from one device to the other device.
If you use CURL to retrieve emails from your IMAP server, please use the DecodeIMAPFolderName function to decode folder names from UTF-7 encoding. You can specify not just the minimum required TLS version, but also the maximum and we have new constants for these. We improved CURLSMultiMBS class to let you better reuse CURL objects.
Showing a statusitem in the Mac menubar can be done with our NSStatusItemMBS class. Use the new DidMove and DidResize events to notice if the statusitem moved. The DidChangeOcclusionState event tells you if the statusitem got hidden when the screen resolution is too low to show all statusitems.
With DynaPDF you can query the encryption state of the file with the GetInEncryptionInfo function and the DynaPDFEncryptInfoMBS class. The TestPassword function and verify whether a password is correct.
We improved the MongoDB classes with better trace logging. The MongoCursorMBS class can now provide all records as one big JSON string.
The TidyDocumentMBS class got a Tidy() function to make the usage easier and tidy up XML and HTML with a function call. You can list all option names with the OptionNames function.
The NetSNMPMBS class got new properties for SNMPv3 support, the NSViewMBS class got a hitTest() function to find a view in the hierachie based on screen coordinates and in SceneKit you can specify shader modifiers with new properties in SCNMaterialMBS and SCNGeometryMBS classes.
Finally we updated CURL to version 8.10.0, DynaPDF to 4.0.92.261, LibXL to 4.4.0, openssl to 3.1.6, SQLAPI to 5.3.4 with DuckDB 1.0 support, SQLite to 3.46.1 and Tidy library to version 5.8.
See release notes for a complete list of changes.
In general we recommend you use a recent Windows version and a recent Linux distribution, so you have all the security fixes. But sometimes we get asked about support of older versions.
We tried the upcoming 24.4 plugins on Windows 7, Windows 8 and Ubuntu 18 to verify what works. Here are the results:
(more)
Wer hat Interesse an einem Xojo Entwicklertreffen im September in Wien?
Einfach in gemütlicher Runde treffen in einem netten Restaurant und beim Abendessen was über Xojo reden. Vielleicht habt ihr ja auch Fragen und Probleme, wo ich helfen kann?
Zeit wäre ca. 18 bis 21 Uhr, so dass man auch später kommen oder früher gehen kann.
Termin:
23., 24. oder 26. September Termin Umfrage
Bei Interesse bitte bei uns melden.
Falls sonst noch Bedarf an Schulung, vor Ort Entwicklung oder FileMaker/Xojo Hilfe besteht, bitte wegen Terminfindung bald melden.
We had zxing classes in our plugins to recognize barcodes for many years. The older zxing library we used got outdated, but there is a successor. The zxing library got branched and we can use the newer versions with a different interface to make new classes and a module for Xojo:
The new module has two methods to take a picture and find barcodes:
(more)
New in this prerelease of the 24.4 plugins:
- Fixed problem with ReadBarcodes function in ZxingBarcodeMBS module.
- Updated LibXL to version 4.4.0.
- Fixed thread naming to avoid renaming main thread.
- Updated SQLAPI to version 5.3.4 with DuckDB 1.0 support.
- Improved CURLSMultiMBS class to clear cancel flag for CURLSMBS objects.
- Fixed NSFileCoordinatorMBS constructor to accept nil parameter.
- Added DidMove and DidResize events for NSStatusItemMBS class.
- Added DidChangeOcclusionState event for NSStatusItemMBS class to detect if your item is not shown.
- Changed captureStillImageAsynchronouslyCompleted event in AVFoundationMBS class, so it prepares CMSampleBufferMBS with Picture when set PrepareCIImage, PrepareNSImage and PrepareJPEGData is set in AVCaptureVideoDataOutputMBS class.
- Added shaderModifiers and handle properties for SCNMaterialMBS class.
- Added shaderModifiers for SCNGeometryMBS class.
- Updated CURL to version 8.10.0.
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.
Anyone still needs TLS 1.0 and 1.1 when working with MBS Plugins?
OpenSSL plans to disable them by default. We should do the same.
Everyone moved to TLS 1.2 and 1.3 as far as we know, so nobody should need the older one. The version 1.2 was published in 2008 and most browser already removed support for the older ones.
The older versions had weak ciphers and digest algorithms which shouldn't be used anymore. It's too easy to attack such connections and be the man in the middle, who could decipher the content.
Let us know if you still need older versions. Otherwise they will get disabled in future plugins, probably next year.
In the realm of cross-platform development, handling file access consistently across different operating systems can be a challenging task. For Xojo developers working on macOS or iOS, NSFileCoordinatorMBS and NSFilePresenterMBS from the Monkeybread Software’s Xojo plugins offer a powerful way to manage file access while avoiding conflicts with iCloud. In this blog post, we’ll delve into a practical example of using these classes in a Xojo project.
Introduction to NSFileCoordinatorMBS and NSFilePresenterMBS
Before we dive into the code, let’s briefly understand what NSFileCoordinatorMBS and NSFilePresenterMBS do:
- NSFileCoordinatorMBS: This class helps in coordinating access to files across different processes. It ensures that multiple processes can read from or write to a file without interfering with each other, thus avoiding file access conflicts.
- NSFilePresenterMBS: This class works in tandem with NSFileCoordinatorMBS and represents a file or directory that presents its state to the file coordinator. It allows your app to be notified of changes to the file or directory it is coordinating. We won’t really use this class today.
Example Scenario
Let’s walk through a simple Xojo application example where a user selects a file, and the application reads its contents. We will use NSFileCoordinatorMBS and NSFilePresenterMBS to manage file access on macOS or iOS while skipping these steps on Windows and Linux.
(more)
The September/October (22.5) issue of
xDev Magazine is now available. Here's a quick preview of what's inside:
Xojo and MQTT by Tim Dietrich
MQTT is a low-resource messaging protocol that lets devices communicate with each other. It's ideal in scenarios where a device might not have a lot of power or connectivity. Tim explains how to use this with your own Xojo apps.
Balancing Act (Raspberry Pi Part 9) by Eugene Dakin
If you've ever wanted to use your Raspberry Pi to detect tilt and other movements, Eugene is here showing how to connect a gyroscopic sensor and read the results with Xojo.
Invaders from Space! by Marc Zeedar
In this fun summer project, Marc creates a version of the classic Space Invaders game in Xojo. You'll learn how to do animation, explosions, collision detection, and other aspects of game play. Use it as inspiration for your own retro games!
Design Patterns 6 -- Supporting Undo by Marc Zeedar
If you thought supporting undo in your app was difficult, it's because you weren't using the Command design pattern. Marc shows how it makes undo easy!
Plus: Topics such as how to use ChatGPT 4o-mini to correct your grammar, using overlays, retro gaming with Xojo, an interview with Kem Tekinay, and more!
About 17 years ago we started the development of our
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.
New in this prerelease of the 24.4 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.
New in this prerelease of the 24.4 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.
NICKENICH, Germany (August 8th, 2024) -- Monkeybread Software releases version 1.7 of the
MBS SQLite Extension.
The MBS SQLite Extension is a multifunctional extension to any SQLite powered application.
Our SQLite Extension supports Mac OS, Windows and Linux. You can use it
- in MBS SQL Plugin with SQLite,
- in Cube SQL 4.0 and newer,
- in Studio Stable Database Server 2.0 and newer,
- in Xojo with the SQLiteDatabase class (needs LoadExtensions property set to true),
- in Real Studio with the REALSQLDatabase class,
- with SQLiteManager
- or any other SQLite application using load_extension.
New in Version 1.7:
- Changed EncodeHex, DecodeHex and RemoveAccents functions to pass through NULL values.
- Fixed problem in EncodeHexMBS and DecodeHexMBS returning error.
- Upgraded Linux builds. Now 32+64 and Intel+ARM versions available.
(more)
We recorded the presentations at the MBS Xojo Conference in April 2024 and here is the last video with Geoff Perlman talking about DBKit:
We got a bonus session where Geoff Perlman, CEO of Xojo Inc, talks about DBKit and how it is built and answers questions.
Watch on YouTube. All videos go into the playlist.