Like almost every week, we shipped a new pre-release build for Elements 9.3 yesterday, and I wanted to give a quick shout-out about a few cool features in this build that you might want to check out


As you know, EBuild is coming win v10, and we still have a while to go before it will be fully functional and usable, but i'm happy to report that a of yesterday's beta, EBuild is feature complete for the Cooper (ie JVM and Android) target, so if you are working on Cooper projects, i encourage you to try turning on EBuild and seeing how it goes (there'll probable still be bugs and quirks, of course).

Unfortunately, EBuild can only be turned on or off wholesale, so remember to turn it back off again before building .NET, Cocoa or Island projects, or you'll be sad ;)

One of the cool benefits of using EBuild is that it preserves compiler hints and warnings on incremental builds. If you build your project, it succeeds, and you then build again w/o making any code changes, the compile phase will be skipped. In the past that meant you lost any warning messages, because the second build run didn't emit them, of course. No longer, with EBuild.

To try EBuild, you need to use Fire or Water, and you can turn it on at the bottom the Build tab in the Preferences/Options dialog:

Build Skipping

Seemingly related but not really, Fire and Water also now are smarter about completely skipping the build, if you run/debug your app multiple times in a row and no changes were made.

Incremental builds are usually fast, but they still take some time, even when they don't have any work to do. So when you debug your app, stop and want to debug again, you always had to cope with this relay. Now, if you press run and nothing changed since the last run, Fire will just run the same exe again right away – without even deferring to the build chain at all.

CC for Android Manifest Files

Elements 9.2 introduced a flexible core engine for providing code completion in XML files but, somewhat boringly, only provided actual CC for Info.plist files.

Of course that was just laying the groundwork for more, and .2189 adds support for CC in Android Manifest files (with Android resource and layout files next on the list for later betas).

So tweaking and extending that manifest has just gotten lot easier.

Form Designers for Java

So that's a lot of love for the Java platform, but there's also cool new stuff for the Java language (Iodine) we introduced in 9.2.

Build .2189 adds visual form designer support for both WPF and WinForms in Visual Studio. That means you can know use Java to build visual Windows apps as well

There's also been a handful of small improvements to the Java compiler itself. We added a new __struct keyword for declaring value types, for example.

And More Language Stuff

All three non-Oxygene languages have gained a small tweak that Oxygene had for a while, and that is to not need to escape keywords when they are used after a dot. So there's no more need for foo.@delegate in your C# Cocoa code.

By popular request, Swift has also gained a new keyword, __field to declare a true low-level field that is not a property (since var and let always declare properties, and sometimes the distinction is important).


It's been a good week, i'd say!