# Uno
**Repository Path**: tomgee/Uno
## Basic Information
- **Project Name**: Uno
- **Description**: The Uno Platform, the UWP bridge for iOS, Android, and WebAssembly
- **Primary Language**: C#
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2020-06-02
- **Last Updated**: 2024-05-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today.
[](https://gitpod.io/#https://github.com/unoplatform/uno)
[](https://uno-platform.visualstudio.com/Uno%20Platform/_build?definitionId=5)
[](https://uno-platform.visualstudio.com/Uno%20Platform/_build?definitionId=5)
[](https://uno-platform.visualstudio.com/Uno%20Platform/_build?definitionId=5)
[](https://dependabot.com)
[](https://gitter.im/uno-platform/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[](https://twitter.com/unoplatform)
[](https://github.com/unoplatform/uno/stargazers/)
[](https://www.nuget.org/packages/uno.ui)
[](#contributors)
[](https://github.com/unoplatform/uno/blob/master/CONTRIBUTING.md)
# 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](https://www.visualstudio.com/), such as [XAML Edit and Continue](https://blogs.msdn.microsoft.com/visualstudio/2016/04/06/ui-development-made-easier-with-xaml-edit-continue/) and [C# Edit and Continue](https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-use-edit-and-continue-csharp), build your application as much as possible on Windows, then validate that your application runs on iOS, Android and WebAssembly.
Visit [our documentation](doc/articles/intro.md) for more details.
# Getting Started
## Prerequisites
* [**Visual Studio 2017 15.5 or later**](https://visualstudio.microsoft.com/) 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](https://marketplace.visualstudio.com/items?itemName=nventivecorp.uno-platform-addin).
* Create a new C# solution using the **Cross-Platform App (Uno Platform)** template, from Visual Studio's **Start Page**.
See the complete [Getting Started](https://platform.uno/docs/articles/get-started.html) guide for more information.
For a larger example and features demo:
* Visit the [Uno Gallery and Playground](https://github.com/unoplatform/uno.Playground) repository.
* Try the [WebAssembly Uno Playground](https://playground.platform.uno) live in your browser.
# Uno Features
* Supported platforms:
* Windows (via the standard UWP Toolkit)
* iOS and Android (via [Xamarin](https://www.visualstudio.com/xamarin/))
* WebAssembly through the [Mono Wasm SDK](https://github.com/mono/mono/blob/master/sdks/wasm/README.md)
* Dev loop:
* Develop on Windows first using Visual Studio
* [XAML Edit and Continue](https://blogs.msdn.microsoft.com/visualstudio/2016/04/06/ui-development-made-easier-with-xaml-edit-continue/) for live XAML edition on each keystroke
* [C# Edit and Continue](https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-use-edit-and-continue-csharp)
* Validate on other platforms as late as possible
* Experimental XAML Hot Reload for WebAssembly, iOS and Android
* [Uno.UITest](https://github.com/unoplatform/Uno.UITest), a library to create Cross-Platform UI Tests for WebAssembly, iOS and Android.
* Cross Platform Controls:
* [Control Templating](https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/control-templates)
* [Data Templating](https://code.msdn.microsoft.com/Data-Binding-in-UWP-b5c98114)
* [Styling](https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/xaml-styles)
* [Rich Animations](https://docs.microsoft.com/en-us/windows/uwp/design/motion/xaml-animation)
* UWP Code Support:
* [Windows Community Toolkit](https://github.com/unoplatform/uno.WindowsCommunityToolkit)
* [MVVM Light Toolkit](https://github.com/unoplatform/uno.mvvmlight)
* [Microsoft XAML Behaviors](https://github.com/unoplatform/uno.XamlBehaviors)
* [Prism](https://github.com/unoplatform/uno.Prism)
* [SkiaSharp](https://github.com/unoplatform/Uno.SkiaSharp)
* [SkiaSharp.Extended](https://github.com/unoplatform/Uno.SkiaSharp.Extended)
* [MVVMCross](https://www.mvvmcross.com/) (soon)
* [ReactiveUI Official](https://github.com/reactiveui/ReactiveUI/pull/2067)
* [WindowsStateTriggers](https://github.com/unoplatform/uno.WindowsStateTriggers)
* [Xamarin.Forms for UWP](https://github.com/unoplatform/uno.Xamarin.Forms), [NuGet](https://www.nuget.org/packages/ReactiveUI.Uno)
* [Rx.NET](https://github.com/reactiveui/Reactive.Wasm)
* [ColorCode-Universal](https://github.com/unoplatform/uno.ColorCode-Universal)
* [LibVLCSharp](https://github.com/videolan/libvlcsharp)
* Any UWP project
* Responsive Design:
* [Visual State Manager](https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.VisualStateManager)
* [State Triggers](https://blogs.msdn.microsoft.com/mvpawardprogram/2017/02/07/state-triggers-uwp-apps/)
* [Adaptive Triggers](https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.AdaptiveTrigger)
* Platform Specific:
* Native controls and properties via [conditional XAML](doc/articles/using-uno-ui.md#supporting-multiple-platforms-in-xaml-files)
* Any of the existing Xamarin iOS/Android libraries available
* Xamarin.Forms Renderers:
* [Uno Platform WebAssembly Renderers for Xamarin.Forms](https://github.com/unoplatform/Uno.Xamarin.Forms.Platform)
# Live WebAssembly Apps
Here's a list of live apps made with the Uno Platform for WebAssembly.
* The [Uno Platform Playground](https://playground.platform.uno) ([Source](https://github.com/unoplatform/uno.Playground)).
* The [Uno Calculator](https://calculator.platform.uno), a simple yet powerful iOS/Android/WebAssembly C# port of the calculator that ships with Windows ([Source](https://github.com/unoplatform/calculator)). Also try the [pink theme](https://calculator.platform.uno/?theme=pink), the [iOS version](https://apps.apple.com/app/id1464736591) or the [Android version](https://play.google.com/store/apps/details?id=uno.platform.calculator).
* The [Xaml Controls Gallery](https://xamlcontrolsgallery.platform.uno/) ([Source](https://github.com/unoplatform/uno.Xaml-Controls-Gallery)).
* [SkiaSharp fork for the Uno Platform](https://skiasharp-wasm.platform.uno/), Skia is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library ([Source](https://github.com/unoplatform/Uno.SkiaSharp)).
* The [Uno.WindowsCommunityToolkit](https://windowstoolkit-wasm.platform.uno/) ([Source](https://github.com/unoplatform/uno.WindowsCommunityToolkit)).
* The [Uno.Lottie](https://lottie.platform.uno/), a sample that uses the [AnimatedVisualPlayer](https://docs.microsoft.com/en-us/uwp/api/microsoft.ui.xaml.controls.animatedvisualplayer) ([Source](https://github.com/unoplatform/uno.LottieSample)).
* The [Uno.RoslynQuoter](https://roslynquoter-wasm.platform.uno/), a [Roslyn](https://github.com/dotnet/roslyn) based C# analysis tool ([Source](https://github.com/unoplatform/uno.RoslynQuoter)).
* The [Uno.BikeSharing360 App](http://bikerider-wasm.platform.uno/), a Xamarin.Forms app running on top of Uno for WebAssembly ([Source](https://github.com/unoplatform/uno.BikeSharing360_MobileApps)).
* The [Uno.WindowsStateTriggers App](http://winstatetriggers-wasm.platform.uno/), a demo of the [Morten's WindowsStateTriggers](https://github.com/dotMorten/WindowsStateTriggers) ([Source](https://github.com/unoplatform/uno.WindowsStateTriggers)).
* The [SQLite + Entity Framework Core App](https://sqliteefcore-wasm.platform.uno), a demo of the combination of [Roslyn](https://github.com/dotnet/roslyn), [Entity Framework Core](https://docs.microsoft.com/en-us/ef/core/), [SQLite](https://github.com/unoplatform/uno.SQLitePCLRaw.Wasm) and the Uno Platform to manipulate an in-browser database.
* The [Uno.WebSockets App](https://websockets-wasm.platform.uno), a demo of System.Net.WebSocket running from WebAssembly ([Source](https://github.com/unoplatform/uno.Wasm.WebSockets)).
* A [mono-wasm AOT RayTracer](https://raytracer-mono-aot.platform.uno/).
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](doc/articles/faq.md), [StackOverflow](https://stackoverflow.com/questions/tagged/uno-platform), [create an issue](https://github.com/unoplatform/uno/issues).
# Contributing
There are many ways that you can contribute to the Uno Platform, as the UWP API is pretty large! Read our [contributing guide](CONTRIBUTING.md) to learn about our development process and how to propose bug fixes and improvements. Come visit us on our [visit our Gitter](https://gitter.im/uno-platform/Lobby) for help on how to contribute!
Contribute to Uno in your browser using [GitPod.io](https://gitpod.io), follow [our guide here](doc/articles/features/working-with-gitpod.md).
[](https://gitpod.io/#https://github.com/unoplatform/uno)
# Contributors
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
π Thank-you.