MBS Xojo Conference
6/7th September 2018, Munich
Our Blog, Filemaker only, Xojo only, Archive (older)

Follow us on Twitter, Xing, LinkedIn or Facebook.

MBS Xojo Plugins, version 18.4pr3


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

Line Wrap for Textarea in Xojo Mac applications


Today we have a method for you to turn on/off line wrapping in a Textarea control in a Xojo Mac application by using NSTextContainerMBS and NSScrollViewMBS classes with NSTextViewMBS class in our MBS Xojo MacCocoa Plugin:

Sub SetLineWrap(TextView as NSTextViewMBS, isWrap as Boolean) dim cLargeNum as Double = 10000000 dim myScrollView as NSScrollViewMBS = TextView.enclosingScrollView dim myTextContainer as NSTextContainerMBS = TextView.textContainer if not isWrap then myScrollView.hasHorizontalScroller = True myScrollView.autoresizingMask = TextView.NSViewHeightSizable+TextView.NSViewWidthSizable myTextContainer.containerSize = NSMakeSizeMBS(cLargeNum, cLargeNum) myTextContainer.widthTracksTextView = false TextView.setMaxSize(cLargeNum, cLargeNum) TextView.isHorizontallyResizable = True TextView.autoresizingMask = TextView.NSViewNotSizable else myScrollView.hasHorizontalScroller = False myScrollView.autoresizingMask = 0 myTextContainer.containerSize = NSMakeSizeMBS(myTextContainer.containerSize.Width, cLargeNum) myTextContainer.widthTracksTextView = True TextView.setMaxSize(TextView.visibleRect.Width, cLargeNum) TextView.isHorizontallyResizable = false TextView.autoresizingMask = TextView.NSViewHeightSizable+TextView.NSViewWidthSizable end if TextView.needsDisplay = True End Sub
As you see the main difference between both modes is whether the text content view resizes with the the textarea control. Normally it does, but to disable line wrap, we disable that and allow it to size to a huge size horizontally.

New MacBook Pro tested


We got a new MacBook Pro to test here with Core i9 CPU. This is really a mobile powerhouse and you can easily get all 12 cores busy with some real work. It looks like the MacBook Pro can do that load for half an hour easily. Yes, it may get warm above the keyboard, but it stays cold for the lower parts.

While battery may be advertised as running for 10 hours with normal usage like web surfing, well at the full work load, e.g. while compiling large project with Xcode, it may only run 70 minutes till the battery is empty. And that is to be expected as the 83.6 watt-hour battery can only deliver the 50 to 60 watts needs for the CPU for just over an hour.

GeekBench shows 4058 for Single-Core Score and 13845 for Multi-Core Score on the older MacBook Pro (15 inch, 2016) with Core i7 @2.9 GHz.

The new MacBook Pro 15 inch with Core i9 @2.9 GHz shows 5430 Single-Core Score and 23700 Multi-Core Score.

To compare, the 2 year newer model is 33% faster single-core and 70% faster multi-core.

We do not see any speed problems with the CPU and look forward to let this machine increase our productivity with more RAM and CPU power on the go than we ever had before.


AVCaptureVideoDataOutput improvements


We have the AVCaptureVideoDataOutputMBS Class in MBS Xojo AVFoundation Plugin. This class allows you to get live data from the camera as CMSampleBufferMBS objects. Now this was a bit slow as we did all the processing on the main thread. But for doing something useful in 30fps, you need time on the main thread for your Xojo app and we need to move as much work as possible of the heavy work away from the main thread.

So for next pre-release we cache properties in CVImageBufferMBS class. If you query NSImageMBS, JPEGData or CIImageMBS there, we will create them for you and remember the values, so in case you call the methods again, we have the values directly available and don't recreate them.

As conversion of the camera data (e.g. in YUV format) to RGB may be expensive, we want to do the conversion on the preemptive threads. So we added PrepareCIImage, PrepareJPEGData and PrepareNSImage properties to AVCaptureVideoDataOutputMBS class. If you set them, we will do the part of the work you requested on the preemptive thread and than pre-fill CMSampleBufferMBS and CVImageBufferMBS with the data, so query calls on the properties will be very quick.

This does not reduce the CPU time needed for the whole app, but moves more work to other threads, so you have more time on the main thread for your application doing something with the video.

