BT

RoboVM 1.0 Touts JVM-based Languages for iOS Development

| by Sergio De Simone Follow 14 Followers on Mar 20, 2015. Estimated reading time: 1 minute |

RoboVM, aimed at bringing JVM-based languages to iOS development, has reached its first stable version, Trillian Mobile announced, bringing new features and new commercial licenses in addition to its OSS core.

“The goal of the RoboVM open-source project is to bring Java and other JVM languages to iOS”, those include “Java, Scala, Kotlin, Groovy and Clojure”.

RoboVM’s approach to cross-platform development is based on a ahead-of-time compiler that translates Java bytecode into ARM or x86 machine code. This implies that no interpretation is ever done and the code is run natively on the target CPU. Besides providing unrestricted access to the Java platform, allowing developers to leverage the Java ecosystem, RoboVM interestingly goes beyond JNI with a custom Java-to-native bridge called Bro (“bridge” in Swedish). This is used to interface with the iPhone and iPad hardware or use iOS-provided services such as in-app purchasing or notifications. While JNI remains available in RoboVM, Bro is claimed to be simpler to use and to provide better performance than JNI.

Another significant characteristic of RoboVM, according to Trillian, is its integration with IDEs and debuggers.

Supported IDEs include Eclipse and for Android Studio, although the former is deemed to be stable, while the latter in an initial stage of development. Furthermore, integration with Xcode Interface Builder is planned to be released in Q2 2015 as a commercial feature.

Debugger support, only available with a commercial license, is ensured through the implementation of the Java Debug Wire Protocol (JDWP), which allows to debug a Java process from inside an IDE. The alternative approach of using LLDB was discarded, accorging to RoboVM, due to its process-centric model, which implies that “if one thread stops, all other threads have to stop as well”. On the other hand, JDWP’s thread-centric model allows you to stop a thread, while the remaining threads continue to run. 

InfoQ provided detailed, hands-on coverage of RoboVM usage, from installation to creating an IPA for App Store distribution.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Small corrections by Mario Zechner

Hey, thanks for the coverage! Just wanted to point out a few things.

We do support JNI as well, but Bro makes things a lot easier.

IDE integration is not a paid feature it's free for all. In fact, people can use our OSS offering without paying us a dime to create unrestricted apps and publish them to the app store.

The paid features include the debugger and the upcoming interface builder integration along with support services.

Re: Small corrections by Sergio De Simone

Thanks, Mario. I have amended the post.
Sergio

RoboVM performs well on IOS but so does Xamarin by Faisal Waris

See this performance comparison from an ex-Googler:

medium.com/@harrycheung/mobile-app-performance-...

Both are good x-platform approaches.

Tooling, library support, cost, etc. would be other factors to consider.

Re: RoboVM performs well on IOS but so does Xamarin by Mario Zechner

Xamarin has had years to optimize their compiler. We are just starting out with optimizations, so I hope we can close the gap soon.

Regarding cost: with RoboVM you only have to pay for iOS, Android obviously comes for free. There are also no restrictions when you use our free OSS version. Your app can be as big as you want it to be, you can use any Java/JVM or native 3rd party library. You only pay for advanced features and additional support services on top of our open community forums.

There's already a few hundred apps and games on the App Store using RoboVM, so maturity is pretty good. There's obviously a gap to Xamarin as they have a head start. E.g. we currently don't have a production ready cross-platform UI toolkit. People need to use the platform native UI APIs. We are working hard on a solution here.

I believe that if you come from the Java ecosystem, RoboVM is already the better choice, but I'm of course biased :)

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

4 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT