Uno Platform: One UI to Rule Them All with Martin Zikmund
May 17, 2024
auto_awesome
Martin Zikmund, a passionate .NET developer and Microsoft MVP, dives into the versatile Uno Platform, which transcends a mere UI framework. He emphasizes its robust support for non-UI APIs like accelerometers and highlights seamless compatibility with Linux via GTK. The conversation reveals how Uno allows for maintaining a consistent user experience across platforms while integrating effortlessly with Microsoft's WinUI. Zikmund also discusses the importance of collaboration between designers and developers, particularly through tools like Figma.
Uno Platform extends beyond a UI framework by providing APIs for accessing device sensors like accelerometers across multiple platforms.
The framework supports familiar WPF syntax and architectural patterns like MVUX, facilitating a smooth transition for developers from Windows apps.
Uno Platform enhances the development experience through features like hot reload, IntelliSense support, and a user-friendly project setup wizard.
Deep dives
Overview of Uno Platform's Capabilities
Uno Platform is an open-source framework designed for building cross-platform applications that are efficient, visually appealing, and capable of running on various devices. It extends beyond just being a UI framework by incorporating APIs that allow access to device sensors like accelerometers, enabling developers to harness device capabilities uniformly across platforms. The platform aligns closely with familiar Windows Presentation Foundation (WPF) syntax and patterns such as MVUX and MVU to facilitate app development. This alignment ensures that developers can effortlessly transition their existing Windows apps to other platforms like Linux, Android, iOS, and WebAssembly.
Developer Experience and Tools
The development experience with Uno Platform is optimized for convenience and productivity, allowing work in various environments such as Visual Studio, Visual Studio Code, or even online code editors. Developers can initialize new projects using .NET templates and benefit from features like hot reload, which enables immediate visibility of code changes in running applications. Additionally, robust IntelliSense support assists developers by providing context about platform-specific features, enhancing the efficiency of building cross-platform apps. The platform also features a wizard that guides users through project setup, making the configuration and deployment of applications straightforward and efficient.
Customizing User Interfaces
Uno Platform offers flexibility in styling user interfaces, allowing developers to choose how their application looks on different platforms. By default, applications can maintain a consistent appearance across devices or opt for platform-specific designs akin to Material Design on Android. Developers are empowered to create and modify components easily, ensuring that applications can align with branding and user expectations regardless of the underlying platform. Furthermore, the introduction of C# markup as an alternative to XAML caters to developers’ preferences, enabling a fluent, more readable syntax for defining UI elements.
Support for Various Architectural Patterns
Uno Platform accommodates different architectural patterns like MVVM and MVUX, allowing developers to structure applications according to their specific needs and project complexities. While MVVM is suitable for simpler applications, MVUX provides a more robust framework for managing state and user interactions in more complex scenarios. By leveraging MVUX, developers can handle various application states seamlessly, such as loading and error states, while maintaining immutability in model data. This approach enhances application stability and makes navigation and state management intuitive.
Community Engagement and Resources
The Uno Platform community is active and accessible, providing avenues for developers to engage, seek support, and share ideas. Resources such as documentation, workshops, and YouTube videos serve as essential guides for both beginners and experienced developers. Community discussions on platforms like Discord and GitHub facilitate knowledge sharing, making it easier to troubleshoot and explore various use cases together. Additionally, showcases of applications built on the Uno Platform inspire developers by demonstrating the framework's versatility and capability across a wide range of projects.
This episode of The Modern .NET Show is supported, in part, by Avalonia XPF, a binary-compatible cross-platform fork of WPF, enables WPF apps to run on new platforms with minimal effort and maximum compatibility.
Show Notes
Uno Platform started off as the core UI framework. UI and non UI, because as part of Uno Platform itself, you have some non UI APIs like accelerometer and like these device sensors that you can use in a cross platform manner. So that part is the core framework, which is the backbone to everything that we built on top of it. — Martin Zikmund
Welcome to The Modern .NET Show! Formerly known as The .NET Core Podcast, we are the go-to podcast for all .NET developers worldwide and I am your host Jamie "GaProgMan" Taylor.
In this episode, Martin Zikmund joined us to talk about Uno Platform and how it's way more than just a UI framework. It has support for APIs such as reading device sensors like accelerometers, too. But the bread and butter of Uno Platform, like AvaloniaUI, comes from the fact that you can use the familiar WPF syntax and either the new MVUX architecture or the more familiar to most MVU architecture to build your apps.
Yeah, ideally it should work on any Linux where .NET runs.
And we are currently using GTK as the underlying framework that simplifies our like that access to Linux specific APIs. So there is kind of a middleware layer of GTK. And you know, that makes the development for us much easier because it already has those shims for different versions of Linux and so on built in.
— Martin Zikmund
So let's sit back, open up a terminal, type in dotnet new podcast and we'll dive into the core of Modern .NET.
Music created by Mono Memory Music, licensed to RJJ Software for use in The Modern .NET Show
Remember to rate and review the show on Apple Podcasts, Podchaser, or wherever you find your podcasts, this will help the show's audience grow. Or you can just share the show with a friend.
And don't forget to reach out via our Contact page. We're very interested in your opinion of the show, so please get in touch.