Xojo 2015 Release 4 hit the internet today. The fourth release of Xojo this year is full of bug fixes and only has a few new items. I’d recommend using this release as the bug fixes are substantial.
Let’s get what’s NOT in this release out of the way. This release was initially supposed to be about getting Retina and HiDPI capabilities in the IDE and in our applications. It was determined that there just wasn’t enough time before the end of the year to get it done. It’s disappointing to not get these new capabilities but I’d rather they be done right than Xojo giving us a half-assed feature that no one is really happy with.
This release also does not complete the 64-bit work started in 2015 Release 3. We still cannot use the Remote Debugger to live debug 64-bit applications and there are still major gaps in the capabilities between 32-bit and 64-bit applications. A full list is here: http://developer.xojo.com/64-bit-guidelines
Changes and Fixes
What this release does is fix over one hundred compiler, framework, database, and IDE bugs. There a number of 64-bit bugs that have been squashed that were causing linking errors or outright crashes when compiling 64-bit applications.
For the framework there are a couple of high profile fixes that are welcome. XML Exceptions no longer ‘skip’ exception handlers. I know this has been troublesome for many developers. An issue with the new Xojo.IO.Folderitem class has been fixed on Cocoa that would cause crashing when a FolderItem object was put in a tag, for example.
The Web framework received
some bug fixes as well. Some of the more notable: WebSessions no longer quit when moving from network to network. WebPicture’s no longer return nil when defined from a FolderItem and the WebPicture no longer uses twice the memory when the image is in the project file. The web framework now recognizes the Epiphany web browser on Raspberry Pi.
The WebDragItem now has the Origin X and Y values that indicate the X and Y coordinates of the Sender web control where the drag began. I haven’t tried this out yet, but this should make some things (like a web based designer) a little easier to create.
The MSSQLServer Prepared Statement no longer returns a nil and should allow developers to use this safer method of using Xojo with Microsoft SQL Server database servers. The ODBC Database plugin also got an update so it no longer crashes when retrieving large SQL columns.
The IDE has dozens of bug fixes. Most of them pretty minor but they add up. Among the more notable fixes: AutoComplete has had extensive work so that control arrays and structures should work. Private methods and properties now show in AutoComplete as expected (now, only when in scope).
The Syntax Help Area (at the bottom of the Code Editor) is now scrollable when the content does not fit the preexisting area. This area will also show the description, if there is one, in addition to the signature.
The Interface dialog now resizes itself to 75% of the window height. If you make it larger it will reopen at that size (or the limits of the window).
Filtering in the Navigator now shows results ordered on how closely they match the string based on the Levenshtein distance of the match. So if you don’t quite get the name right you might still get results instead of requiring an exact match.
Despite this being a mostly bug fix release there are a couple of new goodies that might make your day. The first is that MySQLCommunityServer now has a SecureAuth property which allows users to authenticate using old password hashes.
The Graphics class for desktop apps has a new property, called CharacterSpacing, that allows you to change the percentage spacing between characters. You can use both positive and negative values.
Web Text controls now have a TextAlign property. This should simplify web projects as you no longer do have to duplicate a WebStyle and change the alignment simply to change the text alignment for a single control. You can still do that but this is a new way to eliminate that extra work.
In some preparation for Retina, Image Sets are now available. Use the Insert Menu and select Image. In the Image Set editor that are now 3 thumbnails for the set for normal size, double size, and triple size. But since this release doesn’t include Retina support this feature is of limited usefulness – for now.
What might be the biggest news of the release is the addition of the CGFloat data type. This temporary datatype aliases to a Single in 32-bit builds and a Double in 64-bit builds. This should make fixing some the common libraries (think MacOSLib) easier since we can make one variable that will work for both build types. Xojo has said that once 64-bit iOS and OS X builds are ONLY 64-bit the CGFloat data type will be deprecated.
I’m a big fan of these mostly bug fix releases. In a product that changes so much and so quickly (at times), these bug fixes releases allow us to take a deep breath and not worry too much about using this release. We worry about the big releases because of the shear amount of changes involved and the amount of testing required with our applications.
So what do we have to look forward to in 2016? Presumably, 2016 will see a full compliment of Retina and HiDPI support since Xojo publicly pulled it from this release. I would also expect the 64-bit journey to continue with hopefully the IDE becoming 64-bit which means that XojoScript, Windows version and icon information work, and the grandaddy of them all, Remote Debugging work in 64-bit.
I hope we get a Remote Debugger for Raspberry Pi simply because that will make life easier on that platform too. I’m not sure what else we really need for Raspberry Pi. What have I forgotten?
I would expect the IDE to get some level of redesign. Many people, including myself, are unhappy with the workflow in Xojo and think it’s slower to use than Real Studio. I know of several large customers that have stuck with Real Studio rather than migrate their projects to Xojo simply because of the IDE workflow issues. Personally I’m happy that Xojo plans to address some of those issues.
I expect the iOS framework to grow with new controls and capabilities. I also expect the new Xojo framework to keep growing (TCP Socket perhaps being the biggest need) and getting more attention to eliminate some of the cross platform bugs in it (looking at you HTTPSocket).
Will 2016 be the year that the desktop or web frameworks gets rewritten for the Xojo framework? Perhaps, but Xojo isn’t saying much. With XDC now in October we won’t get much of a hint of future plans until then, or until we see it in a beta cycle.
I know that Android support is at the top of the wish list in Feedback. I do NOT see it in 2016 simply because it’s yet another platform. Unless they’ve already started the work on it (which is always possible and we haven’t noticed it) I expect it to take at least 18 months (more likely two years) for an Android beta release. And even then, how long until it’s really usable?
So what is your take on this release? Good, bad, or meh? What are you most looking forward to in 2016 from Xojo?