Uno Platform

Uno Platform

Episode Sixteen

Uno Platform is an open-source platform for building native mobile, web, desktop and embedded apps in a single codebase using C# and XAML.

Intro

I'm Peter and this is the RoguePlanetoid Podcast where you will find insights about Microsoft or related platforms and technology, along with so much more whether you are beginner or an experienced professional or just interested in technology. Keep Current, Keep Coding!

Welcome

Welcome to episode sixteen of the RoguePlanetoid Podcast about Uno Platform. Uno Platform is an open-source platform for building native mobile, web, desktop and embedded apps in a single codebase using C# and XAML. Previously on the RoguePlanetoid Podcast I have talked about XAML which allows developers to decouple the user interface of an application from the implementation in code using Windows Presentation Foundation and Windows App SDK. I have also talked about .NET MAUI which is Microsoft's own open-source platform for building native mobile and desktop applications in a single codebase. You can listen to those episodes about XAML and .NET MAUI wherever you listen to your podcasts, or you can check out the links in the show notes.

Uno Platform

Uno Platform is a third-party open-source platform that allows developers to target applications using the latest .NET for Windows 10 and Windows 11 using C# and XAML with WinUI 3, for modern browsers such as Microsoft Edge, Google Chrome, Firefox, and Safari using WebAssembly, JavaScript, HTML 5, and CSS, for iOS and Mac Catalyst using AppKit and UIKit along with for Android using Views. Developers can also target Linux, including embedded applications on Raspberry Pi with SKIA or for Windows 7 with Windows Presentation Foundation and SKIA. Uno Platform allows developers to create applications with a cross-platform user interface with a concise declarative user interface markup using modern XAML-centric syntax with support for Hot Reload to see changes in either Visual Studio or Visual Studio Code to applications while they are running. Uno Platform also supports declarative C# markup allowing for both front-end and backend development using only C# all in one platform, which also supports Hot Reload to see changes as you make them in either Visual Studio or Visual Studio Code.

Uno Platform supports reactive programming which makes it easy to create asynchronous and event-based cross-platform applications where you can make state explicit and immutable and designed to work with data binding. MVUX or Model, View, Update, Extended introduces the concept of unidirectional flow and immutability of data leveraging the power of XAML and data binding and with MVUX it possible to choose between declarative and reactive style programming. Developers can maintain a clear separation of concerns that decouples presentation, domain and data layers of applications and code generation eliminates repetitive boiler plate code to reduce complexity when writing reactive applications.

Uno Extensions make common developer tasks quick and easy with reusable code blocks and extensions that are flexible and extendable to provide the best start possible for building production-ready applications. Uno Extensions include Navigation to easily move between pages or open dialogs, Localisation for applications by declaring each supported language and Authentication for users or to restrict access using a variety of authentication solutions. Uno Extensions are also available for Configuration, Hosting and Dependency Injection for registering components or services and to access dependencies in applications along with HTTP for registering API endpoints, logging, serialisation, and validation.

Uno Themes make it easy to implement Material Design from Google, Fluent Design from Microsoft, or Cupertino Style from Apple in your applications with only a few lines of code. Developers can control the look and feel of their application for seamless design with easy-to-use layouts, styling, animations, and interactions. Uno Themes are ready to handle light and dark modes where you can provide users an option to switch between them automatically and developers can also customise any colours needed for their application. Developers can also customise the appearance of any XAML controls including brushes, fonts and more on a page, application, or control basis.

Uno Toolkit is a set of multi-platform-first user-interface components that are efficient and reusable and designed specifically for multi-platform responsive applications and support Material, Fluent or Cupertino designs from Uno Themes. Uno Toolkit can work with other component libraries such as WinUI and Windows Community Toolkit with controls such as TabBar for top-level navigation, NavigationBar for navigation logic along with back button behaviour that is the same on all mobile and tablet form factors. Uno Toolkit also supports Auto Layout to quickly create responsive layouts for all screen sizes and orientations, Drawer to provide quick access to app functionality and destinations and even Shadow Container for adding shadows to content in your applications. Uno Toolkit is free for individual developers and companies with revenue less than one million US dollars.

Uno Platform allows developers to build applications using their favourite integrated development environment such as Visual Studio where developers can code, build, debug and deploy a single-codebase multi-platform application. Visual Studio Code can be used to develop and debug mobile, web and desktop applications which can include a physical device or emulator and developers using JetBrains Rider can also create applications using Uno Platform. If you want to develop applications using your favourite IDE using C# or XAML for UI development and build cross platform applications, then you can get started with Uno Platform at platform.uno or check out the link in the show notes.