If you plan to display video, please do not draw it yourself to a canvas, but use the AVCaptureVideoPreviewLayerMBS class or the AVCaptureViewControlMBS control (the control is 64-bit only).

If you know other places, where we could do processing on background thread and call event later on main thread with results, please let us know.

MBS Xojo Plugins, version 18.4pr2


New in this prerelease of the 18.4 plugins:
  • Added CancelAllCommands and Commands methods for SQLConnectionMBS and SQLDatabaseMBS clases.
  • Changed CURL functions to turn gzip decompression on by default and follow redirections.
  • Deprecated EnumHostFont functions in DynaPDFMBS in favor of newer GetSysFontInfos functions.
  • Changed DynaPDFMBS.Error event to not run in preemptive thread while MT method runs.
  • Fixed bug with DynaPDFMBS.GetSysFontInfo skipping one font.
  • Changed HotKeyMBS to not link to Carbon framework for use in Mac App Store.
  • Changed DynaPDFMBS.CreateTable to automatically load font Helvetica, so you have a font defined, if you don't set one yourself.
  • Updated DynaPDF to version 4.0.21.56.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Omegabundle 2018 for Xojo extended


Omegabundle for Xojo 2018 Developer Tools Bundle Announced; Save 89% on Top Tools
Due to request of some buyers who missed first deadline, we extend the offer for another two weeks.



You can buy it several times, e.g. one for each of your developers. Or buy multiple copies to get more than one OS for Valentina Server.

Read More

Xojo 2018 Release 2


A new release of Xojo is now available for download. With over 160 changes and improvements, this release focuses on optimizations and fixes, particularly for Windows and iOS.

Xojo 2018 Release 2 includes:
  • Continued Windows optimizations
  • iOS Improvements, such as:
    • iOSTable supports pull-to-refresh
    • iOSTable better supports varying row heights with iOSCustomTableCellviOSView supports large titles on iOS 11+
    • iOSHTMLViewer now uses WKWebView for better compatibility
  • Added SpecialFolder.Resources and GetResource methods
  • SQLiteDatabase updated to 3.23.1
  • HTMLViewer uses WebKit2 on Linux (if available) and latest Chromium Embedded Framework 3 on Windows (when WebKit is selected)
The complete list of improvements can be found in the release notes in the product download.

Due to the changes in the graphics class and the WebKit upgrade for Windows, please use latest MBS Plugins 18.3 or better 18.4 prerelease.

MBS Xojo Conference in Munich next month


Just one month till the start of our European MBS Xojo Conference 2018.

Over fifty developers from twelve countries are signed up including Xojo CEO Geoff Perlman and Xojo Evangelist Paul Lefebvre.

The schedule:

Sep 4thDayoptional sight seeing tour
Sep 4thEveningoptional get-together with everyone arriving early
Sep 5thDayoptional Xojo training (English)
Eveningoptional get-together with everyone arriving early
Sep 6th9:00 to 18:00First day of conference with keynotes
EveningDinner event in Augustiner Keller
Sep 7th9:00 to 18:00Second day of conference with more sessions
Eveningoptional dinner together



We all look forward to presentations about Android, the new Web Framework other news in the Xojo keynote.

Register here. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Maritim 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. If you like to hold a presentation, please contact us as soon as possible.

PS: OmegaBundle includes a transferable coupon to save 100 Euro on the registration fee.

MBS Xojo Plugins, version 18.4pr1


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

Omegabundle 2018 for Xojo ends 30th July


Omegabundle for Xojo 2018 Developer Tools Bundle Announced; Save 89% on Top Tools
The offer ends on Monday, 30th July 2018.



You can buy it several times, e.g. one for each of your developers. Or buy multiple copies to get more than one OS for Valentina Server.

Read More

Xojo Developer Meeting for Dallas


Due to the FileMaker DevCon, we will come to Grapevine, Texas in August.
So let's organize a Xojo developer meeting! Anyone interested?

We got 10 people on the list already for this meeting.

Meeting is 2nd August 2018 in Irving, Texas,
somewhere between Dallas and Fort Worth.

I'll try to be at 18 o'clock at the bar and later we move to table.

If you are interested in some private consulting or training, let me know and we can arrange an appointment.

MBS Xojo Plugins 18.3


