Trying to develop a cross-platform app with a decent UI in any .NET language is hard. There’s never been an optimal way to deploy everywhere and while attempts have been made to provide usable libraries, they’re all works in progress. Even Microsoft’s Xamarin.Forms is mobile-only. That, however, will change with version 3.0, with Microsoft promising support for Windows, macOS and Linux.
First, let’s get the bad news out of the way. Going by a post about the new offering by Microsoft’s David Ortinau, 3.0 won’t strictly be a native solution, requiring GTK# for non-Windows operating systems. Which makes sense, but something closer to the metal would have been preferable.
Otherwise, things are looking good. With the acquisition of Mono by Microsoft and the company’s work on the OS-agnostic .NET Core, the lack of a “built-in” UI framework is by far the platform’s biggest weakness in terms of adoption (though API fragmentation is a significant concern).
Microsoft is also making under-the-hood changes to improve Xamarin.Forms performance on existing platforms:
- Control Renderers: we continue our work on what we appropriately call Fast Renderers. These refactored renderers avoid creating many intermediate objects and achieve much better performance.
- Layout Compression: when enabled, we optimize your layout at compile time to improve rendering speed and minimize memory usage.
- Binding System: we’re introducing one-time binding mode.
- Flexibility: the popular Web layout system is coming to Xamarin.Forms. We’re introducing a FlexLayout system for building adaptive layouts and implementing a Visual State Manager.
- Styling: we’re polishing up a CSS-inspired styling implementation that’s requested often. You can continue to style your applications as you do today, and if you’re a fan of CSS styling, it will now be a powerful option for you.
It’s hard to say if Xamarin.Forms will become the defacto UI library for .NET, but it’s something that should have had attention paid to it the moment Microsoft decided to pursue .NET outside of the Windows ecosystem.
Glimpse the Future of Xamarin Forms 3.0 [Xamarin]