Что такое .NET MAUI
•NET Multi-Platform App UI (.NET MAUI) — это кроссплатформенный фреймворк для создания собственных мобильных и классических приложений с помощью C# и XAML. С помощью .NET MAUI можно разрабатывать приложения, которые ,будут работать на Android, iOS, macOS и Windows из одной общей базы кода.
•.NET MAUI является открытым исходным кодом и является эволюцией Xamarin.Forms, расширенной от мобильных до классических сценариев, с элементами управления пользовательским интерфейсом, перестроенными с нуля для повышения производительности и расширяемости.
Как работает .NET MAUI
•.NET MAUI объединяет API-интерфейсы Android, iOS, macOS и Windows в единый API, который предоставляет разработчикам возможность выполнять однократную запись в любом месте, обеспечивая дополнительный доступ к каждому аспекту каждой собственной платформы.
•.NET 6 или более поздней версии предоставляет ряд платформ для создания приложений: .NET для Android, .NET для iOS, .NET для Mac Catalyst и библиотеки Пользовательского интерфейса Windows 3 (WinUI 3). Все эти платформы имеют доступ к одной библиотеке базовых классов .NET (BCL). Эта библиотека абстрагирует сведения о базовой платформе от кода. Библиотека BCL имеет зависимость от среды выполнения .NET, в которой выполняется код приложения. Для Android, iOS и macOS среда реализуется Mono, реализация среды выполнения .NET. В Windows .NET CoreCLR предоставляет среду выполнения.
•Хотя BCL позволяет приложениям, работающим на разных платформах, совместно использовать общую бизнес-логику, различные платформы имеют различные способы определения пользовательского интерфейса для приложения, а также предоставляют различные модели для указания того, как элементы пользовательского интерфейса взаимодействуют и взаимодействуют. Вы можете создать пользовательский интерфейс для каждой платформы отдельно с помощью соответствующей платформы (.NET для Android, .NET для iOS, .NET для Mac Catalyst или WinUI 3), но этот подход требует поддержания базы кода для каждого отдельного семейства устройств.
NET MAUI предоставляет единую платформу для создания пользовательских интерфейсов для мобильных и классических приложений. На следующей схеме показано высокоуровневое представление архитектуры приложения .NET MAUI:
•В приложении .NET MAUI вы пишете код, который взаимодействует с элементами управления .NET MAUI и уровнем API (1). Затем этот слой напрямую использует собственные API платформы (3). Кроме того, код приложения может напрямую выполнять API платформы (2).
•Приложения Android, созданные с помощью .NET MAUI, компилируются из C# на промежуточный язык (IL), который затем jIT-код компилируется в собственную сборку при запуске приложения.
•Приложения iOS, созданные с помощью .NET MAUI, полностью заранее компилируются из C# в собственный код сборки ARM.
•приложения macOS, созданные с помощью .NET MAUI, используют Mac Catalyst, решение от Apple, которое приносит ваше приложение iOS, созданное с помощью UIKitна рабочий стол, и расширяет его с помощью дополнительных API AppKit и платформы по мере необходимости.
•Приложения Windows, созданные с помощью .NET MAUI, используют библиотеку Пользовательского интерфейса Windows 3 (WinUI 3) для создания собственных приложений, предназначенных для рабочего стола Windows.
Кроссплатформенные API для функций устройств
NET MAUI предоставляет кроссплатформенные API для собственных функций устройств. Примеры функциональных возможностей включают:
•Доступ к датчикам, таким как акселерометр, компас и гироскоп на устройствах.
•Возможность проверить состояние сетевого подключения устройства и обнаружить изменения.
•Узнать сведения об устройстве, на котором запущено приложение.
•Скопировать и вставить текст в системный буфер обмена между приложениями.
•Выбрать один или несколько файлов с устройства.
•Безопасно хранить данные в виде пар "ключ-значение".
•Использовать встроенные подсистемы преобразования текста в речь для чтения текста с устройства.
Инициировать потоки проверки подлинности на основе браузера, которые прослушивают обратный вызов на определенный зарегистрированный URL-адрес приложения.
Преимущества разработки на MAUI:
•В процессе разработки создается единый проект, который использует общий код для всех платформ
•MAUI предоставляет прямой доступ к нативным API каждой платформы, в том числе к аппаратным возможностям платформ
•При создании приложений мы можем использовать платформу .NET и язык программирования C# (а также F#), который является достаточно производительным, и в тоже время ясным и простым для освоения и применения
•Богатая коллекция встроенных элементов управления
•Поддержка привязки данных
•Возможности настройки поведения визуального интерфейса и встроенного функционала
•Богатые возможности по работе с графикой
•Наличие hot reload, что упрощает разработку
В этой статье мне хотелось подчеркнуть особенности работы на платформе .NET MAUI и удобстве разработки. Надеюсь вы подчерпнули для себя определённые знания для начала изучения платформы. Желаю вам успеха!