Xojo Conferences
XDCMay2019MiamiUSA
MBSOct2019CologneDE
Our Blog, Filemaker only, Xojo only, Archive (older)

Follow us on Twitter, Xing, LinkedIn or Facebook.

MBS Xojo Plugins, version 19.0pr8


New in this prerelease of the 19.0 plugins:
  • Changed ICDeviceBrowserMBS destructor to call stop for you automatically.
  • Added nil check of saveRequest parameter for CNContactStoreMBS.executeSaveRequest function.
  • Manually applied CURL fix: vauth/oauth2: Fix OAUTHBEARER token generation #3377 (for Mac)
  • Fixed bug with inline email text decoding and an extra space character sometimes.
  • Updated to DynaPDF to version 4.0.25.69.
  • Fixed bug in FileListMBS, introduced in pr6.
  • Removed clock_gettime symbol for GraphicsMagick as that is not available before MacOS 10.11, bug introduced in pr4.
  • Fixed bug in NewCFObjectMBSFromXML introduced in earlier pr.
  • Added more clases for MapKit, so the framework is now completely covered in the plugin.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

CURL change for email download via IMAP


Last year there was a little change in the CURL library for handling email downloads via IMAP. We used to download the list of email, get the index in the email box and download the email by passing the index with UID parameter in the URL. The first email in the mailbox is 1. If you delete email with ID 1, than the second email moves down to become the new first email.

Now since CURL version 7.62.0 from October, the default fetch is using the IMAP UID command. That means the IMAP server gives every email in the mailbox an unique ID which counts up for every new email coming in. The UID does not change if emails are moved or deleted, so we can address emails on the server much better. Now the new parameter is named UID and the old UID parameter is renamed MAILINDEX.

As you may guess, the old and new UID are not the name values, so existing applications with newer plugin fail to load emails. You can fix your script by changing UID to MAILINDEX. MBS FileMaker Plugin in version 9.0 for FileMaker and MBS Xojo CURL Plugin version 19.0 for Xojo have a mitigation to switch to MAILINDEX if the query via UID failed.

For newer projects we recommend to do the lookup of the emails in the mailbox with UID FETCH and get the emails with unique IDs. Next we recommend to use BODY.PEEK instead of just BODY to avoid emails being marked as read automatically. When switching to BODY.PEEK you can remove workarounds which removed the seen flag. And you can include options like INTERNALDATE for the date of the email and/or RFC822.SIZE for the email size:

UID FETCH 1:* (FLAGS INTERNALDATE RFC822.SIZE BODY.PEEK[HEADER.FIELDS (Message-Id DATE FROM SUBJECT TO SENDER REPLY-TO CC BCC)])

As you see we include a few headers fields in this sample query.
The result looks like this:

* 1 FETCH (UID 103 FLAGS (\Seen $junk) INTERNALDATE "06-Apr-2018 19:42:11 +0200" RFC822.SIZE 2091 BODY[HEADER.FIELDS (MESSAGE-ID DATE FROM SUBJECT TO SENDER REPLY-TO CC BCC)] {214}
From: Christian Schmitz
Subject: Hello World
Message-Id: <6F3B718F-8427-4EFB-B291-106A8ABFC1AA@monkeybreadsoftware.de>
Date: Fri, 6 Apr 2018 19:42:05 +0200
To: test@macsw.de

)

Now you can parse that easily. But for our FileMaker plugin we made a new function CURL.GetResultAsEMailList to parse the list and return as JSON. The JSON looks like this:

[{
    "Index":   1,
    "UID":   103,
    "Size":   2091,
    "InternalDate":   "06-Apr-2018 19:42:11 +0200",
    "URL":   "imap://imap.macsw.de/INBOX;UID=103",
    "Flags":   ["Seen"],
    "Subject":   "Hello World",
    "Message-Id":   "<6F3B718F-8427-4EFB-B291-106A8ABFC1AA@monkeybreadsoftware.de>",
    "Addresses":   [{
        "Type":   "from",
        "Email":   "testing@monkeybreadsoftware.de",
        "Name":   "Christian Schmitz"
      }, {
        "Type":   "to",
        "Email":   "test@macsw.de",
        "Name":   ""
      }],
    "Date":   "06.04.2018 09:42:05"
  }]

This JSON contains all the parsed values. We convert the date to the timestamp for FileMaker into local time zone. The subject lines and names are decoded if needed. For each email we include the URL to the email for easier download. Please try the new functions for UID fetch and let us know how you like them.

MapKit Framework for Xojo


After weeks of work, the new MapKit plugin for MacOS is done. We have all the features included and got a few example projects for you. One example shows the MapKit control, one to search for local items and one to get directions.

