Xojo 2013 Release 4 hit the internets this week. And they promptly pulled it after they discovered a crashing issue when it tried to verify licensing on their servers. Release 4.1 was released today which fixes the issue. As far as I know, it’s the only fix in 4.1.
I would characterize Release 4 as a maintenance release as it has several hundred bug fixes and just a few new items. I’m okay with this and if I had any say in the matter I would alternate releases with new features and bug fixes. One thing this release does NOT include is the Xojo Cloud that has been in development for over a year. I expect Xojo Cloud will be released for the 2014 Release 1 (so it will probably go into beta soon).
The big change in this release is that the IDE and applications built for Cocoa require Mac OS X 10.7 (Lion) or later. I think this is a pretty good move though it will make life harder for some. Apple updates their OS regularly and many update their OS when they can because the upgrades have been safe. I can’t find the statistics but it appears that a vast majority (in the neighborhood of 80%) of Mac users are on 10.7 and above now. Obviously, if you have clients and customers that require 10.6 (Snow Leopard) you’ll need to stick with Xojo 2013 Release 3 (or continue building in Carbon).
New in Release 4 is new cryptography functions using the Crypto class. The new class adds RSA encryption to the Xojo framework. It has functions that allow you to generate public and private keys, verify the keys, encrypt and decrypt data, sign data blocks, verify signatures, and generate a random block of data.
For desktop users, the Canvas and ContainerControls now have a transparent property. The default is true to maintain current functionality. This change is particularly important in Linux as child controls on an opaque (not transparent) canvas or container control can be clipped.
The IDE can now use constants for the application identifier which can be useful if your application has multiple names or versions.
Release 4 has a ton of bug fixes and tweaks to the IDE. This includes many fixes and changes to the Navigator and some of the copy and paste bugs that have afflicted the IDE since its first release. It’s still not perfect, but it’s getting better.
Better is subjective, of course, but one of the bigger annoyances to many users (including me) is that changing text values in the Inspector (such as a control name) didn’t actually stick unless you tabbed out of the field. This has been fixed and just this one change alone is worth getting and using Release 4.
There are a few debugger changes that are worth mentioning. First, the debugger now catches exceptions raised in computed properties. Before it wouldn’t, which could cause navigating in the debugger to actually change the control flow of the program. Second there are some specific fixes to the debugger for Windows and Linux users, and finally a new DebugIdentifier property was added to the Thread class to make it easier to debug code that’s running in a thread.
One item of note that came through late in the beta cycle. Several developers had issues with rejections from the Mac App Store (MAS) due to using QuickTime API calls (or the framework linking to them). It appears that Apple, while only deprecating QuickTime in Mavericks, is actively rejecting apps that use it. Release 4 no longer links to QuickTime but according to the Beta list testers this is still an issue. In my opinion, this is more an issue with Apple, suddenly and with little warning, rejecting MAS submissions than it is Xojo doing anything wrong.
While I like Apple, sometimes getting apps into their store is like hitting a moving target. Apple giveth and Apple taketh away. <insert favorite negative Apple cliche here> If you know more on this, please add comments below.
What are your thoughts about Release 4? Are you happier with the IDE after 4 releases than you were initially? Are you looking forward to Xojo Cloud? What about the eventual iOS support?
[Edit: Changed wording on the debugger changes for computed properties so it was more accurate.]