RoboVM stirs up another helping of Java for iPhone
Apple unlikely to get cross over this compiler
The free RoboVM, timidly launched as version 0.0.1, claims to bridge Java code into Objective C - including the native iOS Cocoa Touch APIs - providing greater portability to mobile apps.
The release announcement boasts:
RoboVM makes it possible to develop native iOS apps that use the CocoaTouch APIs in Java using familiar tools such as the Eclipse Java IDE.
The RoboVM is licensed under Apache v2.0, with the compiler falling under GPLv2, and is largely based on the Android core classes, but once plugged into Eclipse it allows Java applications to be launched in a simulator and compiled down to iOS apps.
At one point that would have been breach of the iOS developer rules, which clearly stated that code had to be created in C, but those rules were only written to annoy Adobe (whose Flash compiler so upset Steve) and were never applied to platforms such as Appcelerator's Titanium - which happily compiles AJAX apps into runtimes for iOS, Android and BlackBerry.
Once Adobe had been frightened off the restriction was dropped, but emulators are still verboten in the iTunes store, unless bundled with apps, as they could provide an alternative application distribution mechanism - which Apple will never allow. Since then, quite a few Java/iOS tools have emerged.
Oracle's ADF Module can spit out Android and iOS apps from the same code, which is based on Java and HTML5, and Google has a translation tool which will take (non-GUI) blocks of Java and convert them into Objective C for incorporating into iOS apps.
So Apple is unlikely to go chasing after RoboVM any time soon, and for those wedded to Java and not wanting to pay Oracle, it should provide a smooth transition into the iOS world though the team is keen to point out that it's still early days and some things aren't going to work properly.
But that's what beta releases are for, and the team has provided pretty-comprehensive instructions for those who want to give it a shot so there seems little reason not to, if one's love of Java and open source is still standing in the way of one's iOS aspirations. ®