The classes include support for
  • Showing map with standard, hybrid or satellite.
  • Adding annotations like pins or lines
  • Adding overlays like colored areas.
  • Using customized renderes for overlays
  • Get directions for routes
  • Calculate expected time of arrival.
  • Format distances as localized text
  • Do local search query for finding items
  • Show suggestions for auto complete for local search
  • Control camera for fly over
  • Render snapshots of maps
  • Show user location
(more)

xDev 17.1 Issue


The January/February (17.1) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Xojo UK Meetup by Paula Roberts (and Paul Budd)
Recently a small group of Xojo developers decided to get together for an informal meetup to show off their apps and discuss problems and solutions.

iOS Success by Jérémie Leroy (and Marc Zeedar)
If you're having trouble getting your iOS app noticed, Jérémie has some great tips for you.

Beyond JSON by Tim Dietrich
Using JSON to retrieve data from a web app is great, but what if you want something else, such as a graphic? Tim creates a web app that serves barcodes.

Vague Errors by Marc Zeedar
Marc discusses the problems of unhelpful error messages from both the developer and user perspectives.

Building a data-list Controller by JC Cruz
Jose shows how to build a data-list controller.

PLUS: Threads, Hour of Code, Best of the Web, Xojo Dojo, Xojo 2018r4, and more!

European Xojo Conference Upgrades


The next European Xojo conference organized by Monkeybread Software is going to be a significant upgrade to previous conferences from us. An excellent hotel, a ballroom for us, two tracks and space for even more attendees.



We have booked a full ball room in Cologne which can be split into two rooms. The ball room can fit over 150 people so we have plenty of space, even if we split it. We ordered of course two projectors and microphones as well as speakers. The advantage of taking the whole ball room is that we can be there on our own. No other group will fight with us for the coffee breaks. In Munich were one of three groups and the break area was too small. So we had to schedule to take break when others couldn’t have a break. This is different for Cologne, where we will have our own space in front of the ballroom. In the foyer we have all day coffee, a tea station, snacks for the breaks as well as a refrigerator with cold soft drinks.

We hope to find speakers to fill the schedule and have two tracks in parallel. The big sessions like the keynotes will be in the full ballroom. But for smaller sessions we split and than we could for example get a database and a mobile track.

For the dinner on Thursday we got an excellent party location. The Höhnerstall is a two story event location with a fantastic view to the city center. We rented the place for our group, so we can enjoy ourselves. Buffet and an open bar will as well as the brewery tour will make a nice conference night. We expect a couple of you to bring partners and maybe even kids there, so please let us know how many you have for that night. (more)

MBS Xojo Plugins, version 19.0pr7


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

New ReplaceLineEndingsMBS function


For a client, we add a new ReplaceLineEndingsMBS function to the MBS Xojo Plugin.
It addresses two problems the built-in Xojo function has:
  • Performance: We can do the same job approximately 30% faster as far as we measured.
  • Yielding: If you process 100 MB blocks, a yield every few MB may help to keep the application responsive, especially if you use the function on a thread.
Our new function handles all combinations of CR, LF, CRLF and LFCR correctly and replaces them with the given replacement text. The operation is done in binary mode for 8 bit encodings or no text encoding. For UTF16/32, we first convert to UTF-8.

The new function will be available soon in the next prerelease. See also other functions like ReplaceNonPrintableCharactersMBS.

MBS Xojo Plugins, version 19.0pr6


New in this prerelease of the 19.0 plugins:
  • Added SortByFileName method to FileListMBS class.
  • Rewrote MapKit classes to use only Apple Map and get more features from it.
  • Fixed crash in SKProductsRequestMBS destructor.
  • Added XLCopyOptionsMBS class to specify copy options for MBS Xojo XL Plugin.
  • Removed helpbook functions: RegisterHelpBookMBS, LookupHelpBookAnchorMBS, GotoHelpBookPageMBS, GotoMainHelpBookTOCMBS and SearchHelpBookMBS.
  • Removed folderitem.GetFileAttributeMBS function.
  • Removed descriptorWithFSRef and FSRefValue from NSAppleEventDescriptorMBS in favor of FileURL methods.
  • Removed Application.IsBundleMBS function.
  • Upgraded UTTypeMBS.UTI to newer API.
  • Rewrote FileListMBS for Mac to get better speed on APFS.
  • Added CFDateMBS convert and constructor methods.
  • Changed conversion from CFDate to Xojo date and back to use current time zone instead of always UTC.
  • Changed 80 properties in GMImageMBS class to be debugger visible.
  • Added JasperLibVersion, TIFFLibVersion and ZLibVersion to GMImageMBS class.
  • Added autoOrient, extent, formatExpression, Quiet, repage and resize methods to GMImageMBS class.
  • Added ReadEXIF for PNGReaderMBS class.
  • Added SetEXIF for PNGWriterMBS class.
  • Added fillArea and limitPixels flags for GMGeometryMBS class.
  • Added addBoundaryTimeObserverForTime and addLoopTimeObserver methods to AVPlayerMBS class.
  • Added AVVideoCodecTypeAppleProRes422, AVVideoCodecTypeAppleProRes4444, AVVideoCodecTypeH264, AVVideoCodecTypeHEVC, and AVVideoCodecTypeJPEG functions to AVFoundationMBS class.
  • Updated GraphicsMagick library to version 1.3.31.
  • Updated iconv to version 1.15.
  • Updated regex library to version 8.42.
  • Updated png library to version 1.6.36.
  • Updated freetype to version 2.9.1.
  • Updated SQLAPI to version 4.2.4.
  • Fixed a bug in Oracle initialization for Linux for SQL Plugin.
  • Changed Linux compile to include function names for stack traces.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MapKit upgrade coming to Xojo


