
Uno
Open Source Alternative to .Net MauiREAMDE.md
Pixel-Perfect. Multi-Platform. C# & Windows XAML. Today.
What is the Uno Platform?
The Uno Platform is an Open-source platform for building single codebase native mobile, web, desktop, and embedded apps quickly.
It allows C# and WinUI XAML and/or C# code to run on all target platforms, while allowing you to control every pixel. It comes with support for Fluent, Material, and Cupertino design systems out of the box. Uno Platform implements a growing number of the WinUI APIs, such as Microsoft.UI.Xaml to build your UI, and WinRT to get cross platform access to non-UI APIs (sensors, file system, devices, etc...), to enable WinUI applications to run on all platforms with native performance.
It allows you to leverage your familiar IDE and enhance your productivity with our XAML/C# Hot Reload features and Hot Design, to design and run your application on iOS, Android, macOS, Windows, Linux, and WebAssembly.
Visit our documentation for more details.
Getting Started
See the complete Getting Started guides for starting with Visual Studio, Visual Studio Code, or JetBrains Rider.
For a larger example and features demo:
- Visit the Uno Gallery repository.
- Try the WebAssembly Uno Playground live in your browser.
Uno Platform Features
- Supported platforms:
- Windows 10 and Windows 11
- Windows 7 (via Skia Desktop)
- macOS (via Skia Desktop)
- iOS and Android (via .NET)
- WebAssembly through the .NET Runtime WebAssembly SDK
- Linux (via Skia Desktop with X11 and FrameBuffer)
- Dev loop:
- Develop on your favorite IDE (Visual Studio, Rider, or VS Code) on your favorite OS (Windows, macOS, or Linux)
- XAML and/or C# Hot Reload for WebAssembly, macOS, Linux, Windows, iOS, and Android
- Uno.UITest, a library to create Cross-Platform UI Tests for WebAssembly, iOS, and Android.
- Cross Platform Controls:
- WinUI Code Support:
- Responsive Design:
- Platform Specific:
- Native controls and properties via conditional XAML
- Any of the existing Xamarin iOS/Android libraries available
Live WebAssembly Apps
Here's a list of live apps made with the Uno Platform for WebAssembly.
- The Uno Platform Playground (Source).
- The Uno Gallery demonstrates the use of Fluent and Material guidelines.
- The NuGet Package Explorer (Source).
- The Uno Calculator, a simple yet powerful iOS/Android/WebAssembly C# port of the calculator that ships with Windows (Source). Also try the iOS version, the Android version and Linux version.
- The Community Toolkit Labs App
- 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.RoslynQuoter, a Roslyn based C# analysis tool (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.
- A WebAssembly 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, create an issue, open a GitHub Discussion or visit our Discord Server - where our engineering team and community will be able to help you.
Contributing
There are many ways that you can contribute to the Uno Platform, as the WinRT and WinUI APIs are pretty large! Read our contributing guide to learn about our development process and how to propose bug fixes and improvements. Come visit us on Discord for help on how to contribute!
Contribute to Uno in your browser using GitPod.io, follow our guide here.
Contributors
Thanks go to these wonderful people (List made with contrib.rocks):
💖 Thank you.