Nickenich, Germany - (July 17th, 2018) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 18.3 for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo. MBS Xojo Plugins 18.3 have been updated and now includes over 2400 classes and 62000 documented features, and the versatile plugins have gained more new functions:

Our Bluetooth plugin got more features: We added Bluetooth classes for Mac and Windows to list and communicate with bluetooth devices. For Windows we have a WindowsBlueToothSocketMBS class to communicate with devices like the socket classes. We added Bluetooth LE functions for Windows in addition to existing CoreBluetooth functions for Bluetooth LE for MacOS.

For all fans of SSH, we got a new tunnel feature. You can use SSH2TunnelMBS class to start a SSH tunnel which forwards one TCP/IP connection on a background thread to another computer. This can even be used to forward for example MySQL or Postgres database connection over SSH and use the database classes to connect though the tunnel to the server. With SSH2SessionMBS.OpenDirectTCPIPChannel you can open a tunnel and feed it yourself with the class methods.

For SQL Plugin, we got a built-in CubeSQL library, so you can enable this library and you don't need to include CubeSQL DLL yourself. Our new InsertRecord and UpdateRecord functions for SQLDatabaseMBS and SQLConnectionMBS allow you to easier provide data with dictionary and have the plugin build the SQL command for you. For SQLite you can easier query used memory.

For CURL, we got a new CURLSMBS.SetupOAuth function for oAuth to use web services with Open Authentication easier. The function handles the signatures required for a query with oAuth and signs request with your given keys. We added a few new options to CURL functions and disallow username and passwords in URLs by default.

If you need to mount a network disk, please try the new MountMBS functions. If needed you can use MountPathMBS function to query path of a network disk. The UnmountMBS function can unmount the disk later. For MacOS you can use NetFSMountMBS function to mount disks asynchronously with events to not block user interface and allow the user to cancel.

On Windows you may have seen the COM dialog for message timeouts or delays: "Error: Server Busy. This action cannot be completed because the other program is busy". By calling InitMessageFilterMBS once on startup, you can disable this dialog. The plugin will tell COM modules to wait and not show a dialog, so your users won't see the dialog any more.

For 64-bit applications, you can use new AVCaptureViewControlMBS and AVPlayerViewControlMBS controls with AVFoundation to get Apple's standard playback and recording controls. We also improved AVAudioPlayerMBS class.

We got WindowsGraphicsInfoMBS constructors, improved NSMenuItemMBS class with debugger visible properties, new shared methods for GMColorMBS class, more methods for GZipFileMBS and improved error handling and more properties for TiffPictureMBS class.

Finally we updated CURL to version 7.61.0, DynaPDF to version 4.0.21.54, Rockey4NDMBS to use newer libraries, optipng to version 0.77, OpenSSL to version 1.1.0h and 1.0.2o, SQLite to version 3.24.0, SQLAPI to 4.3.3 and use the Xojo 2018r2 plugin SDK.

See release notes for a complete list of changes.

Upcoming Xcode changes


When a new version of MacOS and Xcode is coming, one of the first things to read are the release notes. As we support FileMaker and Xojo versions for 10+ years, we tend to have really old minimum system requirements.

As far as we were told, the new Xcode version doesn't build 32-bit code any more. Also Apple highly recommends us to move from libstdc++ to libc++, which implies a MacOS 10.9 minimum.

Now if we as developer of the MBS Plugins would move next year to MacOS 10.15, we would no longer be able to run 32-bit only applications ourselves. This includes all FileMaker versions before 14 and all Xojo versions before 2017r3.

With Xcode 10 on MacOS X 10.14 new plugins can only be 64-bit on MacOS. It may be possible to install Xcode 9 in parallel and keep it for building 32-bit for the next years like we did for years with old Xcode with PPC code.

So be warned that one of the next MBS Plugin releases may be 64-bit only on Mac. Older versions stay available, but if older Xcode 9 would no longer run, we would not be able to build 32-bit.

See also The status of 32-bit and 64-bit macOS apps on Xojo Blog. Xojo may itself only build 64-bit on Mac soon.

Xojo Developer Meeting for Dallas


Due to the FileMaker DevCon, we will come to Grapevine, Texas in August.
So let's organize a Xojo developer meeting! Anyone interested?

Currently we'd like to know if there is interest for a dinner meeting or more?

