Uno Platform
Uno Platform is an open-source cross-platform UI framework that enables developers to create native applications for web, mobile, desktop, and embedded systems using a single codebase written in C# and XAML.[1][2] It leverages WinUI controls and Skia-based rendering to deliver pixel-perfect, performant user interfaces across platforms including iOS, Android, macOS, Windows, Linux, and WebAssembly.[1] Originating as an internal project at the Montréal-based tech firm Nventive, the platform was released as open source in 2018; in 2023, it spun out into an independent company. As of November 2025, it has amassed over 300 contributors, around 10,000 GitHub stars, and over 130 million NuGet package downloads.[2][3] Key features include hot reload for instant UI updates during development, a visual designer for drag-and-drop UI creation, and AI-assisted tools like the Model Context Protocol (MCP) for interacting with running applications, making it particularly suited for enterprise-grade .NET development; major releases like version 6.0 in 2025 have enhanced AI integrations.[1][4] Adopted by organizations such as Toyota and Air Canada, Uno Platform supports integration with tools like Visual Studio and VS Code, emphasizing productivity and cross-platform consistency.[1]History
Origins and founding
Uno Platform traces its origins to nventive, a software consultancy founded in 2008 by François Tanguay, who serves as its CEO.[5] Initially focused on providing coaching services in architecture and software development, nventive specialized in multi-platform application development, completing over 1,000 mobile and web projects across North America and growing to more than 150 employees.[5] The Uno Platform project began in 2012 as Umbrella UI, an internal coded element library at nventive, and evolved around 2013 as a response to limitations in the Universal Windows Platform (UWP) and XAML framework, which were primarily confined to Windows ecosystems.[5][6] nventive developed Uno to extend UWP/WinUI capabilities, enabling C# and XAML-based applications to run natively on non-Windows platforms such as iOS, Android, macOS, and the web via WebAssembly, thereby addressing the need for true cross-platform support in .NET development.[7] This internal effort, spanning five years, aimed to streamline productivity for developers building single-codebase apps beyond Microsoft's native environment.[7] On May 7, 2018, during Microsoft Build, nventive released Uno Platform as open source under the Apache 2.0 license, hosted on GitHub to invite community contributions and broaden its adoption.[7][8] The launch marked a shift from proprietary internal tooling to a collaborative ecosystem, allowing developers worldwide to leverage and extend the framework for cross-platform UI applications.[7] In 2023, Uno Platform was spun out from nventive as an independent company, Uno Platform Inc., headquartered in Montreal, Canada, to focus exclusively on advancing the platform's enterprise capabilities.[9] This transition positioned Uno as a dedicated entity while maintaining its open-source roots.[5]Key milestones and releases
Uno Platform was initially developed internally by nventive and open-sourced in May 2018, marking its public debut as a cross-platform framework with basic support for Windows, iOS, Android, and WebAssembly targets.[10][11] In September 2019, Uno Platform 2.0 introduced early integrations with Xamarin.Forms, enabling developers to extend existing mobile apps to web platforms using .NET for iOS and Android.[12] In August 2020, Uno Platform 3.0 introduced comprehensive WebAssembly integration across all supported browsers, alongside Linux desktop support and theming options like Fluent Design and Material Design, expanding its reach to additional operating systems.[13] November 2021 brought Uno Platform 4.0, which added major productivity tools including Visual Studio Code extension support, Figma design integration, and Uno Platform Extensions for streamlined app development.[14] This release coincided with the second annual UnoConf community conference in December 2021, establishing it as a key gathering for developers focused on cross-platform .NET topics.[15] Uno Platform 5.0 launched in November 2023, aligning with .NET 8 and introducing C# Markup for declarative UI coding, along with approximately 500 enhancements to boost cross-platform productivity.[16] A pivotal advancement occurred in May 2025 with Uno Platform 6.0, which debuted Uno Platform Studio—a visual design and development suite—and implemented a unified Skia rendering engine across iOS, Android, WebAssembly, and desktop targets for improved performance and consistency.[4] Subsequent updates followed rapidly: version 6.1 in July 2025 added mobile status bar APIs and WebAssembly cookie handling; 6.2 in August 2025 enhanced Hot Design tools and rendering optimizations; 6.3 in October 2025 provided day-one support for .NET 10 preview and Visual Studio 2026; and 6.4 in November 2025 enabled agentic AI development features via Studio 2.0 updates.[17][18][19][20] Significant partnerships evolved in 2025, including a deepened collaboration with Microsoft's .NET team announced in October, focusing on contributions to .NET MAUI, SkiaSharp, and ecosystem advancements.[21] Earlier ties were evident in ongoing .NET integrations dating back to 2020. In August 2025, Uno Platform secured a $3.5 million CAD seed funding round led by AQC Capital and Desjardins Capital, bringing total investment to $6.5 million CAD and supporting further open-source innovation.[22] By late 2025, the project had garnered approximately 10,000 GitHub stars, over 300 contributors, and more than 130 million NuGet package downloads, reflecting robust community growth and adoption.[2][9]Technical overview
Core architecture
Uno Platform is built on the foundation of the Universal Windows Platform (UWP) and WinUI framework, utilizing XAML for declarative user interface definition and C# for application logic. This architecture projects Microsoft's WinUI types and APIs across multiple targets by mirroring the UWP and WinUI behaviors, allowing developers to write a single codebase that leverages the familiar XAML dialect and .NET tooling.[23] At its core, Uno Platform employs a headless architecture that decouples high-level UI logic from platform-specific implementations. Shared code handles abstract UI elements and business logic in C#, while platform abstractions manage low-level rendering and input handling, ensuring that XAML is compiled into C# at build time via source generators for consistent execution across environments. This separation promotes code reusability by isolating platform-dependent code into targeted assemblies, with the majority of the application remaining platform-agnostic.[23][24] State management in Uno Platform relies on dependency injection (DI) and patterns such as Model-View-ViewModel (MVVM) or the extended Model-View-Update (MVUX) approach, facilitated by the DependencyProperty system and data binding inherited from WinUI. DI is integrated through libraries like Uno.Extensions or CommunityToolkit.Mvvm, enabling service registration and resolution for modular, testable code that maintains state immutably in MVUX via message-driven updates. These mechanisms ensure reactive, reusable state handling without direct platform ties.[25][26][27] Uno Platform integrates deeply with the .NET ecosystem, targeting .NET 10 as the default runtime (as of version 6.4, released November 11, 2025) with ongoing support for .NET 9, enabling enhanced performance and features like C# 14. This compatibility allows seamless use of .NET libraries, tools, and updates, with Uno's abstractions ensuring that .NET's cross-platform capabilities are fully leveraged in a UWP-like environment.[28][20]Rendering and UI framework
Uno Platform utilizes Skia as its primary unified rendering engine, powered by the SkiaSharp .NET binding, to achieve pixel-perfect graphics rendering across all target platforms including iOS, Android, WebAssembly, Windows, macOS, and Linux. This Skia-based approach draws all UI elements consistently, replacing native renderers where required to maintain visual fidelity and enable hardware acceleration via APIs like Metal on iOS, OpenGL on Android, and WebGL on WebAssembly. By default in recent versions such as 6.3 and later, Skia rendering is enabled for new projects, offering superior performance for complex UIs compared to older native modes.[29][30][19] In parallel, Uno Platform supports a native rendering mode that leverages platform-specific controls for enhanced integration, such as UIView from UIKit on iOS and ViewGroup from the Android framework on Android, ensuring accessibility features and input method editor (IME) compatibility without sacrificing cross-platform consistency. Developers can incorporate these native views directly into the Uno visual tree using XAML or code-behind, with platform conditionals for targeted adaptations, allowing seamless interop while preserving the overall WinUI-style layout. This dual-mode architecture abstracts underlying platform differences, enabling a single codebase to render appropriately on each target.[30][31][32] The framework provides extensive support for WinUI 3 controls and .NET MAUI embedding, including over 150 UI primitives like NavigationView, ProgressRing, and DataGrid, which can be styled with Material Design 3 or Fluent Design themes via the Uno Themes NuGet package. These themes offer light/dark variants, color customization, and pre-built styles aligned with Google's Material system or Microsoft's Fluent guidelines, facilitating modern, responsive interfaces without custom theming efforts. For instance, applying Fluent styles requires minimal code changes, automatically adapting controls like buttons and lists to platform-appropriate aesthetics.[33][34][35] Performance optimizations in Uno Platform 6.3 (released October 9, 2025) introduce WebAssembly-specific rendering improvements, such as offloading image decoding to Web Workers to reduce main-thread blocking and enable smoother scrolling in image-heavy UIs like galleries. Version 6.4 (November 11, 2025) further enhances Skia performance with off-thread rendering and synced frame pacing. These enhancements, combined with Skia's efficient pixel rendering, result in faster load times and fluid animations on web targets, making it suitable for high-performance browser-based applications.[19][20]Features
Cross-platform development tools
Uno Platform provides project templates that enable developers to create and configure applications targeting multiple platforms from a single codebase using either Visual Studio or the .NET CLI. These templates, installed via the commanddotnet new install Uno.Templates, include options such as unoapp for multi-platform applications supporting iOS, Android, WebAssembly, Linux, and Win32 Desktop, with presets like "Blank" for minimal setups or "Recommended" for enhanced configurations incorporating extensions such as dependency injection and localization.[36] The templates integrate with the Uno Platform Solution Wizard, accessible through Visual Studio's New Project dialog or the live online wizard at aka.platform.uno/using-wizard, allowing customization of frameworks (.NET 9.0 or 10.0), presentation patterns (MVVM or MVUX), and renderers (Skia or Native) to streamline multi-target setup without manual project proliferation.[37]
Hot Reload in Uno Platform facilitates real-time updates to XAML and C# code during development, preserving application state and eliminating the need for full rebuilds or redeploys, which significantly reduces iteration cycles. This feature supports modifications to layouts, controls, bindings, styles, and business logic across all targeted platforms, including Windows, WebAssembly, iOS, Android, macOS, and Linux, and integrates seamlessly with IDEs like Visual Studio, JetBrains Rider, and VS Code.[38] An on-screen indicator provides visual feedback on Hot Reload status, aiding in quick identification of supported changes and potential limitations, such as platform-specific constraints on certain animations or resource updates.[38]
The platform's build and deployment pipelines leverage native .NET dotnet publish commands to automate packaging for diverse formats, ensuring compatibility with app stores and deployment environments. For Android, developers can generate APK or AAB files directly (e.g., dotnet publish -f net9.0-android -p:AndroidPackageFormat=aab), while iOS targets produce IPA packages ready for the App Store, with similar support for MSIX/ClickOnce on Windows, .app/.pkg/.dmg on macOS, Snap on Linux, and static files or PWAs for WebAssembly.[39] Cross-platform builds are enabled, such as creating Windows packages from Linux or macOS hosts, and include features like self-contained deployments, single-file executables, and Native AOT compilation where applicable, with built-in CI/CD integrations for Azure DevOps and GitHub Actions.[40]
Debugging in Uno Platform utilizes Visual Studio's unified project structure to support breakpoints and stepping through shared C# and XAML code across native and WebAssembly targets, allowing developers to inspect variables, set conditional breakpoints, and handle exceptions consistently from one IDE session. For WebAssembly, debugging requires enabling the Mono runtime debugger in the project file and configuring the browser launch settings, enabling full C# debugging akin to native platforms like Android or iOS.[41] This approach extends to mobile targets via the VS Code extension, where breakpoints in shared code can be hit during device or emulator sessions, fostering efficient troubleshooting without platform-specific reconfiguration.[42]
AI and visual design integration
Uno Platform has integrated artificial intelligence and advanced visual design tools to streamline UI prototyping and development, particularly through its premium productivity suite, Uno Platform Studio. Launched in November 2025, Uno Platform Studio 2.0 introduces agentic AI capabilities that enable developers to generate code and build cross-platform applications visually, maintaining human oversight in the process.[43][44] This update builds on earlier versions by incorporating AI assistants that collaborate directly within the development environment, accelerating workflows for .NET developers targeting multiple platforms.[45] A key component is the Hot Design tool, a visual UI editor introduced in late 2024 and enhanced through 2025, which allows real-time editing of running applications by transforming live apps into editable design surfaces.[46][47] Hot Design supports Figma import and export via a dedicated plugin, enabling seamless translation of designs into XAML or C# Markup code for use in Visual Studio, while preserving styles, animations, and component structures.[48][49] This integration facilitates rapid prototyping by bridging design tools with code, ensuring pixel-perfect fidelity across platforms without manual recreation.[50] Complementing these visual features are specialized AI agents, such as the Hot Design Agent, which provides automated layout suggestions and real-time collaboration during UI design sessions within Hot Design.[43][51] The agent interprets developer intent through natural language prompts to propose and iterate on visual elements, enhancing creativity while keeping the user in control.[44] Additionally, the App MCP (a local runtime service) enables AI agents to interact with live applications across platforms like Windows, WebAssembly, macOS, iOS, and Android, performing multi-platform consistency checks to verify UI rendering and behavior uniformity.[44][52] These tools align with emerging vibe coding paradigms, where AI handles high-level intent description to generate and refine code, tailored for enterprise developers seeking productivity gains without compromising security or customization.[53][54] This approach, supported by a $3.5 million seed funding round in August 2025, empowers .NET teams to prototype and iterate faster in controlled environments.[53]Supported platforms
Target operating systems and devices
Uno Platform enables the development of applications that deploy natively across a range of operating systems and devices, leveraging a unified codebase built with C# and XAML.[6] The platform's rendering engine, primarily based on Skia, ensures consistent visual output across these targets.[55] On mobile devices, Uno Platform supports Android starting from version 5.0 and iOS from version 11.0, allowing apps to run natively on smartphones and tablets from manufacturers like Samsung, Google, Apple, and others.[56] These targets utilize .NET for Android and .NET for iOS, respectively, to compile code into platform-specific binaries for optimal performance.[56] For desktop environments, the platform targets Windows from version 7 onward via Skia rendering and Windows 10 (build 19041) or later for native WinUI integration; macOS from version 10.15; and various Linux distributions supported by the latest .NET runtime, including environments like X11 and Framebuffer.[56] This enables deployment on personal computers, laptops, and workstations across these ecosystems.[6] Web applications built with Uno Platform run in browsers via WebAssembly, compatible with modern desktop and mobile browsers such as Chrome, Edge, Firefox, Safari, and Opera that support WebAssembly.[56] This target delivers near-native performance without plugins, targeting the WebAssembly roadmap for ongoing enhancements.[56] In the embedded and IoT space, Uno Platform supports Linux-based devices, including Raspberry Pi models, through its Framebuffer and Skia rendering options, facilitating applications on resource-constrained hardware like single-board computers and custom IoT controllers.[57] Examples include home automation systems and remote controls running on Raspberry Pi Zero.[58] As of 2025, Uno Platform does not provide direct support for watchOS or tvOS, limiting deployment to the aforementioned platforms.[6]Compatibility with .NET ecosystem
Uno Platform maintains full compatibility with .NET 9 and later versions, enabling developers to leverage the latest features of the .NET runtime across its supported targets. As of November 2025, this includes seamless integration with .NET 10 as the current LTS stable release (released November 11, 2025) and .NET 9 (STS, supported until November 2026), allowing applications to utilize enhanced performance optimizations and cloud-native capabilities introduced in these versions.[28][19][59] Earlier support for .NET 8, an LTS release, was discontinued in Uno Platform 6.3 to align with the deprecation of .NET MAUI 8 workloads, ensuring forward compatibility without legacy constraints.[28][60] Dependencies are managed through NuGet packages, which facilitate straightforward integration of Uno Platform libraries into existing .NET projects, including automatic resolution of transitive dependencies for multi-targeting scenarios.[61][62] The platform supports interoperability with other .NET-based frameworks such as Xamarin, .NET MAUI, and Blazor, particularly in hybrid application development where components from these ecosystems can be embedded or extended. For instance, Uno Platform allows the incorporation of .NET MAUI controls and the Maui Community Toolkit through embedding mechanisms, enabling developers to reuse Xamarin-derived codebases for mobile-specific features while targeting broader platforms.[63][6] This interoperability extends to Blazor via shared WebAssembly runtime, permitting hybrid web scenarios where Uno's pixel-perfect rendering complements Blazor's Razor-based components without requiring full code rewrites.[6] Such integrations are facilitated by Uno's adherence to .NET standards, allowing shared libraries and services to operate across these frameworks in unified codebases. Uno Platform collaborates closely with Microsoft on key open-source repositories, including contributions to SkiaSharp for cross-platform graphics rendering and extensions for .NET MAUI to enhance compatibility and performance. This partnership, announced in October 2025, involves joint development efforts to align Uno's rendering pipeline with .NET's evolution, such as upgrading SkiaSharp bindings in Uno Platform 6.4 for improved vector graphics support.[21][20] These collaborations ensure that Uno Platform benefits from Microsoft's ongoing investments in .NET ecosystem tools, fostering a more cohesive development experience for shared rendering and UI extensibility.[64] At its core, Uno Platform primarily utilizes C# for application logic and XAML for declarative UI definition, aligning with the WinUI and UWP paradigms to promote code reuse across platforms. For WebAssembly targets, it incorporates TypeScript extensions through a JavaScript interop layer, which handles DOM manipulation and browser-specific interactions while maintaining C# as the primary language.[65][66] This language model enables developers to build native-like applications without platform-specific adaptations, with XAML parsed into C# at compile time for efficient runtime execution.[6]Development and ecosystem
Tools and IDE support
Uno Platform provides robust integration with popular integrated development environments (IDEs) through dedicated extensions and plugins, enabling efficient project setup, editing, and debugging for cross-platform applications.[67] The official Uno Platform extension for Visual Studio, available via the Visual Studio Marketplace, facilitates project creation by offering templates for single-codebase multiplatform apps using C# and XAML, including application blocks for rapid bootstrapping with libraries like Uno.Extensions.[68][69] It supports templating through reuse of UI controls from WinUI, Windows Community Toolkit, or Uno Toolkit, and allows C# for Markup to develop UIs without XAML, similar to Flutter-style coding.[68] For debugging, the extension enables XAML and C# Hot Reload directly within Visual Studio, allowing instant iteration on UI and code changes during runtime, alongside full build and debug capabilities for all supported platforms.[68] For developers preferring lighter IDEs, Uno Platform offers extensions for Visual Studio Code and JetBrains Rider that emphasize streamlined editing and enhanced code intelligence. The VS Code extension, installed from the VS Code Marketplace, provides IntelliSense via the XAML Language Server for completions on controls, properties, events, enums, and more in XAML files, while supporting lightweight editing through XAML and C# Hot Reload for real-time UI modifications without rebuilding.[70][42] It also includes mobile debugging features like breakpoints and variable inspection on physical devices or emulators.[70] Similarly, the Rider plugin, available from the JetBrains Marketplace, delivers IntelliSense integration and lightweight editing with Hot Reload for XAML and C#, enabling seamless cross-platform development on Windows, macOS, and Linux, including support for third-party controls from vendors like Syncfusion and Infragistics.[71][72] The Uno Check tool, a cross-platform .NET CLI utility installed globally viadotnet tool install -g uno.check, performs environment validation by scanning for prerequisites on Windows, Linux, and macOS, detecting missing or outdated components such as .NET SDKs and workloads, and providing automatic fixes or setup instructions.[73] For dependency management, it verifies platform-specific requirements (e.g., for WebAssembly or Android) using configurable manifests and ensures repeatable setups across development machines.[73][74]
Community-maintained tools complement these IDE integrations, with the Uno Gallery serving as a key resource for control demonstrations and testing; this cross-platform app, available on iOS, Android, and as a WebAssembly demo, acts as a live playground to showcase and experiment with Uno Platform's UI controls, MVVM patterns, data binding, styling, animations, and data templating features.[75][76][77]