Uno Platform is an open-source developer platform for building single-codebase .NET applications that run natively on Web, Desktop, Mobile, and Embedded systems. It uses the WinUI 3 API surface, allowing you to reuse your existing C# and XAML skills to reach all platforms.
Uno Platform is trusted by over 300 contributors and used by enterprise clients such as Toyota, Microsoft, and Kahua for mission-critical applications. With ~10,000 GitHub stars and 130+ million NuGet downloads, it is a proven foundation for professional-grade development.
The free and open-source (Apache 2.0) foundation for building cross-platform .NET applications. It includes the UI framework, platform heads, and a rich set of developer experience enhancements.
Develop fully native applications for a wide range of platforms from a single codebase.
- Mobile (iOS & Android): Build native, pixel-perfect UIs with C# and XAML.
- Web (WebAssembly): Reuse existing C# and XAML skills to build fast web applications.
- Desktop (Windows, macOS & Linux): Uno Platform uses Skia for rendering across all desktop platforms, ensuring high-performance, hardware-accelerated graphics and animations. On Windows, Skia runs within a Win32 shell, on macOS within an AppKit shell (Metal when available), and on Linux within an X11 shell or directly to the Framebuffer for embedded scenarios.
- UI Controls: Access hundreds of UI components from WinUI, Windows Community Toolkit, Uno Toolkit, third-party vendors, and even .NET MAUI controls.
- Theming: Easily theme your app with Material, Fluent, or Cupertino styles using minimal code.
- State Management: Choose between the familiar MVVM pattern or the modern MVUX approach for declarative and scalable state management.
- Extensions: Utilize ready-to-use libraries for common functionalities like navigation, logging, and dependency injection.
- Non-UI Cross-Platform APIs: Access a comprehensive set of APIs to interact with native device features such as sensors and secure storage.
An optional premium toolkit that integrates with Visual Studio, VS Code, and JetBrains Rider to offer an unparalleled development loop.
- Hot Design: A next-generation visual designer that transforms your live app into a design surface with a single click.
- Hot Reload: Instantly modify XAML and C# on a running app, allowing for rapid iteration without losing the app's state.
- Design-to-Code: Export Figma designs to clean, responsive XAML or C# markup in seconds.
Get your development environment ready and create your first app in minutes.
-
Check Your Environment: Use our Uno.Check command-line tool to automatically check, install, and configure all required workloads and dependencies.
-
Create Your App: Use the Template Wizard in your IDE or the command line to quickly create and configure new Uno Platform projects with the appropriate settings for your target platforms.
-
Build and Run
β‘οΈ For detailed guides, visit the Official Uno Platform Documentation on how to get started with Uno Platform.
Uno Platform unifies cross-platform development by abstracting platform-specific implementations behind the WinUI 3 API surface.
- Develop: You write your application in a single project using C# and XAML (or C# Markup) within your preferred environment (Visual Studio, JetBrains Rider, Visual Studio Code) on Windows, macOS, or Linux.
- Render: Uno Platform renders your UI using one of two methods:
- Unified Skia Rendering: A Skia-based engine draws your UI on a canvas, ensuring consistent performance, smooth animations, and pixel-perfect visuals across all targets.
- Native Rendering: The XAML UI is translated into native platform controls (e.g., UIKit on iOS), providing a platform-native look and feel when desired.
- Deploy: The build process generates a native application package for each target platform from the single codebase.
- 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:
- Adaptive Triggers
- Platform Specific:
- Native controls and properties via conditional XAML
- Any of the existing Xamarin iOS/Android libraries available
- Official Documentation: The complete guide to Uno Platform.
- Uno Platform Studio: Details for the set of productivity tools Uno Platform Studio, that includes:
- Uno Playground: Experiment with code snippets and see live previews.
- Uno Gallery: Explore various UI themes and components in action.
- Workshops & Code Samples: Access practical tutorials and sample projects to accelerate learning.
- Case Studies: Learn from real-world applications built using the Uno Platform.
- Uno Platform Blog: The latest news, technical deep-dives, and release announcements.
- Discord Server: Join our active community for real-time discussions and support.
- Uno Tech Bites: Bite-sized learning videos with the team.
- Why Use Uno Platform for Your Project?: Discover the key benefits and reasons to choose Uno Platform.
- General FAQ: Find answers to common questions about Uno Platform.
This is an active open-source project, and we welcome contributions from the community.
To learn how you can get involved, please refer to our Contribution Guide (CONTRIBUTING.md
) for details on how to get started.
Thanks go to these wonderful people (List made with contrib.rocks):
This repository is licensed under the Apache 2.0 License.