Microsoft has released an early look at the Windows Bridge for iOS (previously known as ‘Project Islandwood’). While the final release will happen later this fall (allowing the bridge to take advantage of new tooling capabilities that will ship with the upcoming Visual Studio 2015 Update), Microsoft are making the bridge available to the open-source community now in its current state.
Between now and the fall, we’d love more eyes, feedback, and participation on the code, so we’re doing our development “in the open.â€Â
The iOS bridge supports both Windows 8.1 and Windows 10 apps built for x86 and x64 processor architectures, and soon we will add compiler optimizations and support for ARM, which adds mobile support.
This bridge is comprised of four components:
- Objective-C compiler: To enable most of the heavy lifting, Visual Studio will include a compiler that knows how to take Objective-C code and compile it into a native Universal Windows app.
- Objective-C runtime: Additionally, the Objective-C runtime will provide you with language features like message dispatch, delegation and automatic reference counting.
- iOS API headers/libs: Building upon the Objective-C base APIs, the bridge provides fairly broad iOS API compatibility.
- Visual Studio IDE integration: Tooling that imports your Xcode project and ties into the Windows developer tools (Visual Studio 2015) and SDK.
There are three core principles that drove the architecture and design of the bridge:
- Full Windows API access: Making it easy to use Windows APIs within Objective-C code
- iOS compatibility: Empower developers to reuse as much existing iOS code as reasonably possible
- No sandboxing: iOS and Windows APIs should be able to work together
The source code for the iOS bridge is live on GitHub right now.
Meanwhile, the Windows Bridge for Android, or ‘Project Astoria’, is currently still only available as a technical preview by invitation only. Microsoft have been gradually inviting more developers each week and will continue to expand the preview program.