Uno Platform - Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today.
What is the Uno Platform
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, and WebAssembly. It provides the full definitions of the UWP Windows 10 October 2018 Update (17763), and the implementation of a growing number of parts of the UWP API, such as Windows.UI.Xaml, to enable UWP applications to run on these platforms.
Use the UWP tooling from Windows in Visual Studio, such as XAML Edit and Continue and C# Edit and Continue, build your application as much as possible on Windows, then validate that your application runs on iOS, Android and WebAssembly.
Visit our documentation for more details.
Getting Started
Prerequisites
- Visual Studio 2017 15.5 or later, 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 (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
Uno Features
- Supported platforms:
- Windows (via the standard UWP Toolkit)
- iOS and Android (via Xamarin)
- WebAssembly through the Mono Wasm SDK
- Dev loop
- Develop on Windows first using Visual Studio
- XAML Edit and Continue for live XAML edition on each key stroke
- 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
Live WebAssembly Apps
Here's a list of live apps made with the Uno Platform for WebAssembly.
- The Uno Platform Playground (Source)
- 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 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!
Have questions? Feature requests? Issues?
Make sure to visit our FAQ, StackOverflow, create an issue or visit our gitter.
Contributing
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.
Contributors
Thanks goes to these wonderful people (emoji key):