Современные пользователи ожидают, что приложения будут работать одинаково хорошо на Windows, macOS, iOS и Android. Для разработчиков это означает необходимость создавать кроссплатформенные приложения, которые выглядят и функционируют одинаково на разных устройствах. Именно для этого Microsoft предлагает .NET MAUI (Multi-platform App UI) — мощный фреймворк, объединяющий опыт Xamarin.Forms и возможности .NET 9. В этой статье разберём полный цикл: от идеи до публикации готового приложения.
Что такое .NET MAUI
.NET MAUI — это кроссплатформенный фреймворк для создания приложений на C# и XAML. Он позволяет использовать единый код и общий UI для разных платформ:
— Windows
— macOS
— iOS
— Android
При этом разработчики могут подключать нативные API, использовать библиотеку Essentials для работы с устройством и расширять интерфейс под каждую платформу.

Планирование приложения: от идеи до архитектуры
Перед стартом важно определить:
1. Кто целевая аудитория приложения.
2. Какие платформы будут поддерживаться.
3. Какие API и нативные функции понадобятся (камера, геолокация, уведомления).
4. Архитектуру проекта (MVVM, MVU или Blazor Hybrid).
Совет: для кроссплатформенной логики удобно использовать MVVM, а для современных приложений с веб-контентом — Blazor Hybrid, который позволяет встраивать Razor-компоненты прямо в MAUI.

Создание проекта в Visual Studio
— Установите Visual Studio 2022/2025 с рабочей нагрузкой «.NET Multi-platform App UI».
— Создайте новый проект «.NET MAUI App».
Структура проекта уже готова:
— MainPage.xaml и MainPage.xaml.cs — основной экран.
— Platforms — папки с кодом для каждой платформы.
— MauiProgram.cs — точка входа приложения.

Разработка интерфейса
UI в .NET MAUI создаётся на XAML или C#. Например, простая страница:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
x:Class="MyApp.MainPage">
<VerticalStackLayout>
<Label Text="Добро пожаловать в .NET MAUI!"
FontSize="24"
HorizontalOptions="Center" />
<Button Text="Нажми меня"
Clicked="OnButtonClicked" />
</VerticalStackLayout>
</ContentPage>
Кнопки, списки, панели и другие элементы работают одинаково на всех платформах, но при этом сохраняют нативный вид.

Работа с платформенными API
Через .NET MAUI Essentials можно использовать встроенные возможности устройства:
— Датчики (акселерометр, гироскоп).
— Камера и галерея.
— Геолокация.
— Push-уведомления.
Например, получение текущего местоположения:
var location = await Geolocation.Default.GetLocationAsync();
if (location != null)
Console.WriteLine($"Широта: {location.Latitude}, Долгота: {location.Longitude}");
Интеграция с библиотеками
В .NET MAUI поддерживается NuGet, поэтому можно подключать популярные пакеты:
— SQLite для локальной базы данных.
— Newtonsoft.Json или System.Text.Json для сериализации.
— CommunityToolkit.Maui для готовых UI-компонентов.

Тестирование приложения
Разработчики могут запускать проект:
— на эмуляторе Android;
— на iOS-симуляторе (требуется macOS);
— на Windows или macOS напрямую.
Совет: используйте Hot Reload, чтобы изменения в XAML применялись сразу, без полной пересборки.

Оптимизация и отладка
— Анализируйте производительность с помощью Profiler в Visual Studio.
— Проверяйте память и утечки через встроенные средства диагностики.
— Для iOS и Android используйте «Release»-сборку, чтобы оценить реальную скорость.

Публикация приложения
1. Для Android создаётся APK или AAB, который можно загрузить в Google Play.
2. Для iOS — IPA, распространяемый через App Store.
3. Для Windows — MSIX через Microsoft Store.
4. Для macOS — .pkg или Mac App Store.

Преимущества .NET MAUI
— Единая кодовая база для 4 платформ.
— Поддержка нативных API.
— Быстрая разработка благодаря Hot Reload.
— Интеграция с экосистемой .NET и Visual Studio.

.NET MAUI — это мощный инструмент, который позволяет разработчикам создавать современные кроссплатформенные приложения, сохраняя при этом нативный опыт пользователей. От идеи до релиза весь процесс можно вести в Visual Studio, используя общий код, XAML-интерфейсы и богатый набор библиотек. Для бизнеса это означает сокращение затрат, а для программистов — удобство и скорость разработки.