Welcome to the Sands of MAUI—newsletter-style issues dedicated to bringing together latest .NET MAUI content relevant to developers.
A particle of sand—tiny and innocuous. But put a lot of sand particles together and we have something big—a force to reckon with. It is the smallest grains of sand that often add up to form massive beaches, dunes and deserts.
Most .NET developers are excited with .NET Multi-platform App UI (MAUI)—the evolution of modern .NET cross-platform developer experience. Going forward, developers should have much more confidence in the technology stack and tools as .NET MAUI empowers native cross-platform solutions on both mobile and desktop.
While it may take a long flight to reach the sands of MAUI island, developer excitement around .NET MAUI is quite palpable in all the shared content. Like the grains of sand, every piece of news/article/documentation/video/tutorial/livestream contributes towards developer knowledge in .NET MAUI and we grow a community/ecosystem willing to learn & help.
Sands of MAUI is a humble attempt to collect all the .NET MAUI awesomeness in one place. Here's what is noteworthy for the week of July 18, 2022:
While it is summer in most parts of the world and things are generally more relaxed, it is good to see .NET MAUI engineering efforts continue to churn.
David Ortinau pointed out the latest release of .NET MAUI— Service Release 2 (SR2) aka version 6.0.408. The latest .NET MAUI release ships with tooling updates in Visual Studio 2022 17.3 Preview 3—the second release after .NET MAUI hit General Availability.
What's in the .NET MAUI SR2 release? Lots and lots of bug fixes and overall platform stabilization, catering to iOS/Android. While .NET 7 is cooking and .NET MAUI Previews running on .NET 7 are expected from August, SR2 marks a good intermediate stable release for .NET MAUI—go get the hot bits, developers.
While articles/videos/tutorials are great for learning a new technology, there is one definitive source of truth when developers start using a technology—yes, the docs. The .NET MAUI team has poured in a lot of love into documentation, to enable developers to be successful and Gerald Versluis pointed out a little gem—built-in image caching in .NET MAUI.
Almost every app uses imagery and when pulled down from a remote server, images can be a bottleneck. A sound image caching strategy reduces network traffic and improves overall user experience. Thankfully, when using images off of an URL, .NET MAUI enables image caching by default and developers can easily fine tune the cache validity. The corresponding image properties are backed by BindableProperty objects, which means that they can be styled and be the target of data bindings.
Xamarin.Forms and now .NET MAUI has been really good at providing .NET developers a nice abstraction to reach various platforms—developers get to write C#/XAML code and native UI is rendered on various platforms/devices. However, developers often have a need to customize the UI abstraction—most commonly, to get to native UI functionality or override cross-platform implementations.
Pedro Jesus, of .NET MAUI Community Toolkit fame, wrote up a wonderful article on customizing UI components in .NET MAUI—this is a must-read to understand the historical perspective and see the .NET MAUI UI architecture really shine through.
Back in Xamarin.Forms, developers had the option to customize abstracted UI components through Behaviors, Effects or Custom Renderers—it was just not always for the faint hearted. One of the key roadblocks was Xamarin's lack of multi-targeted architecture—platform-specific APIs could not be used at a shared level from .NET code.
.NET MAUI changes the game entirely with the new Handler architecture, making it that much easier to get to platform-specific functionality from shared code and providing several hooks for developers to tap into for customizations. Pedro shows off various ways to customize UI controls in .NET MAUI—extending the controls with a BindableProperty, AttachedProperties with PropertyMapper and the new PlatformBehavior APIs, as well as a few dragons to be aware of along the way. It is nice that .NET MAUI provides various ways for developers to customize UI controls and interact with the platform-specific APIs, with PlatformBehavior leading the charge for ease of use—cheers Pedro for the wonderful writeup.
The .NET MAUI UI July series was started by Matt Goldman and the developer community has stepped up big time with some wonderful content. The month-long series of articles provides a ton of inspiration and technical guidance for anyone dabbling into building modern UIs with .NET MAUI. The latest post in .NET MAUI UI July comes from the expert hands of Leomaris Reyes—a walkthrough in creating a beautiful pet adoption UI with .NET MAUI.
For folks looking to adopt loving pets, the Dribble app provides a sharp design, modern UI and wonderful UX. The goal of the .NET MAUI UI July article series is to build expertise in UI, not recreate app functionality—Leomaris does just that while taking on a big challenge in replicating the main Dribble UI.
The process is to break down to UI into manageable blocks and build the UI for each—Leomaris provides excellent guidance in steps. The key features of the pleasant UX are likely because of the rounded edges in UI components and overlapping of controls. Using Grid, Frame and Margin properties, Leomaris illustrates how to build complex UI with simple components—this is indeed inspirational for anyone building cross-platform UIs with .NET MAUI.
SkiaSharp is a cross-platform comprehensive 2D graphics API for all .NET platforms—also known to render some amazing UI for Xamarin.Forms and .NET MAUI. And SkiaSharp.Extended is a collection libraries that add many additional features/utilities for use with SkiaSharp and provide UI functionality that may be needed for some apps.
Along with WPF and Xamarin.Forms, the SkiaSharp.Extended NuGet package for .NET MAUI sports two new types of views—Confetti and Lottie. The confetti view is a container for one or more systems of particles—they exude in physics and are completely customizable by developers. Lottie is a popular animations library for websites/apps—Lottie files provide lightweight scalable animations with great performance and integrations. Lottie is now welcome in .NET MAUI apps—the Lottie view in SkiaSharp.Extended is an animated view that can playback Lottie files and sports several properties for controlling the animation playback.
With the new SkiaSharp.Extended NuGet package, .NET MAUI developers should have plenty of ammunition to make some wonderful animations—time to make that boring app UX come alive.
That's it for now.
We'll see you next week with more awesome content relevant to .NET MAUI.
Sam Basu is a technologist, author, speaker, Microsoft MVP, gadget-lover and Progress Developer Advocate for Telerik products. With a long developer background, he now spends much of his time advocating modern web/mobile/cloud development platforms on Microsoft/Telerik technology stacks. His spare times call for travel, fast cars, cricket and culinary adventures with the family. You can find him on the internet.
Subscribe to be the first to get our expert-written articles and tutorials for developers!