The older MapKit replacement framework we used to use is no longer supported and Google Maps now requires a developer key. But before changing the old framework, we decided to go with Apple Maps only.

So for next plugin version, we'll add more classes for MapKit.

Merry Christmas


Frohe Weihnachten und ein gutes neues Jahr!

Merry Christmas & Happy New Year

Joyeux Noël et Bonne Année

Buon Natale e Felice Anno Nuovo


Franziska, Sebastian, Michael, Monika & Christian Schmitz

Ten month til European MBS Xojo Conference 2019 in Cologne


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.

As date and location are set, we are now looking for interested speakers to join our conference. If you have an interesting topic, feel free to propose a session. We look for sessions to present applications made in Xojo, best practice, looking deeper on a Xojo features or presenting a product for Xojo developers.

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. The early bird offer available till 24th April is just 499 Euro plus VAT. For the first 20 people we offer tickets for just 399 Euro plus VAT. 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. If you like to hold a presentation, please contact us as soon as possible. Speaker receive discounted tickets.

More details on the conference website.

MBS Xojo Plugins, version 18.6pr5


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

SQLite Manager and Doctor updated


Not sure if you noticed, but the SQLiteManager app and the SQLiteDoctor app have been updated recently by SQLabs.

For editing SQLite database manually, SQLiteManager is my favorite tool. Supports also CubeSQL database server and encrypted databases. And SQLiteDoctor has been very useful for us once to rebuild a broken SQLite database. We than exported with SQLiteManager the newer records created since the last backup.



Both are updated for 64-bit with a couple of bug fixes and enhancements, including HiDPI support for Windows.

Arbed 1.8.11 updated for Xojo 2018r4


Thomas Tempelmann recently announced a new version of Arbed. As Xojo evolves over time and changes the file format, Arbed as to be updated to recognize any changes in the format. The new version knows about the most recent changes in Xojo 2018r4 for dark mode.

Every Xojo developer should have it in his tool chain and enjoy the features. It has many features and depending on your needs, you may decide which feature is worth the price. For myself i mostly use it to automatically convert my example projects to HTML files to include them in the documentation. In other cases Arbed helped to recover corrupted project files and to compare two versions of a project which have been modified independently without version tracking software. It is also useful to bundle a project with all required files if you need to send a project to a client.

Arbed is highly automatable and can be scripted. You can call it from command line in your shell scripts to do various actions in batch operations. If you need, you can use it to obfuscate strings (e.g. SQL queries) in your application or prepare it for localization. Anything automated which saves a few hours is worth the money.

Arbed is available on tempel.org for $29 or $89 USD.

European MBS Xojo Conference 2019 in Cologne


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.

As date and location are set, we are now looking for interested speakers to join our conference. If you have an interesting topic, feel free to propose a session. We look for sessions to present applications made in Xojo, best practice, looking deeper on a Xojo features or presenting a product for Xojo developers.

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. The early bird offer available till 24th April is just 499 Euro plus VAT. For the first 20 people we offer tickets for just 399 Euro plus VAT. 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. If you like to hold a presentation, please contact us as soon as possible. Speaker receive discounted tickets.

More details on the conference website.

MBS Xojo Plugins, version 18.6pr4


New in this prerelease of the 18.6 plugins:
  • Updated to SQLite version 3.26.0.
  • Added VLCMediaPlayerMBS.CopyCGImage to return the CGImageMBS object for current image.
  • Changed VLCMediaPlayerMBS.CopyPicture to always return picture.
  • Changed VLCMediaPlayerMBS.VideoSetCallback to always prepare for CGImage creation on MacOS and CGContext is now optional.
  • Updated VLCInstanceMBS to initialize properly.
  • Added Equals, FindValueInArray and FindValueInObjectArray methods to JSONMBS class.
  • Fixed problem with drawing OverlayMBS in 64-bit on MacOS 10.14 Mojave.
  • Changed behavior for CURLSMBS class to only write data in debug log file, if DebugWithData property is set.
  • Updated SQLAPI to version 4.2.4rc2.
  • Fixed problem with text encoding with Oracle databases for SQL Plugin.
  • Added new archive examples.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS Xojo Conference Survey Results


