WWDC 2017: Recap & Titanium Support

The Apple World Wide Developer Conference is taking place in San Jose this week. There are tons of great recaps out there (e.g. The Verge, Techcrunch and Macrumors). Here, I am going to focus on the changes for developers, especially for you as a Titanium developer!

Here are some of the relevant new features, improvements and other various changes that caught my attention:

Xcode 9, iOS 11 & watchOS 4

As a dedicated fan of Apple Hard- and Software, I am pretty happy about the recent WWDC news. While new Macbooks, iMacs, iPads and iOS 11 itself are tremendous changes for the end-user, there are hundreds of improvements for developers – most of which weren’t even part of the Keynote. Let’s go through the key developer changes, starting with Xcode 9.

Xcode 9

Looking “back” to my Xcode 8 installation (which I am running in parallel to the Xcode 9 Beta – please do not try this at home), I am already pretty satisfied with its features and the mostly stable runtime. Xcode 9 brings some additional features that an iOS engineer can benefit from:

  • Refactored Editor: New editor with improved code-completion and finally Markdown support – although not production-ready so far.
  • Git Integration: Improved source-control / Git integration inside the project navigator.
  • Wireless Debugging: Support for wireless debugging of iOS- and tvOS-apps (yes, we have a ticket for that already ?).
  • New Build System: Apple worked hard to rebuild their whole build system on Swift, achieving better performance and stability.

iOS 11

The iOS 11 changes presented in the WWDC keynote were primarily focused on the changes affecting the end-user, but there are also lots relevant changes and features for developers, like:

  • Machine Learning: With CoreML, Apple provides its own framework for working with machine-learning models. They made liberal use of the “Machine Learning” buzzword throughout the keynote and highlighted that CoreML was already used by many core-components like Siri, Maps and Mail.
  • Augmented Reality: Releasing the new ARKit framework, Apple closes another gap that developers have been waiting for. With ARKit, developers can use existing SpriteKit and SceneKit models to show them in a 2D / 3D space.
  • MusicKit: The MusicKit API is actually a Web-based REST-API that can be called by developers without an external framework-binding. You need an access-token to authorize with the MusicKit API and call it from your app or backend.
  • Drag and Drop: Made primarily for the iPad, you can now Drag and Drop between table-views, custom-views and even different apps using the UIDrag* API.
  • Vision API: Perform advanced image analysis like face- and feature-detection and classification of images and videos. And of course, it uses machine-learning and you can pass CoreML models for your own configuration.
  • NFC Support: Yes, finally. Using iOS 11, you are now able to read NFC-tags with your iOS device. Note that the API currently does not expose writing functionality. See the Core NFC class for more infos on the API.

Check out the Apple Documentation for all new frameworks, features and deprecations.

watchOS 4

This year, the watchOS software iteration mainly includes fine-tuning to align more functionalities to its iOS companion. Here are some interesting changes developers can include using Watch-extensions:

  • SiriKit: Advanced SiriKit support for watchOS using natural language processing (take notes, delete notes, …)
  • Graphics / Media: Support for SceneKit (3D) and SpriteKit (2D) graphics, as well as integration with CloudKit.
  • Background-Modes: Improved background-mode capability including own background-scoped UI and background-audio.

Soooo, Titanium?

Great stuff so far! But how can I as a Titanium developer benefit from all those changes? There are three different ways:

  1. Titanium SDK: Important changes and Xcode 9 build-support will be included in the Titanium SDK-core.
  2. Hyperloop: Use Hyperloop to extend your own application with JavaScript and native iOS 11 API’s. Check out some existing Hyperloop modules on Github
  3. Native Modules: Write custom modules using Objective-C that can be compiled and used inside your Titanium app

Xcode 9 / iOS 11 / watchOS 4 Support

Apple will release the final versions of its software in September (at least they have over the last few years). We are working extremely hard to support Xcode 9, iOS 11 and watchOS 4 on that exact day. The great news? Our latest open source SDK build (6.2.0) already includes the ability to run and test your app with Xcode 9 and iOS 11. Feel free to grab the latest build from our build server or use appc ti sdk install -b master to update to latest master.

There will be additional changes leading up to Apple’s final Xcode / iOS / watchOS release, so feel free to follow our JIRA epic for progress on new features, bug fixes and other relevant changes.

Release Schedule

  • June 7: iOS 11 Beta 1 / Initial Titanium support
  • Late June: Titanium SDK 6.1.1 – focused on bug fixes
  • July / August: Axway Titanium SDK 6.2.0 GA release, early Xcode 9 / iOS 11 / watchOS 4 support
  • September 2017: Final iOS 11 release, stable support for Titanium


We have a busy few months ahead for Titanium SDK as well as for new iOS modules. If you find an issue, we will be more than happy to assist you on JIRA, TiSlack and StackOverflow. If you would like to contribute to the SDK, make sure to read our Contribution Guidelines and file a Pull Request on Github. In a separate post, we’ll go into more detail on the process of forking the SDK, packaging modules, creating pull-request and more.

Code Strong! ?