Please fill the survey.
Dates is around 1st to 11th August 2018 on one of the evenings.

For a dinner, we would just meet in a restaurant and chat. If we get a bigger group, maybe get a separate room and with a screen and projector, so you an show something if you like.

If you are interested in some private consulting or training, let me know and we can arrange an appointment.

PS: I'll also attend the FileMaker Dallas meeting on 3rd August 2018.

MBS Xojo Plugins, version 18.3pr7


New in this prerelease of the 18.3 plugins:
  • Updated DynaPDF to version 4.0.21.54.
  • Updated plugin SDK for 2018r2.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS Xojo Plugins, version 18.3pr6


New in this prerelease of the 18.3 plugins:
  • Fixed auto commit issue for CubeSQL.
  • Fixed RegistryValueMBS.asLong32 setter for 64-bit.
  • Fixed CURLSMBS.SetupOAuth to pass parameter names in given case, no longer does lowercase.
  • Added Name property for AVAudioPlayerMBS class.
  • Fixed issue with AVFoundationMBS where the plugin would return the right Xojo object for a AV* object.
  • Added kAUTH_Bearer, OptionDisableUserNameInURL, OptionProxyTLS13Ciphers and OptionTLS13Ciphers to CURLSMBS class.
  • Updated CURL to version 7.61.0.
  • Added MountPathMBS function.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS Xojo Conference in Munich starts in only eight weeks


Just eight weeks till the start of our European MBS Xojo Conference 2018.

Already fifty developers from twelve countries are signed up including Xojo CEO Geoff Perlman and Xojo Evangelist Paul Lefebvre. Reserve your ticket and your hotel room as soon as possible.
Our Hotel room contingent expires later this month, so please make sure you have a room booked.

The schedule:

Sep 4thDayoptional sight seeing tour
Sep 4thEveningoptional get-together with everyone arriving early
Sep 5thDayoptional Xojo training (English)
Sep 5thEveningoptional get-together with everyone arriving early
Sep 6th9:00 to 18:00First day of conference with keynotes
EveningDinner event in Augustiner Keller
Sep 7th9:00 to 18:00Second day of conference with more sessions
EveningOptional dinner together



We all look forward to presentations about Android, the new Web Framework other news in the Xojo keynote.

Register here. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Maritim 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. If you like to hold a presentation, please contact us as soon as possible.

PS: OmegaBundle includes a transferable coupon to save 100 Euro on the registration fee.

Omegabundle 2018 for Xojo ends soon


Omegabundle for Xojo 2018 Developer Tools Bundle Announced; Save 89% on Top Tools
The offer ends 30th July 2018.



Omegabundle for Xojo 2018 is a collection of 13 (122+ individual items!) 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,656.30. Omegabundle for Xojo 2018 costs $399.

