Save 20% on new Xojo licenses, renewals and upgrades through Monday! Visit the Xojo Store for pricing, no coupon required.
Third Party Products
Check out our third party store for great Xojo add-ons, all 20% off this weekend only!
XDC Videos Now Available!
The XDC 2019 videos are now available. Also, we have new pricing for the 2018 videos. Shop now!
MBS Xojo Conference 2019 Passes 20% Off
The MBS Xojo Conference is coming up in October in Cologne, Germany. Join MBS, Xojo CEO Geoff Perlman, other members of the Xojo Team, and 50+ (currently registered) Xojo developers from around the world. Tickets to the conference are 20% off this weekend, buy now with coupon code XDCSale.
XOJO.CONNECT 2020 Registration Now Open
XOJO.CONNECT will be held in Nashville, TN March 25-27, 2020 and registration is now open - passes are currently $200 off! Join us for networking, collaboration and learning - think of it as the forums but in person! Check out our highlights video from the 2019 conference.
As usual: Anyone with a Xojo license expired or expiring later this year can just add another year on the license. No need to wait till it expires. Same for MBS Plugin licenses, which can be extended in the future.
The coupon code XDCSale also gives 20% on the MBS web store for this weekend. If you want to order via invoice or via PayPal directly, we can provide invoices.
As you may know FileMaker Inc. offer you discounts for multi year renewals. Currently you get 10% discount on the 2nd year (effective 5% on total purchase) and 20% on the 3rd year (effective 10% on total purchase).
We like to mirror that for MBS Plugin purchases. So if you like to commit to order for up to 5 years, please let us know. We may provide an invoice for you or just give you a special coupon code for the website store. But if there are other sales going on, we may not combine the offers.
Due to WWDC, I'll come for a visit to California in June. As usual I like to meet other developers beside the visited conference and like to organize a few meetings for local Xojo developers.
The flight is via Los Angeles, so I can make a break there for a meeting and than do one in San José. If needed, I could even come to San Francisco to meet a few people. In all three places, I have >50 plugin users in a 100 km radius. So a lot of people could join us.
We added a forth choice with meeting on the east bay side there. As some people live closer to San Francisco and some closer to San Jose, it may be worth trying to get a bigger group in between. So please vote or update your entry if your available changed:
Nickenich, Germany - (May 21st, 2019) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 19.2 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 2400 classes and 64000 documented features, and the versatile plugins have gained more new functions:
For MacOS Mojave we added a new ContinuityCameraMBS class. This allows you to start a process where a nearby iOS device is asked to take a picture and return the picture to the Mac. You can use both iPhones and iPads nearby with at least iOS 12. If you have multiple devices, you can show a popup menu to pick one. And you can choose to scan a document, which allows to merge several pictures taken into one PDF document.
Our DynaPDF Plugin got a new integration for Xojo's graphics class. You can query DynaPDFMBS object to get a graphics object for drawing in the current PDF page. This supports all the usual drawing commands in graphics including picture, text and polygons. You can draw 2D objects with transparency and all the other options. If you use the report engine in Xojo, you can draw your report into a PDF document via our plugin.
Our JSONMBS class got improved to better handle 64-bit numbers and avoid the conversion to double which involves rounding. The new convert method can convert between JSONMBS objects and a representation with Variant, Dictionary and Xojo arrays.
The SQL Plugin got a new cache engine when using AutoCache property. Use it to make a server side cursor local on your machine and scroll forward and backward. The SQLValueReadMBS class got new functions to return or set Int32, Int64 and UInt32 values. Our plugin now tries to keep connections alive and we got new constants for SQLite.
For Windows, you can use TextArea.WinAutoCorrectionMBS to enable auto correction beside spell checking. With WinShowFontPanelMBS method you can show font panel from Windows for the text ara. The window.ActivateWindowMBS method can bring a window to front, even if the current process is not in front. Similar Application.FrontmostMBS works on Windows now.
We added a XMLValidatorMBS class to validate XML against a schema definition. Our Java array classes got upgraded to better query values or create Java arrays based on Xojo arrays. When merging Word documents with WordFileMBS class, you can now add a page break between the pages. We got a new ShellMBS class to run command line tools. With CIContextMBS we can now output to HEIF image format.
Finally we updated CURL to 7.64.1, DynaPDF to 220.127.116.11, LibXL to version 3.8.5, SQLite to 3.28.0, Xcode to 10.2 and CubeSQL SDK to version 5.7.3.
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.
The MBS Xojo Plugins come with over 2000 example projects. We want to make sure they all build and have no obvious problems like a syntax error. From time to time something in Xojo changes and the projects need to be adapted. For example last year the graphics property was removed from canvas control, so we had a need to check all projects for whether the graphics property is used somewhere. Sometimes things change in our plugins, like a method got another parameter and examples may need to be updated, too.
While Xojo lacks a command line compiler (Feedback case 3215), there is a IDE Communicator tool available (Documentation here). This tool shows you how to talk to Xojo and pass commands or IDE scripts. The IDE Scrips are scripts to run within the IDE and do various things like changing constants and trigger several builds with different configurations. For example we have for one project a script to build three variants of an application like a Demo, a Standard and a Pro version.
Our Test application gets the folder with all Xojo example projects for the plugin as input. It may take several hours to build them all, so a progress bar is really useful for us. If this runs in a virtual machine in the background, it doesn't even interfere with us using the computer for work.
We load each project by launching Xojo with the project file as document to open. If Xojo is running already, the project loads. We wait a second and then have an AppleScript to send ESC key press to Xojo in case there is a deprecation dialog showing. Next we call IDECommunicator command line tool via Shell class. We run our test script, which is just a text file with some commands for Xojo to do. This includes changing the app name, so all test builds have the same application file name. Next we build the project with BuildApp() function. We print the result in the script, so via shell class we can later read the output. Finally the script closes the script. When the shell finishes, we can write the result in a log file. If the result was success, we can delete the project and otherwise, we need to put it in the list to check later manually. We also check built apps what frameworks are used, so we can show that in the plugin documentation.
With the tests using Xojo 2019r1 we got projects updated to build in the newer Xojo version. We fixed a couple of things like changed syntax, graphics object access and removed Mac Carbon classes in our plugin for the upcoming 19.2 release. Enjoy!
For next Xojo plugin version we added a new class to validate XML text. Our XMLValidatorMBS class can take a XML scheme as text to initialize the validator. Then you can either validate a file or XML text in memory. With files, if you set the working directory to the right folder, we can even find references files int he XML or the schema text.
For error and warning messages, we provide them directly via Error and Warning events. We also collect them in an Messages array, which can be useful to check for errors later after validation.
The messages are in XMLValidatorMessageMBS objects, so we can provide the message and metadata like a line number and file name, if possible. Line numbers seem to be correct if you use Unix line endings. For Mac line endings, you get always line 1. So a call to ReplaceLineEndings(XML, endOfLine.Unix) may be useful.
To implement this class, we relay on libxml2 and the validator functions there. As Xojo has built-in XML classes, we have no need to reimplement all of that, but the validation was missing for a client.
The Xojo developer conference in Miami was my first Xojo conference in America. I met a lot of interesting new people and saw many well known friends from various European conferences again. Every time the conference feels like a family reunion. You read a lot of the names in the forums and you have the chance to meet the person behind the posts.
After a good breakfast we had the keynote with the Xojo CEO Geoff Perlman. We experienced the newest inventions and get a lookout to future functions like the new platform for Android development and the APIs changes. One thing that I recognize very positive is that you can see the inspector and the library in the shown future version of the Xojo IDE at the same time and can work with it. In my opinion it is very practical for designing a window, without making a lot of clicks while switching between this two areas.
The May/June (17.3) issue of xDev Magazine is now available. Here's a quick preview of what's inside:
Numbers Please! Part 2 by Markus Winter
Creating a numbers-only textfield sounds easy, but as Markus demonstrates, it's trickier than it looks. This time he explores various coding methods.
Coding in Paradise by Glen Newbury
If you're reading this, you're most likely a programmer, and in theory you can work anywhere there's a computer and an internet connection. So why not? Glen shows how you can rent a co-work space in an exotic location and work in paradise!
XDC 2019 Keynote by Marc Zeedar
Geoff Perlman's XDC Keynote is like a Xojo "State of the Union" address. This year he updates us on Android, API 2.0, the new Web app framework, and more. Find out what was announced -- just don't expect a timeline.
XDC 2019 by Marc Zeedar
It was a long trip to Miami, but it was a fun location for a conference. This year there were some amazing presentations raising the bar about what can be done with Xojo, from machine learning to creating a new language.
PLUS: Creating custom events, Xojo 2019r1, description field, Resource Folders, Time Management Tips, Best of the Web, and more!
A few updates on our European Xojo Conference, 24/25th October in Cologne.
We now have over 50 attendees on the list.
The number of countries reached 12: 🇩🇪, 🇬🇧, 🇳🇱, 🇫🇷, 🇨🇭, 🇺🇸, 🇬🇷, 🇸🇮, 🇦🇹, 🇮🇹, 🇺🇦 and 🇪🇸.
Dana Brown, Director of Marketing at Xojo Inc. will join our conference and give a session about marketing your own apps.
Today we send reminders to previous attendees.
We got featured in the Xojo newsletter. Thanks Xojo Inc!
The schedule is now nearly complete and arranged. Speakers can still sign-up and then we can move things around a bit.
The offer for free-tickets for young developers is well received. The deadline is over, but we just got a query from a student to be added and we may grant an extra ticket there. If you know someone who may not be able to pay the ticket and should get the chance to attend, please let us know!
Here a nice short example on how to draw a PDF with our new PageGraphics property in DynaPDFMBS class:
Dim pdf AsNew DynapdfMBS
//pleasesubclassDynapdfMBStoimplementerroreventDim f As FolderItem = SpecialFolder.Desktop.Child("DynaPDFGraphics.pdf")
//getgraphicsobjecttodrawonthepageDim g As Graphics = pdf.PageGraphics
g.DrawString "HelloWorld", 105, 100
g.DrawRect 100, 80, 100, 100//closepageandfileCall pdf.EndPage
You can put the actual drawing code into a method with g as graphics parameter and than call it on several places. e.g. call it from Canvas.Paint event to show it in a window, call it with graphics from OpenPrinterDialog to draw in printing context or call it with PageGraphics to draw into a PDF document.
When you come to join the European Xojo Conference in Cologne in October, you may spend some time with sight seeing, so here a few ideas:
Visit Cologne's cathedral itself.
Take the steps up to the towers for a great view inside the structure and over the city
Visit the treasure chamber below the Cathedral
Walk though the small streets of the older city center
Enjoy a beer in one of the old tiny pubs or small breweries
Rathaus, visit the city hall and it's architecture
Several older churches show architecture from various centuries: St. Gereon with a spectacular 10 sided dome.
Hahnentor, one of the city gates from the city wall
Visit the Chocolate Museum
Museum Ludwig on the backside of the Cathedral shows modern art
Römisch-Germanisches-Museum, shows Roman history
Abenteuermuseum Odysseum, a museum for kids to learn about science
Wallraf-Richartz-Museum, an art museum from mid ages to modern times
Römisches Praetorium, see some Roman ruins in the city center
More in Cologne
Go to platform on KölnTriangle to have a great view on the city
Kölner Seilbahn, a cable car takes you over the Rhine to the other side. Connects Zoo with Rheinpark.
Kölner Zoo. The Zoo is within the city and next to the Flora, you can go there via tram.
Flora, the botanic garden
Volksgarten, a public park in Cologne
Rheinpark, a nice park on the other side of the Rhine
Visit Brühl, 20 km south of Cologne
Schlösser Brühl, vist the palaces and parks from 18th century
Phantasialand, a theme park with rollercoasters.
Visit Bonn, the former capital of Germany, 35km south of Cologne
Haus der Geschichte, museum about German history
Beethoven house, the birth place of the famous music composer
Drachenburg, a castle south of Bonn
Poppelsdorfer Schloss, the former palace which now hosts the botanic garden
Within the city, you can just get a day ticket for the subway & busses and get everywhere. From main station you can get local trains to Bonn and other places around. To go to Bonn, you may take one of the ships cruising the Rhine.
We got a couple of questions related to the conference which I like to sum up here:
Is the conference in German?
No, it is in English, as most attendees don't speak German.
And everyone can speak English as otherwise reading Xojo's documentation would be hard for you.
For the training, we offer a day with English and one with German as language.
I don't use MBS Plugin, so should I go?
Yes, of course. The conference is hosted by Monkeybread Software. We do one session telling you what's new in the plugins, but otherwise content is similar to sessions at XDC.
Does Xojo Inc. show up?
Yes, Geoff Perlman, the CEO and founder, will come and speak. He will also talk about the technical changes like the progress in Android support or the new web framework.
Dana Brown, Director of Marketing at Xojo Inc. will join our conference and give a session about marketing your own apps.
Some sessions have same title as for XDC sessions?
Yes, some speakers like to use the same session again and update the content. For example they may present a version 1 at XDC in Miami and a version 2 in Cologne.
Why is the conference in Cologne?
First for handling VAT, we prefer to do it in Germany as that minimizes our paper work. Second, for a few years now we cycle through the cities in Germany with more than a million people. After Berlin in the east, Munich in the south, we now are in Cologne in the west part of Germany.
Why in October?
XDC is around April/May and we like to have five to six months distance between conferences. We look for September, October or November to find a date. Usually we ask a couple of hotels for a conference room on a Thursday/Friday with the required capacity of 50 to 100 seats. Other events take place, so we usually get only a few spots available. e.g. for Munich beside Oktoberfest, school holidays, trade shows, we only had to choose between the week in September and one in November. For Cologne we picked a week at the end of October.
Is dinner included?
The dinner for Thursday evening is included. For the other evenings, it may be self paid by attendees. If the finances allow it, we may organize a group dinner and pay it for you.
All the lunches and coffee breaks are included. If you don't get breakfast in your hotel, you may still find a snack and a coffee in the foyer near the conference area.
The Dorint Hotel is expensive, how about an alternative?
For the Dorint, we got a conference rate for 169 Euro/night with a single room and 204 Euro for a double room.
Within walking distance, there are over 20 other hotels. The nearby the Maritim is a 4 star hotel around 100 Euro/night. And the smaller Hotel Monte Christo is just a block away from the Dorint and charges around 70 Euro per night. In the old city of Cologne, you find plenty of small boutique hotels to have a great stay!
And if you stay farer away, you can take a train to the subway station Neumarkt, which is located in front of the Dorint Hotel.
Will there be a 2020 conference in Germany?
Not sure yet. First priority is to make the Cologne conference a success. Then we may decide for a follow up conference in 2020. Please make us happy by attending our conference!
If you have more questions, please don't hesitate to contact us.
We are integrating DynaPDF with the Graphics class in Xojo. You can get a graphics object to draw into the current page via normal graphics class methods. The code looks like this:
Dim g as graphics = pdf.PageGraphics
Technically we create a temporary picture with a subclassed graphics class and give you the graphics object from the picture. You can get the temporary picture with PageGraphicsPicture property. All draws go both into the picture and the PDF page:
Dim p as picture = pdf.PageGraphicsPicture
We support normal drawing commands in graphics class and the usual properties. Draw/Fill Oval/Rect/RoundRect/Line/Polygon will just work. DrawString draws text for single and multi line. StringHeight and StringWidth measure text via DynaPDF functions, so the result may be different than in a picture, but you get the right values needed for the PDF output. DrawPicture can draw picture with alpha channel and masks if needed. NextPage method will close current page and make a new one. Or you implement NextPage event to do this yourself. Then you can import existing page as background.
We support vector graphics classes (Object2D) and drawObject command. Most properties should work and this includes transparency and rotation.
As the report engine is built on Object2D, the report engine can output to PDF via our graphics class.
This works in all Xojo versions (And Real Studio), with all DynaPDF editions and come soon with next 19.2 prerelease.