A couple of months ago, the Open Source community received bad news: RoboVM (https://robovm.com), the compiler used to build iOS using Java language, had ceased being open source. The company had been bought by Xamarin and there were rumors about a Java based, Xamarin-like tool being built.
The rumors were confirmed and the new tool is available at the RoboVM page (https://account.robovm.com/#/download).
The purpose of this post is to explain, what the different components are comprised of and how they relate to Nibiru Mobile.
About RoboVM compiler
RoboVM is a Java-to-LLVM compiler. Since Apple compilers are based on LLVM, a Java compiled code can be translated to run on iOS.
Details are shown below:
- Translation is done on the compilation phase, so the final product is a native application.
- You don’t need Java source code to do the translation. It uses Java bytecode to generate LLVM output.
- You can translate almost any Java library.
- The translation is incremental.
Also, they provide a Cocoa bridge, so you can use a Java version of Cocoa API.
About RoboVM plugins
RoboVM provides plugins for Eclipse and IntelliJ. These plugins allow iOS applications to compile and run from popular IDEs.
About RoboVM Studio
RoboVM Studio is a pre-packaged bundle based on Android Studio (Android Studio is based on InelliJ). Every plugin that is needed to build and run RoboVM iOS applications, is included in the package. The package allows you to build Android applications as well.
What about Nibiru Mobile?
Nibiru Mobile does not fall into previous classifications, it is a framework (among many others) that uses RoboVM technology.
When using pure RoboVM (similar to using Xamarin), a separate code to access different device’s features must be written. This is because of the Native API. The intention of Nibiru Mobile is to cover any gaps. This means, providing a common API for different platforms (iOS, Android, Web, Windows Phone and FirefoxOS). This approach is similar to PhoneGap or Xamarin Forms.
Current (some under development) APIs include:
- App view Navigation
- HTTP request handling
- Remote service call
- Event bus notification
These new products do not replace Nibiru Mobile. In fact, they complement each other (compiler + IDE + framework), similar to Xamarin IDE complementing .NET compiler and Xamarin Forms framework.