How It Works

With Uno Platform, you can empower your existing .NET teams to build pixel-perfect, single-codebase, multi-platform web, mobile and desktop apps.

High Level Architecture

On iOS, Android and macOS, the Uno Platform relies on the current Xamarin Native stack (not Xamarin.Forms), which will be a part of the future .NET 5 / .NET 6.

On WebAssembly, the Uno Platform relies directly on the Mono-WASM runtime, a part of.NET 5.

On Linux, Uno Platform relies on Skia to draw the UI on canvas.

In the end, Uno Platform provides you with the ability to run single codebase, C# and XAML apps on all these platforms.

WinUI and Uno Platform - Better Together

Uno Platform acts a bridge for WinUI and UWP apps to run natively on iOS, macOS, Android, Linux and WebAssembly.

You can run your C# and XAML source code unmodified and compile it on a different platform yet have it behave the same at runtime.

In turn, you as a developer automatically benefit from decades of Windows ecosystem investment in responsive design, security, accessibility and more.

WinUI

WinUI is the future of building applications for Windows and is a successor to great technologies such as WinForms, WPF and UWP. The Windows developer ecosystem has a great ecosystem of 1st and 3rd party components and is familiar to hundreds of thousands of C# and XAML developers who want to leverage that exact same skillset to build not only future Windows applications but also apps for iOS, Android, macOS, Web and Linux.

In our opinion, there's no point on trying to reinvent the wheel either from UI framework point of view, or from ecosystem components view which is why we chose to extend WinUI(and UWP) built applications to mobile, non-Windows desktops and the Web.

Pixel Perfect Everywhere

Maintain pixel-perfect control over where pixels go while a having a choice of developing platform-specific or custom look and feel of your app.

Read More

Native Performance on iOS, macOS and Android

Uno Platform-based applications on iOS, Android and macOS have exact same, native, performance as any other Xamarin-based application.

No Dependency on Xamarin.Forms

Uno Platform and Xamarin.Forms are similar as they both use the underlying Xamarin “Classic” as runtime engine. However, Uno Platform does not build on top of Xamarin.Forms, which is a common misconception about Uno Platform.

When we say that Uno Platform builds top of Xamarin, we mean the ‘initial’ Xamarin runtime (Xamarin.iOS, Xamarin.Android , Xamarin.macOS to support iOS, Android and macOS platforms respectively) or what is commonly referred to Xamarin Native or Xamarin Classic.

While Uno Platfom is different from Xamarin.Forms, Uno Platform renderers for Xamarin.Forms can also just extend Xamarin. Forms apps to Web. See more.

Uno Web Applications in all Browsers via WebAssembly

For Web Apps your application is built using your choice of Visual Studio or Visual Studio Code.

The application is then transformed into a static website though the Uno Web Boostrapper, which uses
mono-wasm to run the C# code in the browser.

Why WebAssembly?

WebAssembly allows non-JavaScript code to run in the browser and is one of the four ‘languages’ endorsed by W3C. In turn, Uno Platform uses WebAssembly to run traditional Windows apps in the browser, which provides enormous productivity gains via code and skill reuse.

Uno Platform is one of the pioneers of WebAssembly (WASM) users in traditional Microsoft ecosystem, being the first to market to enable Ahead-of-Time (AOT) and porting many traditional Windows-based apps and developer productivity tools to the Web.

Deploying Uno Platform-built Applications

For iOS, macOS and Android, your apps can be deployed like any regular app, through the Apple App Store and Google Play Store. You can also deploy Uno Platform built apps as PWAs.

For WebAssembly, it can be deployed using GitHub Pages, Azure Web Apps, Azure Static Web Sites, or any other static website hosting provider and CDNs.

Responsive Design

Responsive design is a must-have for any UI framework. With UNO Platform you get out-of-the-box support for: Visual State Manager, State Triggers, Adaptive Triggers and more, allowing you to develop responsive applications quickly.

SkiaSharp

You can use Uno Platform to take advantage of SkiaSharp-enabled fast drawing times, high performance, visual layouts and you will be able to create any element or animation you need, without platform-specific UI restrictions.  SkiaSharp for Mobile and SkiaSharp.Extended for WebAssembly are fully supported. Read more at Rendering Page.