We got 70 people to answer the survey and only 10 said they won't come. So we may have 60 people to join the conference, but of course we hope for more like the 80 we got in Berlin.

Half the people don't care for the exact date, but the most popular week is 24/25th October 2019, so we focus on that week.

We asked whether people like a smaller cheaper city like Koblenz or prefer a bigger city like Cologne. Cologne won with many more votes and a few people say they really prefer Cologne for it's own airport. So we look for a nice place in Köln:



Cologne has a 2000 year history, a big cathedral to visit and climb up the towers, a Roman Germanic museum about the history and a few other nice things like a famous zoo to visit.

Some people are interested in training, so we'll offer training days again in German and English and both beginner and advanced levels. Ulrich would do beginners and I would do advanced.

We'll have dinner together for Thursday and reserve space at the bar for our group to meet and greet. We'll probably find a brewery and order some buffet for you for dinner.

For speakers, we already have over 10 volunteers. Once conference is announced, we hope speakers will submit a topic with description text and length estimate to us.

Depending on which hotel we pick, we may decide to split group into two rooms and get more sessions included, like making beginner vs. advanced track or may something like database vs. mobile.

As with the years before, we look into offering a substantial early bird discount, some free tickets for young people and to bring over some Xojo staff from the USA/Canada.

LiteSync and Xojo


The company GENSIS SISTEMAS LTDA provides a variation of the SQLite library with a sync possibility. Developers can use their SQLite library litesync replacement to add a sync to their application. As a client asked whether it works in Xojo with MBS Xojo SQL Plugin and yes, it works.

For MacOS, you need the library files libbinn.1.dylib, libuv.1.dylib and liblitesync.0.dylib. Than you change the library and dependencies via Terminal like this:

install_name_tool -change libbinn.1.dylib @rpath/libbinn.1.dylib liblitesync.0.dylib
install_name_tool -change /usr/local/lib/libuv.1.dylib @rpath/libuv.1.dylib liblitesync.0.dylib
install_name_tool -id @rpath/liblitesync.0.dylib liblitesync.0.dylib
install_name_tool -id @rpath/libuv.1.dylib libuv.1.dylib
install_name_tool -id @rpath/libbinn.1.dylib libbinn.1.dylib

Next you can load them just like other SQLite library with our plugin classes SQLDatabaseMBS or SQLConnectionMBS. (more)

Three weeks till year's end


The year 2018 will end in less than three weeks. Do you need some more licenses?
  • You can order licenses, which end in 2019 or later and have delivery plus payment done in 2018.
  • And of course you can order updates for several years in advance for all your MBS products.
  • As all licenses are per developer, you should check if you got a new developer in your team this year and adjust licenses to match team size.
  • If you need a Xojo license (new or update), we can always check whether a bundle with Xojo offers an advantage for you.
  • For FileMaker please check if you have enough license for the number of seats or servers you have in use.
Especially if you run on a budget and you want to spend some money in the old year, you can buy updates for several years in advance.

MBS Xojo Plugins, version 18.6pr3


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

Older blog entries:

2018-12-11 Xojo 2018 Release 4 Now Available
2018-12-10 Upcoming changes for 2019
2018-12-05 MBS Xojo Plugins, version 18.6pr2
2018-12-04 Fixing broken text encodings in Xojo
2018-12-04 XDC 2019 Session List
2018-12-03 Removing 32-bit Carbon GUI classes
2018-12-02 MBS Xojo Plugins, version 18.6pr1
2018-12-01 Birthday of our video page
2018-11-30 Links from documentation to blog entries
2018-11-28 Cleanup your C code for MacOS and remove FSCreateFileUnicode
2018-11-27 MonkeyBread Software Releases the MBS Xojo Plugins in version 18.5
2018-11-24 Passing an UUID to each app download
2018-11-24 MBS Xojo Plugins, version 18.5pr9
2018-11-23 Xojo Black Friday Offers
2018-11-22 Survey about European MBS Xojo Conferences 2019
2018-11-22 MBS Xojo Plugins, version 18.5pr8
2018-11-21 Xojo Black Friday Sale!
2018-11-19 Windows on ARM in 64-bit
2018-11-18 MBS Xojo Training
2018-11-17 SetApp for Xojo Apps

Archives

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