Shiny new tools
One to watch: RoboVM, cracking the Java iOS development conundrum
In the early days of iOS development, there was little choice but to master Objective-C if you really wanted to take control of your app development. There’s now a growing number of startups working on solutions for simplifying the iOS development process for Java coders, although a definitive Java-based platform for iOS app development remains somewhat of a ‘holy grail’. We spoke to Niklas Therning, who’s giving it his best shot.
Therning is the founder of RoboVM, a tool for the kit that you can use to develop iOS apps using Java or another JVM language. He points out that, “It's not an interpreter or anything, but you get a binary that's running on the CPU directly, so no bi-coder or anything on the device”. It also comes with tooling for simplifying use, such as nifty Eclipse plug-ins and the like.
Recognising that retaining that feeling of control when working with a layering tool is essential for converting developers to your software, Therning states that his ambition for RoboVM is that “you should be able to use anything that you could have used if you'd used another language - that's the end goal”. By allowing users to interface with the hardware on the iPhone or iPad, he hopes that, at least in future, this objective can be achieved with RoboVM. Although “not quite there yet” - it’s still in alpha, after all - he notes that you can do a lot already.
RoboVM began as a concept around 2010. Working at the company he co-founded, Trillian DB, Therning “had this idea - we were doing mobile stuff, you know, other things for other things that we do in Trillian - that's the company - and I just started to think, why can't I do this in Java? I mean, Android is Java, so there is a lot of opportunity here for sharing code between Android and iOS”. RoboVM started as a side project, but as it gathered momentum, Therning shifted to working on it full time.
The first release of RoboVM went live this January, and Therning says interest in the project has started to spike, while feedback continues to trickle in. Not everyone is a fan of language layers though, with one developer we asked about RoboVM commenting that, “No serious app developer uses one of these layers”.
With this sort of sentiment prevelant among certain members of the app maker community, we had to ask Therning why he felt compelled to create something for Java develpers in the first place. He responded that, “Android is huge now and that's where those people are using Java, and you don't have the choice to use anything else on Android, and I would imagine that the target group for this is the Android developers. It used to be that you started doing your iOS app, and when that was finished you moved on to Android. Worldwide phone markets are about 90% Android, and people are starting to develop for Android first, and then try to move that over to iOS “. However, through RoboVM, people “don't have to put that much effort into doing the port” making it a time efficient and theoretically cost-effective solution.
Although the first RoboVM app has been accepted onto the Apple store - on the first attempt, as Therning proudly notes – it’s very much still in the growing stages. The biggest interest has come from game developers, who are the fastest growing segment of the app industry. Additionally, due to the fact that it doesn’t yet have options for iOS, communities around JavaFX are also following RoboVM’s progress with interest.
With their inaugral app succesfully ensconsed within the shiny
halls of the Apple store, next on the RoboVM to do list is to
finish off the Cocoa Touch APIs binding (the stuff used to
interface with the native layer), which Therning estimates will be
finished by the end of this year, followed by debugging work in the
Therning is philosophical about his competitiors, noting that whilst there are similar programs to his, they often set out to appeal to much wider audiences - whereas his sights are firmly fixed on Android developers looking to branch into iOS.
Considering the growing attention on RoboVM, it will be interesting to chart their progress over the next twelve months. Although there will continue to be a healthy level of sceptisism towards language layers, for the Java community at least, there’s plenty of potentional for maximising app development efficiency with the right vehicle in the future – and who knows, that just might be RoboVM.