Uno Playground

Uno Playground in an interactive web application that allows developers or anyone else to experiment and explore the Uno Platform by trying out any new or existing XAML to see what it will look like on the web for either desktop or mobile. Developers can write and run any Uno Platform code snippets directly in a web browser and is a convenient way of testing features, APIs, and UI components for Uno Platform. Developers can write or edit code with real-time execution to see any results immediately, use two-way binding to a Data Context, or try out any existing Snippets or you can save any new Snippets. To try out Uno Playground visit playground.platform.uno or check out the link in the show notes.

Uno Gallery

Uno Gallery is a web application featuring a collection of ready-to-use Uno Platform code snippets to help speed up development of multi-platform applications. Developers can see how Fluent, Material and Cupertino designs will look, explore other features of Uno Platform including non-user-interface APIs along with being able to try out Uno Gallery on the web, desktop or mobile to see how the same code works on all those platforms. Uno Gallery demonstrates theming with palettes for Material, Fluent or Cupertino designs, support for lightweight styling and typography along with UI components such as Flyout, Date Picker and Toggle Switch. Uno Gallery also features non-user-interface features such as clipboard support along with file and folder pickers. Uno Gallery allows developers to try out features and copy any relevant XAML to help implement those features in their own applications using Uno Platform. To try out Uno Gallery visit gallery.platform.uno or check out the link in the show notes.

Figma

Uno Platform for Figma allows developers and designers to work together and easily go from a design in Figma to XAML or C# markup for development. Figma allows designers to work together with developers to explore design possibilities, build prototypes or production software. Figma brings together powerful design tools with collaboration where teams can iterate ideas along with capturing feedback in real-time. Figma allows for a single source of truth between design and development and combined with plugins such as Uno Platform for Figma enables designers to seamlessly create applications using the Uno Material Toolkit for Figma, which allows for design consistency with templates and components along with hundreds of icons. Designers using Uno Platform for Figma can with a single click export ready-to-deploy code for developers complete with colour and font files. Uno Platform for Figma makes it easier for developers where you can use Dev Mode to translate designs into code faster and there's Visual Studio Code integration where you can inspect designs and use code suggestions to speed up your application development. To try out Uno Platform for Figma visit aka.platform.uno/uno-figma-plugin or check out the link in the show notes.

Conclusion

Uno Platform is a third-party open-source platform for building native mobile, web, desktop, and embedded applications quickly with C# and XAML using the latest .NET to run on all target platforms along with enabling control over the look-and-feel of applications. Uno Platform supports Fluent Design from Microsoft, Material Design from Google, and Cupertino Design from Apple along with creating applications by designers or developers using Uno Platform for Figma. Uno Platform supports Windows 7, Windows 10, and Windows 11, along with iOS, Mac Catalyst, Android, and Linux. Uno Platform also support modern browsers including Microsoft Edge, Google Chrome, Firefox, and Safari with WebAssembly which includes the Uno Playground and Uno Gallery.

I've spoken at events over the past few years with presentations about Uno Platform such as four years ago when I showed off ports of games to Uno Platform including a game created for Surface Duo which was a dual-screen mobile device from Microsoft. Two years ago, I did an updated presentation covering some of the new things that had been added to the platform such as the Uno Extensions and Uno Platform for Figma along with showing off a Pomodoro App for Uno Platform. That presentation about Uno Platform opened an opportunity to speak as part of a community discussion session at Microsoft Build 2022 where I talked about my experience building that application, which was an amazing opportunity that I would never have got without Uno Platform.

Uno Platform has evolved over the years to bring more features for developers along with designers to create amazing looking cross-platform applications using XAML and C# or even exclusively with C#. Uno Platform continues to evolve and add new features along with keeping pace with the latest version of .NET. If you want to check out source code, workshops, examples and more for Uno Platform then you can visit github.com/unoplatform or check out the link in the show notes.

Outro

Thanks for listening to the RoguePlanetoid Podcast where each episode you will find insights about Microsoft or related platforms and technology, along with so much more wherever you listen to your podcasts or at rogueplanetoid.com/podcasts for the RoguePlanetoid Podcast whether you are a beginner or an experienced professional or just interested in technology. Keep Current, Keep Coding!

RoguePlanetoid Podcast is a production of cluarantonn.com

Hosted, Written, Produced and Edited by Peter Bull

Music based on Like a Tiger by Jo Wandrini

Production Company Name by Granny Robertson