Welcome to the Sands of MAUI—newsletter-style issues dedicated to bringing together the 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.
.NET developers are excited with the reality of .NET Multi-platform App UI (.NET MAUI)—the evolution of modern .NET cross-platform developer technology stack. With stable tooling and a rich ecosystem, .NET MAUI empowers developers to build native cross-platform apps for mobile/desktop from single shared codebase, while inviting web technologies in the mix.
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 toward developer experiences 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 September 16, 2024:
Modern .NET is powerful, open-source, cross-platform and welcoming to all with mature tooling accompanied by rich ecosystems. The next big milestone with .NET is already in the works—.NET 9 is scheduled for arrival in November 2024. As is the custom with each edition of .NET, Stephen Toub has written up the annual epic post for the most hardcore .NET fans—performance improvements in .NET 9.
.NET 9 should be an incredibly exciting release for developers—more than 7,500 pull requests (PRs) have been merged into dotnet/runtime in the last year, of which a significant percentage have touched on .NET performance. With a simple benchmarking setup, Stephen goes about the business of showcasing .NET 9 performance at all levels of the stack—JIT, PGO, Tier 0, Loops, Bounds Checks, Arm64 and more.
With .NET 9, developers will see significant enhancements across .NET Libraries, Runtime and SDKs, all toward building modern client, cloud native and intelligent apps. It is good to know that however developers use .NET 9, the underlying platform will squeeze out every bit of performance—cheers to Stephen for another year of epic performance writeup.
Modern cross-platform apps are complex—one has to think through ideation, design and development frameworks/tools/patterns. While .NET MAUI developers enjoy a rich ecosystem for productivity, a little inspiration never hurts—particularly, real world success stories. A new case study is out bringing rock climbing to the masses with .NET MAUI, Unity and Azure—say hello to Alpha Outdoors’ Red-Point app.
Passionate rock climber Martin Mora founded Alpha Outdoors and teamed up with Matthew Robbins, a seasoned .NET developer. The goal was to build the .NET MAUI app Red-Point to make climbing safer and more accessible. The Red-Point app aims to be a digital climbing companion, with more than 500 climbing areas mapped out with 3D drone scans to capture detailed topographical data of each climbing route.
The Red-Point app leverages .NET MAUI for core functionalities and native UI, Unity to handle 3D rendering for detailed route visualizations, and Azure for authentication, data management and cloud services. By leveraging the comprehensive suite of .NET technologies and Azure services, Alpha Outdoors not only built a sophisticated app, but also positioned themselves for continuous growth and innovation in the rock-climbing community. The success of Red-Point underscores the power of integrating innovative technologies with a clear vision to solve real-world problem—a wonderful success story to inspire .NET MAUI developers.
.NET MAUI is the evolution of modern .NET cross-platform development stack, allowing developers to reach mobile and desktop form factors from a single shared codebase. Android remains a popular target platform, and modern .NET aims to enable developers to take advantage of newest Android platform features. .NET 9 offers a wonderful new enhancement for Android fans, and Dean Ellis wrote up the announcement—say hello to Android Asset Packs for .NET and .NET MAUI Android apps.
Part of the new Android App Bundles (AAB) package format is the ability to place assets into a separate package—hence the name Android Asset Packs. This technique allows developers to stay within the basic app package size allowed by Google Play, but put assets in a separate bigger package—the only condition is everything be marked as AndroidAsset build action. Modern .NET build systems now fully embrace Android Asset Packs for .NET Android and .NET MAUI Android apps—MSBuild Metadata is used to control the creation of the asset packs.
Dean walks through all the metadata configuration developers can use to set up, check status and download the asset packs on demand, including how to debug and test such solutions with .NET builds. Both .NET Android and .NET MAUI cross-platform apps can now leverage the full potential of Android Asset Packs—let’s build some amazing Android apps.
.NET MAUI is built to enable .NET developers to create cross-platform apps for Android, iOS, macOS and Windows, with deep native integrations, platform-native UI and hybrid experiences. With increasingly complex app needs, .NET MAUI wants to help developers be set up for success—the .NET MAUI Shell tries to help. It takes a bit of knowledge to understand how to leverage the .NET MAUI Shell though, and Héctor Pérez has started up an excellent series—mastering the .NET MAUI Shell.
The .NET MAUI Shell aims to reduce the complexity of app development by providing the fundamental features out of the box—like describing the visual hierarchy of an app, familiar navigation system for users with flyouts/tabs, a common URI-based navigation scheme and an integrated search handler.
Hector starts from scratch to guide fellow developers—creating and wiring up a .NET MAUI Shell page. With the Shell in place, Hector creates several pages that contain mini utilities for users—a color generator that combines three slider values to obtain an RGB color and a QR code generation utility from a given URL. With masterful usage of Telerik UI, Hector showcases how to come up with useful utilities and wire up the views easily for navigation with the .NET MAUI Shell hierarchy—kudos for a great writeup.
VS Code is the uber-popular lightweight code editor that works seamlessly across Windows/macOS/Linux—it brings a rich Extensions ecosystem for .NET development and provides consistency of developer experiences. With C# Dev Kit, .NET MAUI Extension for VS Code and other solutions, .NET MAUI developers on Macs have plenty of tooling to be productive. However, building modern apps can feel like half the battle—it is challenging to archive and publish apps across platforms. James Montemagno hosted András Tóth for a recent On .NET show that might be rather helpful for developers—easily archive and publish .NET MAUI apps from VS Code.
Cross-platform apps are intrinsically difficult to publish—there are lots of differences across iOS, Android and Windows ecosystems/app stores. The .NET MAUI Archive/Publish Tool offers to help—it’s a popular Visual Studio Code Extension that provides a set of essential tools to streamline the process of packaging/publishing .NET MAUI apps.
András started from the basics—how developers can get started with the .NET MAUI Archive/Publish VS Code Extension. The Extension equips developers with the necessary tools to manage the tricky parts of app pulishing right from inside VS Code—things like certificates, provisioning profiles, keystore files and more all become easy to manage. András does a full walk-through of the developer experience of publishing iOS and Android .NET MAUI apps from inside VS Code—developer productivity for the win!
That’s it for now.
We’ll see you next week with more awesome content relevant to .NET MAUI.
Cheers, developers!
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.