Uno Platform 3.1 Released – Linux, new WinUI controls, Prism 8.0 and more

The 3.1 release is our 6th release in 2020! In our 2019 survey you had asked us to release more often and we hope we have delivered. In 2019, we had a total of 4 releases and in 2020 we are already up to 6 releases. We hope to have at least one more release by the end of the year.

The 3.1 release is special not only because of the new scenarios it unlocks, but also because of significant community contributions we are able to ship – thanks a lot to @robloo , @DanJSiegel and @MartinZikmund for your contributions.

For 3.1 release we were able to add 70+ features and close 140+ code and documentation issues. Let’s unpack the release. And for all of you inpatient ones, head over to your IDE and update your packages to 3.1!

Uno Platform for Linux

Originally announced at UnoConf 3.0, the first preview release of the Linux and Windows 7 support using a new Skia rendering backend is here. Follow our documentation on how to create a new project with these new targets. We’ve already started using it on the Uno Calculator for Linux, and it’s looking great!

WinUI TreeView and TabView

The WinUI 2.x TabView (Skia and WASM only, other platforms coming soon) and TreeView (All Platforms) controls (Thanks @MartinZikmund). The TreeView control was a big community ask, particularly for desktop scenarios. Here they are both in Dark and Light mode.

 

Here are some code samples for the TabView and TreeView controls, straight from the Microsoft documentation’s samples which you can reuse as-is in your multiplatform application built with Uno Platform:

<Page
...
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
...
>
  <muxc:TabView HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <muxc:TabViewItem Header="Home" IsClosable="False">
      <muxc:TabViewItem.IconSource>
        <muxc:SymbolIconSource Symbol="Home" />
      </muxc:TabViewItem.IconSource>
    </muxc:TabViewItem>
    <muxc:TabViewItem Header="Document 1">
      <muxc:TabViewItem.IconSource>
        <muxc:SymbolIconSource Symbol="Document" />
      </muxc:TabViewItem.IconSource>
    </muxc:TabViewItem>
  </muxc:TabView>
</Page>

<Page ... 
  xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
  ... >

  <muxc:TreeView>
    <muxc:TreeView.RootNodes>
       <muxc:TreeViewNode Content="Flavors"
                          IsExpanded="True">
         <muxc:TreeViewNode.Children>
           <muxc:TreeViewNode Content="Vanilla"/>
           <muxc:TreeViewNode Content="Strawberry"/>
           <muxc:TreeViewNode Content="Chocolate"/>
         </muxc:TreeViewNode.Children>
      </muxc:TreeViewNode>
    </muxc:TreeView.RootNodes>
  </muxc:TreeView>
</Page>

WinUI Color Picker

Another great community contribution to add support for WinUI ColorPicker support (iOS/Android) (Thanks @robloo) to enable an advanced picking of colors in an application.

Prism 8.0 Templates

The Prism Library team has recently published its 8.0 release, and @DanJSiegel has contributed to Uno for the templates to use this new release.
Head to our documentation to create your Prism app using Uno Platform!

The Best of the Rest

This new release brings lots of bug fixes, and very nice features among which you will find:
• Improvements to the VSIX/dotnet new updates, such as new item templates in the VS, .vsconfig support to suggest VS missing features to install, and Skia/Linux templates.
• The support for StorageFile.GetFileFromApplicationUriAsync, to use large assets packaged with the application, something particularly useful in the WebAssembly context.
• ScrollViewer XAML ScrollBars for WebAssembly and Skia
• WebAssembly support for Canvas.ZIndex
• Support for x:Bind plain C# objects bindings, as well as Bindings.Update()
• Windows.Globalization.Calendar updates, paving the way for Date and Time pickers
• FolderPicker support for macOS (Thanks @MartinZikmund)
• BadgeNotifications for Android and iOS (Thanks @MartinZikmund)
• Page supports background brushes
• Fixes for NavigationView navigation items binding
Voice over support for WebAssembly

You can head over to GitHub for the complete release notes.

For those new to Uno Platform – it allows for creation of pixel-perfect, single-source C# and XAML apps which run natively on Windows, iOS, Android, macOS, Linux and Web via WebAssembly. Uno Platform is free, Open Source (Apache 2.0) and available on GitHub.

Next Steps

If you are new to Uno Platform, you should go through our Getting Started tutorial. And if you are already using Uno please update your packages to 3.1!

 

Jerome Laban, CTO, Uno Platform

Share this post:
We’re excited for you to join us very soon for UnoConf 2021Register Today to Save Your Spot