Xojo is an award-winning, cross-platform development tool for the Desktop (OS X, 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. Download Xojo today and see for yourself.

Included Products

  • AprendeXojo GuancheMOS. The toolkit you need for application serialization and validation.
  • AprendeXojo HTML Colorizer for Xojo. Build Xojo apps that include colorized editing of HTML files.
  • GrafittiSuite Desktop Edition. 32 incredible user interface controls for Xojo that add value and improve the professional appeal of your Xojo applications.
  • MaxProg Ultimate eMail Toolkit. Includes the MaxBulk Mailer bulk emailer and e-mailmerge application, eMail Extractor, eMail Verifier and eMail Bounce Handler, with a single license that works on both macOS and Windows.
  • Monkeybread Chart Director. Add interactive charts and graphs to your Xojo applications.
  • Monkeybread Complete Plugins. 60+ plugins that extend Xojo with capabilities you want and need to build professional, native OS applications
  • Monkeybread Software DynaPDF Starter. Create, import and modify PDF files on Mac, Windows, Linux
  • xDev Library. ebook series of books and premium articles written by veteran Xojo developers.
  • Paradigma Software Valentina Studio Pro. Ultimate reports designer, database administration and forms creation tool that runs on all three operating systems - Windows, Mac OS X, Linux
  • Paradigma Software ValentinaDB ADK for Xojo. Embed the ultra-fast, object-relational Valentina database into your applications and deploy royalty free - Windows, Mac OS X, Linux, including Raspberry PI!
  • Paradigma Software Valentina Reports ADK for Xojo. Generate visually rich reports as graphics, web pages or PDF from your Xojo applications on Windows, Mac OS X, Linux including Raspberry PI!
  • Paradigma Software Valentina Server Unlimited. 3-in-1 Reports Server along with two database servers: one built on object-relational Valentina Database and the other on SQLite. Report serving works with MySQL, PostgreSQL, MS SQL Server and the included Valentina and SQLite servers
  • xDev Magazine. 12 month subscription to xDev Magazine + some back issues + PRINTED volume, the professional's magazine for developing with Xojo with topical articles by professional Xojo developers

You can order Omegabundle for Xojo 2018 from the Omegabundle website. Please allow up to three business days for all components to be supplied by participating vendors.

As a bonus, you are also eligible for a discount coupon towards the MBS Xojo Conference in Munich, Germany on September 6th and 7th of 2018. Purchasers will receive details of the discount which amounts to 100 Euro + VAT discount (about $135 USD). (more)

MBS Xojo Plugins, version 18.3pr5


New in this prerelease of the 18.3 plugins:
  • Updated internal graphics functions for Xojo 2018r2.
  • Fixed Cocoa target for OverlayMBS to not use NSWindowStyleMaskNonactivatingPanel which causes a warning from AppKit.
  • Added InsertRecord and UpdateRecord methods to SQLDatabaseMBS class.
  • Added UpdateRecord method to SQLConnectionMBS class.
  • Added shared memory methods to FileMappingMBS class.
  • Added new WindowsGraphicsInfoMBS constructors which uses main screen, window or control.
  • Changed DynaPDFMBS.ImportPDFFile to close open page before importing to avoid error.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

New SQL Insert and Update functions for our Xojo Plugin


Writing prepared statements to update fields in a database or to make an insert can be challenge for some of our users. So we got an easier way for most inserts/updates, which may help you:

InsertRecord(TableName as String, Record as Dictionary)
UpdateRecord(TableName as String, Record as Dictionary, Keys as Dictionary)

Those functions are available both on SQLDatabaseMBS and SQLConnectionMBS classes. They allow you to pass table name and field values as dictionaries. The keys in the dictionaries must of course match the names of the database fields exactly. We create the SQL statement for you and run it with the given values bound to the parameters. For the update statement, you provide the primary keys in a dictionary to identify the records to update.

Especially for the primary keys, the pair syntax is quite useful: new dictionary("ID":2). This means you create a new dictionary by passing a pair with key and value to be inserted in the new dictionary.

Same code may look like this:

dim db as SQLDatabaseMBS // your database connection
dim d as new Dictionary

d.Value(kFieldPersonFirstName) = FirstName.text
d.Value(kFieldPersonLastName) = LastName.text

db.UpdateRecord(kTablePerson, d, new dictionary("ID":2))

if db.Error then
    MsgBox db.ErrorMessage
end if

As always, it's useful to put names of tables and fields into constants, so you may not type them incorrectly and the compiler catches mistyped constant names.

Older blog entries:

2018-07-04 xDev Magazine Issue 16.4 Issue
2018-06-29 Twelve countries represented at our Xojo Conference
2018-06-26 MBS Xojo Plugins, version 18.3pr4
2018-06-25 Bluetooth for Xojo
2018-06-24 App is not optimized for your Mac
2018-06-23 Eleven countries represented at our Xojo Conference
2018-06-22 Omegabundle 2018 for Xojo
2018-06-21 MBS Xojo Plugins, version 18.3pr3
2018-06-20 MBS Stammtisch in Hamburg
2018-06-20 SSH tunnel in Xojo
2018-06-19 Ask the Experts at MBS Xojo Conference in Munich
2018-06-18 Putting an end to the Server Busy Dialog in Xojo and FileMaker
2018-06-18 MBS Xojo Plugins, version 18.3pr2
2018-06-15 Crossplatform connection to Microsoft SQL Server in Xojo
2018-06-13 Plugin wishes for macOS 10.14 and iOS 12
2018-06-09 Disable tab panel item in Xojo
2018-06-06 Last early bird tickets for MBS Xojo Conference in Munich
2018-06-05 Plugin wishes for macOS 10.14 and iOS 12?
2018-06-04 Xojo's sixth birthday
2018-06-04 MBS Xojo Plugins, version 18.3pr1

Archives

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