Last month, Microsoft updated its Windows Bridge for iOS - an open source tool to port iOS apps to Windows - with new features as well as integration with CoreFoundation. Now, the company has outlined its plans on how it wants to improve the tool for developers, with the addition of new features as well as improvements to existing ones.
According to the company, developers have been requesting complete API coverage from Microsoft's implementation of UIKit. It's difficult to modify UIKit completely, and not feasible especially when Windows allows the same functionality via XAML which has been available since day one. However, Microsoft recognizes the issue and has now decided to formulate a clear method to migrate UIKit-based UIs to XAML. Subsequently, Project Islandwood will sport the following improvements from now on:
- Faster bring up of iOS controls, so more of UIKit is available to you
- An improved touch-input model for more performant event handling
- Much improved support for accessibility and localization
- Better test automation, resulting in more stable and high-quality controls
- Much improved integration with and leveraging of Windows’ UI framework, XAML
Additionally, Microsoft has also noted some flaws in its implementation of UIKit, which is different from Apple's first-party one. The company states that this resulted in partially-implemented classes as well as "incomplete support for basic use cases and scenarios". Microsoft went on to say that:
This proved extremely frustrating for our users, as it was difficult to tell at a glance what worked and what didn’t. We’ve worked to mitigate the problem over the last year by thoroughly annotating the iOS bridge code base – marking every method and every property as fully interoperable, partially implemented or not supported – but the fundamental problem of a fragmented and incomplete feature set persisted. It simply wasn’t clear what would and wouldn’t work.
Microsoft has outlined its plans for what's next for Project Islandwood as well, stating that its team will continue to preserve the UIKit functionality as much as it can while benefiting from features that already exist on Windows. According to the company:
This approach offers a number of advantages. For one, it greatly reduces the amount of work it takes to bring up on Windows the UIKit classes iOS developers depend on. For another, it dramatically increases what the bridge is able to offer in terms of accessibility and localization, not to mention performance, stability, and polish. Lastly, the new approach allows us to take advantage of test automation designed for XAML, which will help to raise the quality bar of our UI frameworks and prevent regressions.
With that being said, the move does have a few drawbacks. Perfectly recreating all of UIKit's functionality will no longer be possible. But the company will try to map as much of UIKit's functionality to the corresponding XAML behavior, while improving on the latter, where possible. Microsoft has cautioned that while it will work hard to preserve iOS paradigms and behavior, not every property will be mapped to Windows. Regardless, the company still feels that the "net benefits are well worth the tradeoffs."
To that end, the Redmond giant is also introducing a new tool called "Xib2Xaml", which will convert Storyboard and XIB files created in Xcode's Interface Builder into XAML files compatible on Windows so that they can be directly edited in Visual Studio. As always, Microsoft has posted documents outlining the changes in UI on GitHub and has requested developers to open an issue on the same site to voice their thoughts on the changes.