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 toward developer knowledge in .NET MAUI and we grow a community/ecosystem willing to learn and 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 February 6, 2023:
New to developing apps with .NET MAUI and want to learn some quick tricks? While documentation is always the source of truth, developers may miss real-world nuances—the “how do I do this?” type of knowledge. Leomaris Reyes is looking to make learning fun with short .NET MAUI learning challenges—the second challenge is all about supporting Light/Dark modes in .NET MAUI apps.
The goal with the .NET MAUI challenges is to focus on simple but specific important topics—developers will only need a few minutes to learn something new. Each challenge will have a statement to tickle developer brains, followed by a few options for the correct solution and study resources to delve deeper into the topic.
For the second .NET MAUI challenge, Leomaris brings up catering UI/UX to device light and dark modes. The challenge needs developers to adjust a Label’s background color as per light/dark modes and proposes three possible solutions—only one achieves the desired result with the help of AppThemeBinding. Go ahead, .NET MAUI developers—challenge yourself and learn to dig a little deeper.
One of the ways to drive user engagement for an app is to meet users where they are—bring down the language barrier and be more friendly. Localization is the process of translating an app’s resources into localized versions for each culture that the app will support—essentially cater to individual locales. Being able to translate the content of an app at runtime is a great way to reach more audiences and Gerald Versluis recently produced a video on the topic—translating .NET MAUI apps with LocalizationResourceManager.Maui.
Simply put, LocalizationResourceManager.Maui is a plugin from Johan Svensson that makes it easy for developers to add localization to .NET MAUI apps. Getting started is simple—developers need to grab the NuGet package and initialize the plugin with selected settings for configuration options. Translations are driven by Resource files and a ResourceManager takes care of switching cultures, once all supported translations are registered. Once developers replace hard-coded strings with Resource bindings, translations become easy—the ResourceManager is culture-aware at runtime.
Gerald loves going under the hood to understand how something works and demonstrates using the LocalizationResourceManager.Maui plugin with easy to follow demos. There is now more help for .NET MAUI developers to translate app’s content to deliver the same experience based on user’s culture and drive engagement.
Telerik UI for .NET MAUI comes with localization built into .NET MAUI components. It is worth looking into if you are interested in using a UI library.
With .NET MAUI apps on running on .NET 7, developers have access to a much needed UI component—the all-important Map control. Mapping solutions are critical to any mobile/desktop app dealing with Geolocation and .NET MAUI aims to make life easy. Developers have access to a nicely abstracted mapping solution and James Montemagno made a recent On .NET video about it—cross-platform Maps with .NET MAUI.
The new Map component in .NET MAUI works across platforms, seamlessly rendering native maps on iOS, Android and macOS through MacCatalyst. James points out the flexibility of the .NET MAUI Map component—developers have options of showing the Map in various modes (regular, hybrid, street or satellite), overlay traffic, adding one or more Pins to the map and drawing regions/lines on the map. Getting started with .NET MAUI maps is easy—developers need to bring in the Microsoft.Maui.Controls.Maps NuGet package along with its dependencies, initialize the map on app startup, add requisite permissions and display the Map on any given page.
James moves on to some real-world topics around .NET MAUI Maps—like dropping Pins on maps and how to draw Polygons/Polyline/Circles on top of the map. Developers building GeoLocation apps for .NET MAUI now have a powerful cross-platform Map component ready to light up experiences on mobile/desktop form factors.
With .NET MAUI reaching maturity as a platform and tooling being stable across Windows/macOS, a lot more developers are experimenting with .NET MAUI. Smart developers can push the boundaries and build amazing things on a technology stack—no dearth of inspiration on .NET MAUI these days. Adolfo Marinucci wanted a challenge to build something awesome in .NET MAUI—the result is an app with complex UI/UX and stunning animations.
Rive helps developers build rich content with interactive graphics and they now have support for .NET MAUI through C# runtime Rive-Sharp—there is support for some jaw-dropping animations. Using MauiReactor features like RxAnimation and AnimationController, Adolfo was able to rebuild an app in .NET MAUI with beautiful visuals and rich animations. Everything works seamlessly cross-platform on iOS/Android and the source code is open sourced—plenty for other .NET MAUI developers to be inspired from.
Shiny is a cross platform library designed to make working with device services and background processes easy, testable and consistent, while wiring up dependency injection and logging in a structured way. Allan Ritchie and other contributors have maintained Shiny.NET for quite some time, and now have .NET MAUI support. Allan recently pushed an update out—Shiny Templates for shining new .NET MAUI apps.
The goal of the Shiny Templates is simple—get .NET MAUI developers off to a great start with their apps. The Shiny Templates essentially produce .NET MAUI projects with a ton of developer-selected things already wired up—with a strong starting point, there isn’t as much of a need to stop often to get dependencies individually.
The MAUI Shiny.NET App Project Template helps developers choose a plethora of options as the .NET MAUI project is being scaffolded—MVVM/Reactive frameworks, Shiny.NET, Markup style, Entitlements and Permissions, Dependency Injection, Logging, Authentication Providers, 3rd party components, Community Toolkit and much more. Developers can get off to running start with Shiny.NET App Project Templates and fall into a pit of success with .NET MAUI apps.
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!
All fields are required