What is .NET MAUI?

10 min read

.NET Multi-platform App UI (.NET MAUI) is a cross-platform framework for creating native mobile and desktop apps with C# and XAML. Using .NET MAUI, you can develop apps that can run on Android, iOS, macOS, and Windows from a single shared code-base.


Click to jump ahead...

Who .NET MAUI is for


.NET MAUI is for developers who want to:

  • Write cross-platform apps in XAML and C#, from a single shared code-base in Visual Studio.
  • Share UI layout and design across platforms.
  • Share code, test, and business logic across platforms.

How .NET MAUI works


.NET MAUI unifies Android, iOS, macOS, and Windows APIs into a single API that allows a write-once run-anywhere developer experience, while additionally providing deep access to every aspect of each native platform.

.NET 6 provides a series of platform-specific frameworks for creating apps: .NET for Android, .NET for iOS, .NET for macOS, and Windows UI (WinUI) Library. These frameworks all have access to the same .NET 6 Base Class Library (BCL). This library abstracts the details of the underlying platform away from your code. The BCL depends on the .NET runtime to provide the execution environment for your code. For Android, iOS, and macOS, the environment is implemented by Mono, an implementation of the .NET runtime. On Windows, WinRT performs the same role, except it's optimized for the Windows platform.

While the BCL enables apps running on different platforms to share common business logic, the various platforms have different ways of defining the user interface for an app, and they provide varying models for specifying how the elements of a user interface communicate and interoperate. You can craft the UI for each platform separately using the appropriate platform-specific framework (.NET for Android, .NET for iOS, .NET for macOS, or WinUI), but this approach then requires you to maintain a code-base for each individual family of devices.

.NET MAUI provides a single framework for building the UIs for mobile and desktop apps. The following diagram shows a high-level view of the architecture of a .NET MAUI app:

What .NET MAUI provides


.NET MAUI provides a collection of controls that can be used to display data, initiate actions, indicate activity, display collections, pick data, and more. In addition to a collection of controls, .NET MAUI also provides:

  • An elaborate layout engine for designing pages.
  • Multiple page types for creating rich navigation types, like drawers.
  • Support for data-binding, for more elegant and maintainable development patterns.
  • The ability to customize handlers to enhance the way in which UI elements are presented.
  • Essential cross-platform APIs for accessing native device features. These APIs enable apps to access things like the GPS, the accelerometer, and battery and network states. For more information, see .NET MAUI essentials.
  • A cross-platform graphics library, that provides a common API to target multiple platforms, which enables you to share your 2D drawing code between platforms, or mix and match graphics implementations with a single app.
  • A single project system that uses multi-targeting to target Android, iOS, macOS, and Windows. For more information, see .NET MAUI Single project.
  • .NET hot reload, so that you can modify both your XAML and your managed source code while the app is running, then observe the result of your modifications without rebuilding the app. For more information, see .NET hot reload.

.NET MAUI essentials

.NET MAUI provides cross-platform APIs for native device features. Examples of functionality provided by .NET MAUI essentials includes:

  • Access to sensors, such as the accelerometer, compass, and gyroscope on devices.
  • Ability to check the device's network connectivity state, and detect changes.
  • Provide information about the device the app is running on.
  • Copy and paste text to the system clipboard, between apps.
  • Pick single or multiple files from the device.
  • Store data securely as key/value pairs.
  • Utilize built-in text-to-speech engines to read text from the device.
  • Initiate browser-based authentication flows that listen for a callback to a specific app registered URL.

.NET MAUI single project

.NET MAUI apps typically consist of a single project that can target Android, iOS, macOS, and Windows. This delivers the following benefits:

  • One project that targets multiple platforms and devices.
  • One location to manage resources such as fonts and images.
  • Multi-targeting to organize platform-specific code.
powered by Typeform