Herding Code 239: Jerome Laban on Uno Platform

Download / Listen: Herding Code 239: Jerome Laban on Uno Platform

At Xamarin Developer Summit, Jon talks with Jerome Laban about building applications that run everywhere using the Uno Platform.

  • (00:20) Jerome explains that the Uno Platform is XAML and C# for iOS, Android and WebAssembly using WinUI XAML. On iOS and Android, it’s running on Xamarin.
  • (01:25) Jerome tells the history of the platform, and how they’ve been working on the platform for six years. When the team at nventive saw WebAssembly support coming, they ported their existing framework to run there, too.
  • (02:55) The Uno Platform is free and open source; nventive is a service agency that offers development and support for the platform. Jon asks for more information about nventive. It started as a training and general development company, then did Windows Phone, Windows 8 and Windows 10 applications. When Windows Phone went away, they moved their focus to Xamarin development, predating Xamarin Forms. They believe the strucucture of Uno and UWP is often a better approach for them than Xamarin Forms.
  • (04:55) Jon asks for the relationship between Uno and Xamarin Forms. Jerome explains that they’re generally at the same layer. However, since Uno implements the UWP contract, anything that targets the UWP contract can run on Uno. Xamarin Forms has a part that implements that contract to run on Windows. So… a Xamarin Forms can run on WebAssembly using Uno. You can run Uno components in a Xamarin app, since Uno components are actually Xamarin classic components. You can also run Xamarin components in an Uno application.
  • (07:00) Jon asks how the XAML front end is run in the browser. Jerome says that Uno renders the XAML as HTML elements. If you view source, it’s mostly div’s. HTML is treated as a subsystem that’s abstracted away.
  • (08:37) Jon asks about the Calculator application. The Uno team took the Microsoft open source calculator application, written in C++ and XAML, and got it to run on Uno. Jon was very impressed to bring it up on his phone’s browser. Jerome says that works on Android in the browser, and there are also Android and iOS applications.
  • (09:35) Jon asks how they ported Calc to Uno. Jerome said that the tricky part was to pinvoke into C and C++ from a WebAssembly module – Jerome had to add that support and submitted the pull request to Mono. There are three parts – a calculation that dates back to 1999 / Windows 3 that is all C and C++ code that they didn’t change; the rest is C++ 11 code which they translated to C# using regular expressions. The XAML and resources are the same.
  • (12:20) The Calculator is in published in 65 languages, so they are getting bug reports in 65 languages. There’s good accessibility support, so for instance you can enable voiceover in the mobile application.
  • (13:10) Jon asks how to build an application for Uno Platform. Jerome explains the File / New Project process using the extension.
  • (13:55) Jon asks about deployment. For iOS and Android, the output is the same as any Xamarin project; it’s just a standard UWP application, and for WebAssembly it currently tags along with the Blazor tooling.
  • (15:00) Jon asks about other getting started information. Jerome runs through several, and points to the GitHub repo for more links.
  • (16:20) Jon wraps up with a callout to UnoConf on September 19-20, as well as plans for a 2020 UnoConf in the works.