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 January 9, 2023:
Happy New Year 2023. It is hard to believe just how much has happened in the .NET MAUI landscape in the past year. Maddy Montaquila and David Ortinau recently hosted the .NET MAUI Community Standup for January—coming out of the holiday season, the standup ended up being an honest recap of progress with .NET MAUI and what lies ahead.
May of 2022 saw .NET MAUI being shipped as a GA product riding on .NET 6, with ongoing work to release stable tooling support with Visual Studio on both Windows and macOS. With community support and a lot more engineering work, .NET MAUI also had Day 0 support for .NET 7—things will only get better going forward.
The developer community has been busy producing tools/content for .NET MAUI and Maddy covered a lot of the highlights showing off the excitement around .NET MAUI. An informal community standup deserved an open AMA-style Q/A section—the duo answered a lot of questions with honesty. David mentioned the first preview builds of .NET MAUI aimed at .NET 8 runtime are already in the works—good times ahead this year.
Hope everyone had a very Merry Christmas with their family and friends—a time to reflect and set goals for the next year with the aims of continual growth. To get in the spirit of Christmas and sharing, Leomaris Reyes wrote up an article exploring adorable Christmas UI in .NET MAUI.
Inspired from Christmas illustration packs from Dribble, Leomaris set about recreating the UI in .NET MAUI for some UI exercise. The key to building any complex UI is to break up the work into smaller manageable pieces—Leomaris did just that dividing up the design into blocks that could be built with XAML in .NET MAUI. As a part of building up the cute festive UI, Leomaris touched upon several aspects of building modern UI with .NET MAUI—XAML styles, adding external Fonts, Shadows and adaptation to light/dark mode.
For developers building modern mobile/desktop apps with .NET MAUI, there is no dearth of knowledge or inspiration—let's build the next amazing UI.
Almost all modern mobile/desktop apps have to deal with images—it's often the wow factor in the user experience. Developers want ease of use when working with images and thankfully, .NET MAUI helps out big time. Gerald Versluis is back with another polished video in the .NET MAUI 101 series—this time, talking about image caching in .NET MAUI.
.NET MAUI has image caching built-in, for any images pulled down externally and there are APIs that help developers have fine grained control over how caching operates. Gerald always keeps things simple to follow, and starts out with the default .NET MAUI template showing the .NET Bot image.
With a quick change to pull down the .NET Bot image from a remote source, Gerald showcases one big benefit in .NET MAUI—image caching is turned on by default and developers have full control over cache validity. Easy as pie—.NET MAUI is here to help developers make image caching a no-brainer.
Developers might have a need to play music or sound bites in their .NET MAUI apps—perhaps as a part of a game or multi-media app or user interaction. While there are cross-platform abstractions/plugins out there, sometimes nothing beats going down to the native platform level—developers gain full fidelity playback and a plethora of APIs.
There are two built-in ways of music playback for mobile devices—MediaPlayer on Android and AVFoundation on iOS. The good news is developers can tap into native platform sound playback from the comforts of .NET MAUI C# code—what's called for is shared code and configurations. Both iOS and Android offer audio/video file playback, with a rich set of management APIs such as seeking, looping and volume control.
Bohdan starts out demonstrating sound playback through MediaPlayer on Android and AVFoundation on iOS, before tying it all together with an abstracted .NET MAUI C# Interface. Multimedia files need special configurations for iOS/Android in .NET MAUI .csproj files—Bohdan has us sold with TheLordOfTheRings namespace.
The need for real-time apps is nothing new—there are a plethora of modern day app experiences that demand real-time interactivity. Thankfully, there are plenty of technology stack options that help developers build real-time experiences and abstract away the transport layer complexities.
While the cloud helps with backend services pumping out real-time data, client experiences can be lit up with modern cross-platform technologies—.NET MAUI can play the perfect host for mobile/desktop real-time experiences. Mangesh Gaherwar wrote up an article combining the best of cloud and client experiences—real-time apps with .NET MAUI Blazor and Azure SignalR service.
The goal Mangesh had was to build a temperature dashboard app in .NET MAUI, that would show real-time data coming from a hosted Azure SignalR service triggered by an Azure Function. Mangesh shows off a lot of code in steps—a trigger Azure Function, a broadcaster Function and of course, the .NET MAUI app with Blazor that connects to the real-time SignalR backend service.
The end result is a modern mobile/desktop temperature dashboard showing real-time data from the cloud—no dearth of inspiration for .NET MAUI developers looking to light up real-time app experiences.
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