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 (.NET MAUI)—the evolution of modern .NET cross-platform developer experience. Going forward, developers will be empowered with the .NET MAUI technology stack and stable tooling to build native cross-platform apps for mobile/desktop from single shared codebase.
While it may take a long flight to reach the sands of MAUI island, developer excitement around .NET MAUI is quite palpable with all the created 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 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 October 9, 2023:
Uno Platform is an open source framework for building single codebase native mobile, web, desktop and embedded apps—all from the comfort of chosen IDE and C#/XAML. The big news in the latest Uno Platform release is .NET MAUI Embedding—with the 4.10 release, Uno Platform allows for rendering of .NET MAUI-specific UI components.
For platforms targeted by .NET MAUI, .NET MAUI Embedding means a huge collection of .NET MAUI cross-platform UI components can now light up the UI for Uno Platform apps, and that includes all of Telerik UI for .NET MAUI.
Dan goes through how developers can get started leveraging Telerik UI for .NET MAUI inside Uno Platform apps—the Uno Platform templates with .NET MAUI Embedding feature easily allow for bringing in NuGet package for Telerik UI. With .NET MAUI-like configuration, Telerik UI is now ready to light up native apps written with Uno Platform—thanks, Dan, for the detailed writeup and the sample projects showcasing Telerik UI in Uno Platform apps. Onwards and upwards.
.NET MAUI is the evolution of cross-platform development with .NET, reaching mobile/desktop form factors from single shared codebase. While developers get to build truly native apps with .NET MAUI, some native platform interactions are not easy—this is particularly true when dealing with audio/video or media functionality. What developers need are cross-platform abstractions and thankfully, the Plugin.Maui.Audio NuGet library does exactly that.
The Plugin helps make media playback a breeze for .NET MAUI developers, and now there is new exciting functionality with Gerald Versluis making a video about it—easily record audio with .NET MAUI and Plugin.Maui.Audio.
With the version 2.0 of the Plugin.Maui.Audio NuGet library, developers are now able to record audio directly from device microphones and play them back—works seamlessly on iOS, macOS, Android and Windows.
Gerald starts off with the basics of Plugin.Maui.Audio—the one NuGet package to rule all things media playback for .NET MAUI apps. It is easy for developers to bring in the Plugin.Maui.Audio NuGet package into existing .NET MAUI apps and tap into the new audio recording functionality, much of it implemented by the famed Shaun Lawrence. Developers first need to set up device permissions for microphone access on iOS/Android and then write just a few lines of code—voila, audio recording is implemented with ease.
Gerald shows off a smooth demo of audio recording and playing back the recorded audio. If a .NET MAUI app wants end users to unleash their inner rockstar, the updates to Plugin.Maui.Audio now allows developers to offer audio recording with ease.
Releasing an app is often half the battle. Beyond app publishing, developers need to stay ahead of the curve—close monitoring of the app is the only way for timely identification of potential glitches, crashes and usability issues to ensure user satisfaction.
Sentry is a popular open-source library for monitoring app issues like crashes/failed APIs/useage tracking—it offers detailed insights that help developers identify, prioritize and find effective resolution to issues.
Leomaris walks through how developers can get started integrating Sentry telemetry inside .NET MAUI apps—a simple registration gives developers access to the .NET MAUI Sentry SDK/NuGet package, followed by easy configuration. Developers need to hook up a DSN (Data Source Name) for Sentry—a unique identifier for the specific .NET MAUI project and this link lights up all types of desired telemetry in the Sentry dashboard.
Leomaris does a detailed writeup of all the levers of App monitoring available to developers once Sentry SDK is hooked up correctly—there is a lot of flexibility, only matched by the level of detail in the Sentry dashboard for each .NET MAUI app.
Choice is a good thing for developers—for folks wanting to go cross-platform with .NET, there are several compelling options. Avalonia UI is an open source cross-platform UI framework for .NET—it helps developers build complex native apps for all major platforms with familiar toolset/expertise.
There is good news for .NET developers—.NET MAUI and Avalonia technology stacks can now be mixed/matched seamlessly for added developer flexibility.
With a recently published GitHub repo, the wonderful folks at Avalonia announced easy integration between Avalonia and .NET MAUI frameworks—this should allow for more developer flexibility when it comes to app modernization options. There are three key scenarios supported—embedding Avalonia controls inside .NET MAUI pages, embedding .NET MAUI controls inside Avalonia views and acces to .NET MAUI Platform APIs from Avalonia code.
Being able to render .NET MAUI UI components inside Avalonia UI apps should be a big deal for the .NET MAUI ecosystem—and access to .NET MAUI Essential APIs should be sweet for Avalonia developers. The repository contains source code for demo projects showcasing each of the scenarios—more ammunition and flexibility for .NET developers for the win.
Developers should never be in doubt about what's happening in the network layer. No matter what type of app, developers need visibility any time network calls are made from/into apps—this is particularly true for cross-platform mobile/desktop apps being made with .NET MAUI.
While web apps have modern browser developer tools, native mobile/desktop apps need top-notch network debugging and nothing beats the flexibility of a true network proxy. One of the most popular network utilities for developers is Fiddler—the beloved tool turns 20 years old in Oct 2023 and a celebratory Fiddler livestream kicked off the fun.
A true network proxy is the only way to debug network issues for native apps—mobile, desktop, IoT, wearables and more. A lot of developers grew up using Fiddler, the one tool with a holistic network debugging and troubleshooting approach.
While the original Fiddler continues on Windows, the newer Fiddler Everywhere brings all of Fiddler's functionality with consistent UI across Windows, macOS and Linux. With powerful traffic capturing, API composer, team collaboration, robust Rules builder, advanced filtering and many more features, Fiddler faithfully serves the network needs of developer, Q/A folks, support engineers and end users alike.
The celebratory Fiddler livestream celebrated the illustrious 20-year journey with some passionate folks—cheers to the next 20, Fiddler.
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