Today, at our annual UnoConf conference we announced several new major advancements and have laid out the vision for Uno Platform in H2 2020 and beyond. Our vision is to enable you to develop pixel-perfect, multi-platform applications using C# and WinUI. The 3.0 release brings us ever so closer to that vision.
Uno Platform 3.0 brings:
- Preview of Uno Platform Linux support, therefore completing our coverage of all most popular target platforms. For those new to Uno Platform, it covers
- Desktop: macOS, Linux, Windows 7 and 10
- Mobile: iOS, Android
- Web: all browsers supported by WebAssembly
- Support for WinUI 3.0 Preview 2, continuing our commitment to you to bring WinUI Everywhere and releasing Uno in lock-step with WinUI releases
- Fluent and Material Design System support. As of today, every time you start building a new Uno app, it will come pre-configured with the Fluent UI design system, available across all platforms, looking the same everywhere – mobile, web or desktop. Also, we are releasing guidance and support for Material design system. You can transform any app into a Material app, by simply switching styles. In both cases, support for Dark and Light themes is built-in.
- Uno Gallery to speed up your development. Uno Gallery is a collection of ready-to-use Fluent and Material code snippets to help speed up your multi-platform development. With Uno Gallery you will be able to quickly check how Uno.Material’s controls and color palette can help you build your app faster. Uno Gallery is available on the Web, Desktop and Mobile so you can experience how the same code works everywhere and see the material and fluent controls in action on the platform you intend to use them at.
- JetBrains Rider Support, completing the list of most popular IDEs used by C# developers. Previously we supported Visual Studio on Windows and Mac, as well as Visual Studio Code.
- Uno Fluent UI Assets
- Many macOS improvements
- Performance Improvements and Benchmarking System
- Windows 7 support via Skia, giving you another option in addition to our already-announced Windows 7 EOL WASM workaround.
- Via one of our community contributors – Introduction to Uno Platform course on Udemy.
You can see detailed list of 3.0 improvements at our GitHub repo – it’s a lengthy one. Thank you all who have contributed to Uno Platform – be it code contribution, user group talk, a blog, course etc – it all helps make Uno be a sustainable open source project.
We will cover our Linux support in more detail in this blog post, while blog detailing other pillars of the release will be released as separate blogs.
Linux Support
You’ll be able to create a template that includes Skia support for Linux using dotnet new templates, using Uno 3.1 latest pre-release nuget packages. To demonstrate that support, we developed an IoT demo application (GitHub soon, Snap) which leverages controls from Microsoft Windows Community Toolkit and runs as a snap on Ubuntu Core on a Raspberry Pi.
Ubuntu Core is a minimal version of Ubuntu that is made up of snaps; secure, confined and easily updatable software packages that make Uno Platform projects easier to ship and support on Linux.
The application mocks a scenario of an IoT device measuring and adjusting a speed of an industrial piece of equipment.
On technical level, at compile time, Uno Platform parses XAML files into C# code to build the app’s visual tree, then renders it using SkiaSharp. It implements a complete DataBinding engine, optimized for static type-checking where possible. Lastly it implements the views and controls in the WinUI / UWP framework, using each platform’s native UI framework as a basis.
To demonstrate support for Linux we developed an IoT application which leverages controls from Microsoft Windows Community Toolkit and runs on Raspberry Pi. The application mocks a scenario of an IoT device measuring and adjusting a speed of an industrial piece of equipment. You can read more about our work with Ubuntu team, how to deploy snaps and work with IoT appliances at Ubuntu team blog.
Next Steps & How To Upgrade
To upgrade to latest release of Uno Platform please update your packages to 3.0 via your Visual Studio NuGet package manager! If you are new to Uno Platform, the best way to get started is following our official getting started guide.
In coming days we will release few more blog posts detailing the release in more depth.
If you’d like to re-live the Uno Platform 3.0 Keynote Announcement, here it is
Jerome Laban
CTO, Uno Platform