Introduction
Uno Platform is an open-source framework that extends the WinUI and WinAppSDK APIs to run on iOS, Android, macOS, Linux, and WebAssembly. Developers write C# and XAML once and deploy pixel-perfect applications to every major platform while preserving access to native platform APIs when needed.
What Uno Platform Does
- Implements the WinUI 3 / WinAppSDK API surface on non-Windows platforms for true code sharing
- Renders UI via Skia on most targets, ensuring pixel-perfect consistency across operating systems
- Supports WebAssembly output so the same app runs in a browser without plugins
- Provides access to native platform APIs through conditional compilation and platform-specific code paths
- Integrates with the standard .NET build chain, NuGet, and Visual Studio / Rider tooling
Architecture Overview
Uno Platform implements the UWP/WinUI XAML stack on top of platform-specific renderers. On Windows it delegates to the native WinUI runtime. On other platforms it uses a Skia-based rendering backend that draws the full XAML visual tree to a GPU canvas, producing identical output everywhere. The framework maps XAML controls to the same layout engine and data-binding runtime regardless of target, and exposes platform interop through partial classes and conditional compilation.
Self-Hosting & Configuration
- Install templates with
dotnet new install Uno.Templatesand scaffold usingdotnet new unoapp - Select target platforms during project creation: Desktop, Mobile, Web, or all
- Configure platform heads in the solution: each target has a thin project referencing the shared UI library
- Set up iOS and Android builds through .NET MAUI workloads or Xcode/Android SDK directly
- Customize themes via WinUI resource dictionaries and Uno's Fluent/Material/Cupertino theme packages
Key Features
- WinUI API compatibility: existing WinUI knowledge and controls transfer directly
- Hot Reload support for XAML and C# changes across all platforms during development
- Skia renderer ensures the UI looks identical on every OS, eliminating per-platform visual bugs
- Figma-to-XAML plugin for converting design files directly into Uno Platform views
- C# Markup extensions available as an alternative to XAML for code-first UI definition
Comparison with Similar Tools
- WinUI / WinAppSDK — Windows-only; Uno extends the same API to six additional platforms
- MAUI — Microsoft's cross-platform framework with native renderers; Uno uses Skia for pixel-perfect consistency
- Avalonia — WPF-inspired cross-platform XAML; Uno follows the WinUI API surface specifically
- Flutter — Dart-based with custom rendering; Uno targets C#/.NET developers and the Windows ecosystem
- React Native — JS bridge to native views; Uno compiles to native .NET code with no bridge overhead
FAQ
Q: Can I use existing WinUI or UWP libraries with Uno? A: Many WinUI libraries work directly. Uno maintains API parity for the most common controls and APIs; check the compatibility matrix for specifics.
Q: Is the WebAssembly target production-ready? A: Yes. Uno's WASM target ships .NET AOT-compiled applications that run in any modern browser with good performance.
Q: How does Uno handle platform-specific features like notifications or biometrics?
A: Use conditional compilation (#if __IOS__, #if __ANDROID__) or Uno's platform-specific extension APIs to access native functionality.
Q: What is the licensing model? A: Uno Platform is Apache 2.0 licensed and free for all use. Commercial support plans are available optionally.