RoboVM 1.8 released
Same Day iOS 9 & Xcode 7 Support!
Right on time for the iOS 9 release today, we are happy to announce RoboVM 1.8!
Previous RoboVM releases already had experimental support for iOS 9 and Xcode 7 betas. We are now happy to report that we also finished +95% of the bindings work, save for the new tvOS and watchOS 2 APIs! These will have to wait a little, as we also need to bring RoboVM up to par with platform limitations. Stay tuned for more news on that front.
Head over to the Apple Developer Center and check out the iOS 9 release notes! Among the new additions are deep linking and search, multi-tasking, a new contacts API, and more!
CocoaTouch API Diffs
To make everyone’s life easier, we are now providing you with API diffs between major RoboVM versions. These include additions, removals and modifications of all CocoaTouch APIs exposed by RoboVM. This should help you get up to speed with any changes we made, and lowers the risk of us failing to communicate these changes in the detail you need!
Embracing Lambdas Everywhere!
RoboVM has been supporting Java 8 lambdas and method references for over a year now. Still, due to Android’s lack of support, we defaulted to Java 7 language support. No more!
Starting with this release, RoboVM will require JDK 8 for compilation. Also, all templates have been updated to use Java 8 by default. This includes the cross-platform template, which includes an Android sub project. There, we use the awesome RetroLambda to get around limitations of ART/Dalvik.
Note that we still do not support Java 8 runtime classes, most notably the streams APIs. We are currently evaluating ways to fix this issue as well. Stay tuned!
Bug Fixes & Enhancements
As always, we squashed bugs, improved performance and added some bells and whistles. Here are the most important changes:
- The Metal framework should now work as intended
- Related to the last item, we now added support to bind native protocol implementations to a Java class via the
@protocolfunctions with no parameters now work as intended
- Multiple asset folders are processed properly now
- Enumerating network interfaces now works as intended
- The Java language level defined in Gradle build files is now properly processed by IntelliJ IDEA/RoboVM Studio
- Fixed a bug in compilation of lambdas that require boxing primitives
- Made the Android SDK installation a whole lot smoother for IntelliJ IDEA/RoboVM Studio users. We now bundle our own pre-configured version of the SDK, including local repositories for the design library, support library and Google APIs.
- Made iPhone 6s the new default simulator selection
- Fixed simulator launch issues with iOS 9 simulators and Xcode 7
- Fixed a bug in the IntelliJ IDEA Plugin/RoboVM Studio that would fail to create a cross-platform project if Android build tools 23.0.0 aren’t installed. We now choose whatever highest build tools and SDK version is available in your Android SDK.
Our focus for the next release will be on completing the missing iOS 9 APIs, iOS 9 samples and documentation, along with the usual bug fixes and performance improvements.
Stay tuned and happy coding!