UnoConf 2019

Xamarin Uno Platform Development WinUI XAML

4 years ago

The inaugural Uno Platform developer conference UnoConf was held in Montréal, Canada on 19th September 2019. I was lucky enough to be invited by the team, for which I am very grateful. In this post, I provide a summary of the event. If you haven't been at UnoConf, you can still relive the awesomeness, though! The recording of the whole event is available on YouTube. I have embedded the video below for convenience. https://www.youtube.com/watch?v=tYk2us6W6Gg

City & Conference venue

My hotel was situated near the center of Montréal so it was a great opportunity to explore the city and get a taste of the local cuisine. Thanks to great recommendations from the locals and the internet, I had plenty to try out. One thing is for certain - I did not lose any weight there ?. [gallery type="slideshow" size="large" ids="1923,1924,1925"] The conference venue itself was very cozy and well arranged. UnoConf team thought of everything from charger stations on each table, through a wide selection of not-your-average-conference-food (oysters! ?) to two arcade machines. [gallery size="large" type="slideshow" ids="1903,1904,1905,1906,1907,1908,1926"] The host of UnoConf 2019 was Jen Looper, Microsoft Cloud Developer Advocate Lead. She introduced each of the speakers along with many "bad developer jokes", which were in fact super funny and made the whole audience laugh (especially those dealing with JavaScript). Thumbs up!

Do you want to hear a really bad joke?

Vision Keynote

Miguel de Icaza from Xamarin delivered the first keynote. He took us back through time to the very beginning of his developer career to show us, how the notion of open-source has influenced him and why he believes open software is the key to innovation. Specifically, he noted that throughout his career he can see a pattern of projects providing open-source or cross-platform alternatives to existing frameworks. This has taken him on the path of building Mono framework and then Xamarin. He sees Uno Platform as a similar endeavor - taking a framework which people know and love (UWP) and bringing it everywhere (Android, iOS and WebAssembly). Especially WebAssembly (WASM) was mentioned very thoroughly. Miguel definitely sees WASM as the next big thing.

History, present and future of the .NET ecosystem

History, present and future of the .NET ecosystem

Uno Platform Keynote - The Road Ahead

The second keynote was lead by Francois Tanguay, the CEO of nventive and Jérôme Laban, the CTO of Uno Platform. Francois first thanked all the partners, contributors and companies which are betting on Uno Platform and are actively using it. He invited on stage the representatives of two companies which are using Uno Platform today to successfully deliver their applications and are very satisfied with the product. Afterward, Jérôme took us on a walk through the basics of Uno Platform and showed us how easy it is to run an Uno app on UWP, Android, iOS and WASM.

Francois Tanguay highlighting the Uno Platform developer community

Francois Tanguay highlighting the Uno Platform developer community

The most exciting part of the keynote were the announcements. First and foremost, Uno Platform 2.0 was announced, packed with new features and APIs and numerous improvements across the board. The full list of changes is available on GitHub, but just to name a few:

  • ThemeResources support

  • ContentDialog

  • Magnetometer support

  • Texbox TextChanging and BeforeTextChanging

  • JumpLists support

  • DisplayInformation support

  • Accelerometer support

  • PhoneCallManager support

  • Vibration Device support

  • Android Notch support

  • Refactored Pointer Events

    Hand in hand with this Jérôme also announced the first preview of Uno Platform XAML Hot Reload. This was already available for UWP, but now you can make live XAML changes to your Android, iOS and even WASM apps as well. The feature works best with MVVM-based applications and will evolve further. I have embedded an example of Hot Reload in action below.

The next announcement was a huge surprise - Uno Platform WebAssembly Renderers for Xamarin.Forms. One of the big drawbacks of Xamarin.Forms is the fact that the apps cannot run on WebAssembly. But not anymore! The solution takes the UWP Xamarin.Forms renderers and uses them against the Uno Platform WASM implementation of UWP controls. This is incredibly cool and not only opens up a world of new possibilities for Xamarin.Forms developers but also could drive the community effort for improving the Xamarin.Forms UWP implementation as well. Adding a WASM platform head can be as easy as running a simple dotnet new command. If you want to try it out, head to the Uno Platform 2.0 announcement blog post for more information. SkiaSharp support got highlighted with the announcement of SkiaSharp.Extended for WebAssembly. This brings many useful features building upon the base SkiaSharp support and increases developer productivity overall. One of the main goals for future development is to enable support for WASM OpenGL backend. Another pleasant surprise was the Uno.UITest framework for Android, iOS and WASM. For Android and iOS, it is based on Xamarin.UITest and on WASM it uses Selenium. This way, it is easier than ever to UI test your Uno Platform apps. For more information, check out the Uno.UITest repository on GitHub.

