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 .NET MAUI technology stack and 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 & 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 May 15, 2023:
.NET MAUI came out with the big promise of true cross-platform development with .NET, reaching mobile and desktop form factors. However, modern day Apple and Google device ecosystems stretch to various other forms factors, like wearables, TV and car dashboards. It takes innovative developers to push the envelope further than what is officially possible and Christian Strydom is definitely one of them.
After wowing us with .NET MAUI implementations in Android Auto, Christian is back with another hard-hitting video—.NET MAUI for cars, the Apple CarPlay tutorial.
Christian hits it out of the park starting out with a demo of a sample .NET MAUI app using Apple CarPlay—in an actual car dashboard screen. To show the process from scratch, Christian begins with Apple CarPlay documentation and starts out building a .NET MAUI app using .NET runtime and VS tooling. Apple CarPlay is a privileged service and requires a CarPlay iOS entitlement—this needs due diligence to request and get approved from Apple.
Armed with the right permissions, developers can spin up a new .NET MAUI project from scratch and start integrating Apple CarPlay functionality. Apple CarPlay acts as a companion app and .NET MAUI apps running on iOS need to set up the right scene delegates. Christian builds up various app templates to run in the CarPlay simulator—while Grid and List templates are nice, nothing shines better than POI templates with iOS map integrations.
The world is an oyster for cross-platform .NET development with .NET MAUI, and the road is the playground for developers looking to stretch .NET MAUI into Android Auto/Apple CarPlay—thanks, Christian, for pushing the envelope.
For majority of .NET MAUI apps, the visual tree is written in Extensible Application Markup Language (XAML)—the battle tested and flexible UI markup. Despite the popularity, folks new to XAML may complain about the learning curve—seeing complex UI with ease in XAML is the only way to showcase the simplicity and power of XAML. Leomaris Reyes is happy to drive the love of XAML home and wrote up a wonderful piece—replicating a dating profile UI in .NET MAUI.
For developers wanting to build complex beautiful UI with XAML, Leomaris recommends the obvious—break down the task into smaller chunks. The main layout of any UI can be visualized graphically into a visual structure—the XAML Grid can represent rows and columns of content.
Leomaris starts out building up the core of the UI—crisp images, rounded corners and floating buttons can combine forces to make beautiful UI. Labels and buttons can be added tastefully and CollectionView can bring to life a list of things that need to be visualized—.NET MAUI has a lot of the layouts and UI views built right in to build gorgeous UI. Thanks for the inspiration, Leomaris!
The world runs on YouTube. With never-ending content on any topic of choice, including plenty on .NET MAUI, most of us are in consumption mode when on YouTube. There are a handful who dare to be content creators, and for them, YouTube numbers matter. Wouldn't it be cool if there was a cross-platform app that made sense of YouTube statistics?
Daniel Hindrikes has recently started the journey of building YouStats from scratch and produced the second video—building an app with .NET MAUI and Telerik UI components.
Daniel begins with the app idea and an explanation of what's on offer in the Telerik UI for .NET MAUI suite—a collection of performant customizable .NET MAUI UI components that work seamlessly everywhere. YouTube statistics numbers are plentiful and visualizing the data is the best way to make sense of it—the popular Telerik Chart components are the perfect UI fit.
Daniel continues building the core of the app which would hit YouTube APIs to bring down collection of videos, along with detailed metrics. Once the data is pulled down, Daniel expertly uses variety of Telerik Charts to bind and visualize the data—Cartesian, Area, Bar and Pie charts bring to life the metrics about how each video content is performing over time.
Data visualization is the best way to present complex data and Daniel showcases the versatility of .NET MAUI with crisp Telerik UI across platforms. Cheers for the rest of the series!
One of the big benefits of .NET MAUI is platform reach—from a single shared codebase, developers can now reach mobile and desktop seamlessly. To reach macOS as a desktop platform though, there are two main options—the traditional AppKit way or the newer UIKit way.
Thankfully, with .NET MAUI, developers have a choice and James Montemagno produced an On .NET video—AppKit or UIKit for .NET MAUI Mac Apps.
James starts out with some context and an explanation of how apps are built for macOS. The traditional native way is of course using AppKit as the UI stack—this provides macOS specific UI components that were built for desktop. For mobile/tablet apps though, the UI stack is UIKit—this provides iOS and iPadOS specific UI components.
Apple's MacCatalyst is meant to bridge the gap to make iPad apps run seamlessly on macOS—apps made with UIKt can run on Macs with additional scaled real estate and access to some macOS APIs. .NET MAUI takes the MacCatalyst route by default—the goal is to reuse code/UI for iOS/iPadOS on macOS. However, James points out that .NET MAUI developers do have a choice whether the native UI rendered on macOS is AppKit or UIKit—changing up the UIDeviceFamily key value in info.plist file will render UI accordingly.
Developers can also make the switch dynamically at runtime with platform checks—this can allow for rendering UIKit for iOS/iPadOS and AppKit for macOS. Developers should have a lot more confidence reaching the Mac desktop with .NET MAUI—additional UI flexibility should help.
The .NET MAUI podcast is back and the three musketeers—Matt Soucoup, David Ortinau and James Montemagno got together to record .NET MAUI podcast Episode #118. With the timing of things, the topics covered were obvious—.NET MAUI goodies @ Microsoft Build, .NET 8 updates, Azure news and more.
Microsoft’s premier developer conference is coming up soon—Build 2023 is happening May 23-25. This year, Build is both virtual and in-person in Seattle. While developers can watch many sessions live online, for folks joining in-person, there are lots of interaction opportunities, like meet the experts, demo areas, workshops and more. Much of the .NET MAUI team will be there and developers can expect some big .NET MAUI news—tooling updates, enterprise stories and some special guests.
David, James and Matt covered some recent developments in the .NET MAUI ecosystem—Upgrade Assistant, .NET 8 Preview 3 and Visual Studio updates. There is never dearth of news on AI and Azure front—overall, a nice podcast episode recapping latest .NET news, with an eye towards Microsoft Build. Going to be good times for .NET developers!
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.