The Uno Platform (Pronounced 'Oono' or 'Ouno') is a Universal Windows Platform Bridge that allows UWP-based code (C# and XAML) to run on iOS, Android, macOS, WebAssembly, Linux and Windows 7. It provides the full definitions of the UWP Windows 10 2004 (19041), and the implementation of a growing number of parts of the UWP API, such as Windows.UI.Xaml, to enable UWP and WinUI applications to run on these platforms.
Use the UWP/WinUI tooling from Windows in Visual Studio, such as XAML Hot Reload and C# Edit and Continue, build your application as much as possible on Windows, then validate that your application runs on iOS, Android, macOS and WebAssembly.
Visit our documentation for more details.
- Visual Studio 2019 with:
- Universal Windows Platform component installed.
- Xamarin component installed (for Android and iOS development).
- ASP.NET/web component installed, along with .NET Core 2.2 or later (for WASM development).
To easily create a multi-platform application:
- Install the Uno Solution Template Visual Studio Extension.
- Create a new C# solution using the Cross-Platform App (Uno Platform) template, from Visual Studio's Start Page.
See the complete Getting Started guide for more information.
For a larger example and features demo:
- Visit the Uno Gallery and Playground repository.
- Try the WebAssembly Uno Playground live in your browser.
- Supported platforms:
- Windows 10 (via the standard UWP Toolkit)
- Windows 7 (via Skia)
- iOS, macOS and Android (via Xamarin)
- WebAssembly through the Mono Wasm SDK
- Linux through Skia
- Dev loop:
- Develop on Windows first using Visual Studio
- XAML Edit and Continue for live XAML edition on each keystroke
- C# Edit and Continue
- Validate on other platforms as late as possible
- Experimental XAML Hot Reload for WebAssembly, iOS and Android
- Uno.UITest, a library to create Cross-Platform UI Tests for WebAssembly, iOS and Android.
- Cross Platform Controls:
- UWP Code Support:
- Responsive Design:
- Platform Specific:
- Native controls and properties via conditional XAML
- Any of the existing Xamarin iOS/Android libraries available
- Xamarin.Forms Renderers:
Here's a list of live apps made with the Uno Platform for WebAssembly.
- The Uno Platform Playground (Source).
- The Uno Gallery demonstrating the use of Fluent and Material guidelines.
- The Uno Calculator, a simple yet powerful iOS/Android/WebAssembly C# port of the calculator that ships with Windows (Source). Also try the pink theme, the iOS version or the Android version.
- The Ch9 sample educational application.
- The Xaml Controls Gallery (Source).
- SkiaSharp fork for the Uno Platform, Skia is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library (Source).
- The Uno.WindowsCommunityToolkit (Source).
- The Uno.Lottie, a sample that uses the AnimatedVisualPlayer (Source).
- The Uno.RoslynQuoter, a Roslyn based C# analysis tool (Source).
- The Uno.BikeSharing360 App, a Xamarin.Forms app running on top of Uno for WebAssembly (Source).
- The Uno.WindowsStateTriggers App, a demo of the Morten's WindowsStateTriggers (Source).
- The SQLite + Entity Framework Core App, a demo of the combination of Roslyn, Entity Framework Core, SQLite and the Uno Platform to manipulate an in-browser database.
- The Uno.WebSockets App, a demo of System.Net.WebSocket running from WebAssembly (Source).
- A mono-wasm AOT RayTracer.
Let us know if you've made your app publicly available, we'll list it here!
Make sure to visit our FAQ, StackOverflow, create an issue.
There are many ways that you can contribute to the Uno Platform, as the UWP API is pretty large! Read our contributing guide to learn about our development process and how to propose bug fixes and improvements. Come visit us on our visit our Discord Channel #uno-platform for help on how to contribute!
Contribute to Uno in your browser using GitPod.io, follow our guide here.
Thanks goes to these wonderful people (emoji key):
💖 Thank-you.