What Microsoft’s .NET MAUI means for the future of Xamarin and cross-platform app development
MAUI will boost Microsoft’s position in the cross-platform app development tools space, and help Xamarin compete against Flutter and React Native.
From Xamarin.Forms to MAUI
Before we dive into what MAUI means for developers, it’s important to understand the difference between Xamarin and Xamarin.Forms. Xamarin extends .NET with tools and libraries for building mobile apps for iOS, Android, and Windows. Xamarin.Forms is Microsoft’s cross-platform framework for building mobile apps with a single shared code-base. Put another way, Xamarin is the platform and Xamarin.Forms is a feature.
Like Xamarin.Forms, .NET MAUI is open source and a cross-platform framework for creating mobile and desktop apps with a single, shared codebase, written in C#. Microsoft will officially support Android, iOS, macOS (through Mac Catalyst), and Windows. MAUI also promises deeper integration with other Microsoft tools and services — and, ultimately, better performance.
If you read some of our previous blog posts on Xamarin, you know about ArcTouch’s long history with it. Our Xamarin development team has been building cross-platform apps with it since long before Microsoft acquired Xamarin in 2016 — including notable projects for GUESS, Hawaiian Airlines, and Warner Brothers.
We’re excited about the arrival of .NET MAUI later this year. But it does represent some big changes vs. using legacy Xamarin and Xamarin.Forms for cross-platform development. Here are six things businesses and app developers need to know about .NET MAUI.
1. MAUI is a first-class .NET citizen
Xamarin has been popular among .NET developers due to the ability to share the business logic of other .NET applications — reducing the development time for connecting apps to already built services.
However, if you’re a .NET developer, you’ve had to navigate many different flavors of .NET — including the .NET Framework, .NET Core, and Mono, among others. The .NET team reduced some of that fragmentation by unifying all of these variations with the release of .NET 5 in November 2020. MAUI, as part of .NET 6 due out in November 2021, takes it to the next level.
With that unification, Xamarin will be part of the .NET platform and Xamarin.Forms is moving to .NET in the form of .NET MAUI. To be part of .NET means that Xamarin and Xamarin.Forms, or .NET MAUI, are first-class citizens within Microsoft. Together, it’s all part of a bigger ecosystem getting support from the teams working on the .NET platform. And that means the .NET team now prioritizes mobile — specifically Android and iOS — when planning upcoming releases of the .NET platform.
2. MAUI improves inner-loop development
One of the biggest complaints among Xamarin developers is that, in the era of rapid releases and continuous delivery, build and run times can be frustratingly slow.
These days, developers expect to see the result of code changes immediately. With all the variations — from different hardware, screen sizes, OS versions, etc. — app developers need to be able to check detailed changes right away. When editing code, we don’t want to repeatedly wait to go through the whole build process to check whether the new margin value of a button is correct, or that a code fix worked.
The Xamarin team has been improving the dev cycle in recent years, but it hasn’t been on par with Flutter and React Native. MAUI adds features to streamline this, including hot reload and hot restart — which mobile developers are familiar with from other development tools. With these features, developers can see changes they just made instantly in an already running app without rebuilding it. This will help developers be more productive and less likely to lose focus sitting idle waiting.
3. MAUI offers a unified project interface
Today, the structure of a cross-platform app built with Xamarin.Forms consists of one platform-agnostic project plus separate project files for each platform (Android, iOS, Windows, etc.). As an example, if you’re developing a mobile application for iOS and Android, you’ll need to create and work in three different project files. For the most seasoned Xamarin developer, this isn’t a big issue — though it is a nuisance. However, first-time Xamarin developers may find it confusing when they have to add platform-specific features and make them accessible to the cross-platform layer.
With .NET MAUI, developers work within a single interface (shown below) and project file where they can write both cross-platform and platform-specific code.
4. MAUI will address app performance issues
Apps built in Xamarin have a reputation for having performance issues, particularly when it comes to app load time. Improving the startup times of Xamarin applications is an area Microsoft has been working on in the past few years (we wrote about this after the Xamarin developer summit in 2019).
One of the culprits is the renderer architecture, which was introduced more than five years ago with Xamarin.Forms. With .NET MAUI, Microsoft is rebooting the renderer’s structure with a feature it calls “Handlers.” It’s being architected to be more performant, extensible, and practical than its predecessor. MAUI also continues to benefit from any performance improvements made to the .NET platform.
5. Xamarin.Forms is sunsetting
If you needed one reason for learning about .NET MAUI, this is probably it: Xamarin.Forms is sunsetting. We’ve built several lovable apps with Xamarin.Forms, which allowed our team to design UIs and share logic and more code across platforms. The latest version, Xamarin.Forms 5.0, was recently released — and it will not receive any new features. Microsoft did commit to addressing bugs with service releases up until November 2022.
You may be wondering how to migrate your already developed Xamarin.Forms app to .NET MAUI right now. While half a dozen .NET MAUI preview versions have been released, it’s probably too early to start migrating production apps. Microsoft promises an easy migration path so that app developers won’t need to rewrite their existing Xamarin.Forms applications to move to .NET MAUI.
6. MAUI takes the web to any platform with Blazor
We’ve been talking about Xamarin.Forms evolving to .NET MAUI — but MAUI is not only about Xamarin.Forms’s evolution. Web developers can now write web applications with Blazor, a framework for building interactive client-side web UI with .NET.
MAUI allows the creation of cross-platform hybrid apps written in Blazor to run on the desktop. That means that web developers can continue to build UIs with HTML and CSS — and access device capabilities as if they were working on a native application. Apps written in MAUI Blazor can also run on Android, iOS, and macOS (Mac Catalyst).
MAUI is a big step for cross-platform development
Cross-platform app development continues to improve — and .NET MAUI is another step forward to improve developer efficiency and user experience. With .NET MAUI, app developers can spend less time maintaining multiple projects within the same app to run on the many mobile and web platforms. And we can spend more time focusing on building great features and experiences.
.NET MAUI will make Xamarin more competitive against Flutter and React Native, especially performance-wise. It will be an easy decision to migrate Xamarin.Forms apps to .NET MAUI to benefit from increased performance, easier code maintenance, shorter development cycles, and better developer technical support.
Speaking of migration — stay tuned. In an upcoming post, we’ll cover all the key factors businesses and developers should consider when readying their Xamarin apps for .NET MAUI. Follow us on LinkedIn, Twitter, and Facebook to be updated on all our new blog posts.
Need help with your cross-platform app project?
ArcTouch has built apps with cross-platform technologies since the dawn of the App Store. Contact us to learn more about how cross-platform app development can accelerate your product roadmap and save you money.