Last release we added experimental Bitcode support for iOS, a precursor to tvOS support. Today we are super excited to announce experimental tvOS support! Here’s how you can try it out, even without a tvOS device.
In RoboVM Studio or IntelliJ IDEA, simply create a new project and select one of the tvOS templates!
Once the project is created, you can find two new run configurations, one for any connected Apple TV device, and one for the Apple TV simulator. You can treat this just like any old iOS run configuration!
In Eclipse, create a new project and select one of the tvOS templates.
Right click your project, select
Run As/Debug As and select a tvOS device or simulator!
We also added new tasks to our Gradle plugin:
./gradlew ios:launchTVOSSimulator ./gradlew ios:launchTVOSDevice
And of course our Maven plugin also got new goals:
mvn compile robovm:tvos-sim mvn compile robovm:tvos-device
tvOS apps can be written using storyboards, just like iOS apps. Note however that simply running your existing iOS app on tvOS will not work. First of all, the APIs are slightly different. Also, you’ll have to add new launch images and add a new
UIDeviceFamily to your
<key>UIDeviceFamily</key> <array> <integer>3</integer> </array>
We will follow up with a more in-depth article and docs on RoboVM and tvOS in the next few weeks! For now you can play around with the project templates for tvOS and check out our updated game sample or the tvOS port of the HelloGL sample. Also check out Apple’s official documentation.
iOS 9.2 Support
In the meantime, Apple also released iOS 9.2, which comes with a few minor API additions. Check out our API diffs to find out what’s new!
Bug Fixes and Enhancements
As always, we squashed bugs, improved performance and added some bells and whistles. Here are the most important changes:
- The simulator will be brought to the front when you resume an app during debugging.
- You can now select on which connected Apple device you want to run your app
@Availabilityannotations to all iOS APIs indicating the supported platforms (tvOS or iOS) and versions. In a future release we will emit compiler warnings and/or errors if you use unsupported APIs on a specific platform.
- Added a setting in IntelliJ IDEA/RoboVM Studio to allow you disabling automatic run-configuration generation on project imports.
- Updated the default launch images to look even more awesome.
- Revamped the Eclipse project wizard. You can now select the type of project via the template dropdown. You now also have to explicitely specify a package name.
- Android application id is no longer hardcoded in templates.
- Fixed a GC issue when collecting soft/weak references.
- Fixed a memory leak in IntelliJ IDEA/RoboVM Studio that would slow down the IDE to a crawl.
- Fixed an issue in the debugger when dynamic proxies are used, e.g. in Retrofit code.
- Fixed synchronization issues between IntelliJ IDEA/RoboVM Studio and Xcode when adding/removing
@IBActionfields and methdos.
- Improved handling of primitive types in lambda compilation by removing unnecesssary boxing.
- Made the conservative treeshaker the default if nothing else is specified. Previously, not using the tree shaker was the default.
Our focus for the next releases will be on implementing the new RoboPods, maturing tvOS support as well as full bitcode support.
Stay tuned and happy coding!