Skip to content
Nicholas VanCise edited this page Jul 4, 2021 · 17 revisions

Welcome to the Quorum iOS Transpiliation wiki!

This was done as my Senior Design Project for CS 472, at the University of Las Vegas, Nevada.

Here I will be documenting from start to finish the process of integrating RoboVM into the quorum build chain, along with creating an iOS project utilizing the RoboVM gradle plugin.

Why this project was necessary

RoboVM was bought by Xamarin, and converted to closed source code. This transition caused a block for Quorum applications within the iOS market, as there was no way to run the generated java bytecode on iOS devices in a suitable open source manner. Since iOS is one of the platforms that cannot run the java virtual machine, running the code without intermediate actions was unfeasible.

This conflict motivated us to seek out a solution, the open source fork of RoboVM maintained by MobiVM and its gradle plugin, where this system is an ahead-of-time compiler for Java bytecode, targeting Linux, Mac OS X and iOS. We have successfully incorporated this system into the Quorum Studio build chain structure, allowing Quorum's reach to extend into a market where it is needed the most!

This project is now featured in the Quorum Studio 3.0 and Quorum 9.0 release! Featured release notes here

Requirements

id Title Requirements Description
NF1 Xcode This application is used to sign the code for running on a real device, along with compilation of natives. It will link a signing certificate tied to an apple id, to the app id defined in the Robovm properties file. Current tested versions: Xcode 10 - 12.
NF2 Cmake This application is used for Xcode project generation, related to native C/C++ code base compilation. Current tested version: 3.18.4
NF3 Quorum Studio This is the integrated development environment for Quorum, managing compilation and project generation
NF4 Java Version We will support bytecode transpilation for Java JDK 1.8, the same specification as Quorum outputs
NF5 Robovm Gradle Plugin This plugin defines the tasks needed to interact with the robovm compiler. Current tested version: 2.3.10-SNAPSHOT
NF6 Operating System Guaranteed support for OS X Catalina, and Big Sur
NF7 iOS Version(s) We will be supporting iOS versions 9 - 14.2