Super exciting was also the announced partnership with Syncfusion. They are bringing first three controls to Uno Platform - Chart, Scheduler and DataGrid, with more controls coming based on developer demand. You can fill out a short survey to tell Syncfusion which controls you would like to see soon. Last but not least, Michael Hawker, aka XAML Llama talked about expanding Uno Platform support for Windows Community Toolkit and even announced new Microsoft Graph controls available to try out.

XAML lama spotted!

As you can see, the keynote was packed with awesome news for the platform and shows the future is as bright as it can be for Uno Platform.

CSLA .NET and Uno

After lunch, Rocky Lhotka took the stage and demonstrated the CSLA .NET library, which helps developers build a reusable business logic layer. Rocky especially applauded the fact that with Uno we can now share the exact same business logic layer and validations on the client and on the server. This simplifies maintaining validation rules and makes sure users get immediate feedback on their input while maintaining the secure nature of server-side validation as well. I haven't personally used CSLA .NET before, but it certainly looked interesting and I will try it out in some of my projects.

Rocky Lhotka presenting CSLA .NET

Creating great UX with Compositional Thinking in XAML

The talk by Billy Hollis was a bit delayed because A/V problems, but the wait was well worth it! Billy's session was full of live demos and was very funny. He showed us, why he thinks XAML is the superior design language thanks to its compositional nature and how XAML developers should leverage it to the maximum potential and think about designing a great user experience in their apps. With compositional thinking, the look-less and templatable nature of XAML controls takes the center stage, which allows us to use the right control based on its behavior, but customize its look to best suit the use case scenario. Tune in for the recording of this session and wait for the ToggleSwitch alive/dead cow demo, it is well worth it? !

Billy Hollis in action

Rapid XAML Toolkit

After a tasty doughnut break, Matt Lacey talked about Rapid XAML Toolkit and how it enhances the developer experience and productivity when building XAML-based apps. The toolkit provides fast, drag-and-drop XAML generation based on your view models and a number of practical XAML Roslyn analyzers which warn you about common problems with in your XAML code. Of course, the toolkit does work with Uno Platform as well.

Matt Lacey showing Rapid XAML Toolkit

Creating Beautiful Cross-Platform UI in Minutes

Mathieu Fillion highlighted one of my favorite UWP/Uno Platform XAML features in his lightning talk - Adaptive Triggers. This allows developers to significantly alter the UI of the application for example based on the screen it is running on. You can think of adaptive triggers as a better version of CSS @media queries. Apps can then scale to any screen ranging from phones to TVs. I really missed their convenience when building Xamarin.Forms apps so it's great to have them in the Uno Platform!

Mathieu Fillion showing easily scalable UI

Contributing to Open Source

Open source libraries are in many cases the key building blocks of today's software. While this allows us to build higher-quality software in a fraction of time, we often forget about the fact that the people behind these libraries work on them essentially for free, in their spare time. More often than not we then see open source maintainers burnout which is very bad indeed. Andres Pineda in his energetic lightning talk shared a personal story on how he started contributing to open-source and how anyone else can do so in a few simple steps. No, you don't need to have extensive experience with the library, there are many starter issues (look for tags like good first issue) you can solve with minimal knowledge and learn along the way. You can even contribute by providing high-quality bug reports or writing documentation - without ever needing to clone the repository. The key takeaway - every little bit helps.

Andres Pineda talking about OSS

Web, Desktop and Mobile

In the final lightning talk of the day, Sam Basu showcased the control toolkits from Telerik, which cover everything from web, through the desktop to mobile. Special focus was given to Telerik UI for Xamarin, which can work seamlessly in Uno Platform thanks to the fact that it supports easy interop with native UI. However, native Uno Platform support is also in the cards, and Sam is already doing a developer survey to see how much would developers appreciate it. Vote Heck Yes! https://twitter.com/samidip/status/1174645237748293633

Summary

I express my gratitude to the Uno Platform team for organizing such a perfect and exciting event. I thoroughly enjoyed every single moment of it and I am more thrilled than ever about .NET app development. Uno Platform is here for all developers who want to build cross-platform applications in .NET. And for those of us who fell in love with mobile app development with Windows Phone/Mobile, Uno Platform feels like those times are coming back to life again, which is immensely cool. It was great to meet so many awesome, like-minded people and share our app development stories at UnoConf, I hope to see you all next time! UnoConf was a really inspiring conference and I wish Uno Platform itself to have an even bigger year ahead! Do not forget to register for UnoConf 2020, tickets are already on sale!