Ingress launches on IOS – powered by libGDX

Google’s augmented reality game Ingress has launched on iOS. It appears to be using libGDX on iOS as well, which means it either runs on the old Xamarin backend or our more stable and faster RoboVM backend (performance seems to indicate the latter). Here’s a pic of the credits on my old iPad2:

It’s gonna be interesting to follow the reviews on the App Store.

Libgdx updates to RoboVM 0.0.11, featuring new CocoaTouch bindings!

Niklas Therning of RoboVM fame send us a tasty pull request a few days ago that updates our RoboVM backend to the latest RoboVM version. I held off merging this PR until today when Niklas released RoboVM 0.0.11. The new CocoaTouch bindings, exposing iOS APIs to you, are now under a new package called org.robovm.apple. This means that your RoboVM starter classes need to be adapted a tiny little bit!

This:

package com.badlogic.gdx.tests;
 
import org.robovm.cocoatouch.foundation.NSAutoreleasePool;
import org.robovm.cocoatouch.uikit.UIApplication;
 
import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
 
public class IOSRobovmTests extends IOSApplication.Delegate {
 
	@Override
	protected IOSApplication createApplication() {
		IOSApplicationConfiguration config = new IOSApplicationConfiguration();
		return new IOSApplication(new BulletTestCollection(), config);
	}
 
	public static void main(String[] argv) {
		NSAutoreleasePool pool = new NSAutoreleasePool();
		UIApplication.main(argv, null, IOSRobovmTests.class);		
		pool.drain();
	}
}

Becomes this:

package com.badlogic.gdx.tests;
 
import org.robovm.apple.foundation.NSAutoreleasePool;
import org.robovm.apple.uikit.UIApplication;
 
import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
 
public class IOSRobovmTests extends IOSApplication.Delegate {	
	@Override
	protected IOSApplication createApplication() {
		IOSApplicationConfiguration config = new IOSApplicationConfiguration();
		return new IOSApplication(new BulletTestCollection(), config);
	}
 
	public static void main(String[] argv) {
		NSAutoreleasePool pool = new NSAutoreleasePool();
		UIApplication.main(argv, null, IOSRobovmTests.class);		
		pool.close();
	}
}

Both IOSApplication and NSAutoreleasePool have to be imported from the new package. NSAutoreleasePool#drain() has now become NSAutoReleasePool#close().

I also updated our Gradle templates to use the latest Gradle RoboVM plugin (0.0.6) and our Maven POMs to depend on the latest RoboVM version in Maven Central. Give it an hour or two to distribute into the nightlies, build on our build server sponsored by our awesome community via Patreon!

Support RoboVM (and get Java 8 and other Goodies)

Niklas is finally in a stage where we as a community can help out financially. Given the absolutely amazing support so far, i believe it’s our duty to contribute to the financial well-being of both Niklas and the RoboVM project.

You can support RoboVM by sponsorship. Sponsorship does not entitle you to any specific service. You will however get various discounts if you decide to buy a proper support package once they are available. You can find all details about sponsorship RoboVM’s sponsorship page.

Support packages will be offered starting in Q2 2014. RoboVM will stay OSS and will continue to be free for commercial and non-commercial use. Niklas will try to finance the project by providing support package subscriptions. Details about the content of such a subscription are still in the definition phase and will be revealed in Q2 2014.

I put 199€ of our libgdx funds towards sponsoring the project, as evident on the RoboVM sponsors page.

You can find Nikla’s annoucement on RoboVM’s blog.

Consider sponsoring this amazing project!