Кроссплатформенная разработка
Начинаем работу с .NET MAUI
С помощью .NET MAUI вы можете создавать нативные приложения из единой кодовой базы для Android, iOS, macOS, Windows и Tizen.
В этой статье я расскажу про .NET MAUI, который недавно достиг Всеобщей доступности. Эта статья основана на моем выступлении на ABP Community Talks:
Что такое .NET MAUI?
.NET MAUI (.NET Multi-platform App UI) — это платформа для создания современных, многоплатформенных, нативно скомпилированных iOS, Android, macOS, Windows приложений с использованием C# и XAML в единой кодовой базе.
С помощью .NET MAUI вы можете создавать нативные приложения из единой кодовой базы для Android, iOS, macOS, Windows и Tizen, который поддерживает Samsung.
Если вы использовали Xamarin Forms, MAUI будет вам хорошо знаком. Вместо разных проектов для настольных компьютеров, мобильных устройств и каждой ОС весь ваш код находится в одном проекте. .NET MAUI также обеспечивает размещение Blazor в MAUI со встроенными элементами управления веб-представлением для собственного запуска компонентов Razor на целевом устройстве. Отделенный пользовательский интерфейс и единый проект позволяют вам сосредоточиться на одном приложении, а не манипулировать уникальными потребностями нескольких платформ. Это новое детище Microsoft, и я знаю, что в ближайшие месяцы вместе в.NET MAUI появится больше библиотек и более широкая экосистема.
Rich компоненты
Экосистема UI-компонентов уже богата.
Вы можете быстро достичь продуктивности с красивыми переиспользуемыми UI-компонентами от ведущих поставщиков, таких как Syncfusion, DevExpress, UX Divers, GrapeCity, Telerik…
Xamarin или MAUI
.NET MAUI — это следующий шаг для Xamarin.Forms. Я покажу вам некоторые преимущества MAUI.
1. Единый проект для разных платформ
Всеми платформами можно управлять в одном проекте. Это означает, что не будет нескольких проектов для каждой целевой платформы. Xamarin использует отдельные проекты для каждой платформы. В MAUI общие файлы ресурсов находятся в одном проекте. Единый манифест приложения, в котором указаны название, идентификатор и версия приложения. Единая точка входа для кроссплатформенного приложения поможет вам быстрее разрабатывать продукты.
2. Графические API
Xamarin не имеет прямых API-интерфейсов для рисования. Вы должны делать это на нативной платформе, используя рендереры, или с помощью Skiasharp. Но .NET MAUI абстрагирует нативное рисование. Кроссплатформенная графическая функциональность в .NET MAUI предоставляет холст для рисования и раскрашивания фигур.
3. Поддержка .NET 6
.NET MAUI интегрирован в .NET 6, с другой стороны, Xamarin.Forms — это .NET Core 3.1. Благодаря интеграции с .NET 6 вы можете использовать новые функции .NET 6 и функции C# 10 в .NET MAUI.
4. Тонкие рендереры
В приложении Xamarin мы использовали кастомные средства визуализации. Теперь их нет, но мы можем использовать тонкие рендеры (Slim Renderers). Это упростит ваше приложение и процесс разработки.
5. Одно место для управления всеми ассетами
Вы можете управлять такими ресурсами, как шрифты, изображения, заставки, CSS и прочими ресурсами из одного места. У Xamarin.Forms было несколько проектов для каждой платформы.
6. Мультитаргетинг для организации кода под конкретную платформу
Проект .NET MAUI содержит папку «Платформы», где каждая дочерняя папка представляет отдельную поддерживаемую платформу. Таким образом, вы можете легко управлять кодом для разных платформ.
7. Поддержка шаблона Model View Update (MVU)
Как вы знаете, Xamarin.Forms поддерживает шаблоны Model-View-Viewmodel и ReactiveUI. В дополнение к этому .NET MAUI поддерживает шаблоны разработки Model-View-Update и Blazor. Этот шаблон обеспечивает унифицированный способ создания кросс-платформенных нативных фронтендов из единой базы кода.
8. Поддержка Blazor
Blazor — одна из самых адаптивных моделей программирования для создания веб-приложений. .NET 6 расширяет целевые сценарии Blazor, включая в них нативные десктопные приложения, которые могут полагаться на веб-рендеринг. Десктоп Blazor будет структурирован аналогично тому, как работает Electron.
9. Унифицированные библиотеки
.NET MAUI предлагает унификацию важнейших библиотек. Фреймворк предоставляет несколько преимуществ за счет объединения библиотеки Xamarin.Essentials с .NET MAUI, чтобы вы могли легко использовать возможности устройства, такие как датчики устройства, фотографии, контакты и другие службы, которые вы используете на регулярной основе, такие как аутентификация или безопасное хранилище.
10. Полная поддержка горячей перезагрузки
Вы можете изменять код XAML и исходный код во время работы приложения и наблюдать за результатом ваших изменений не останавливая, не пересобирая и не перезапуская ваше приложение.
Почему .NET MAUI?
Доступность прежде всего
Одним из основных преимуществ использования нативного UI является унаследованная поддержка специальных возможностей. Это упрощает создание высокодоступных приложений с семантическими службами.
- Свойства, такие как описание, подсказка и заголовок.
- Фокус
- чтение с экрана
- Свойства автоматизации
Легко поддержать новую платформу
.NET MAUI разработан с прицелом на расширяемость, поэтому вы никогда не упретесь в стену. Возьмем, к примеру, элемент управления Поле ввода — канонический пример элемента управления, который по-разному отображается на разных платформах. Android рисует подчеркивание под текстовым полем, и разработчики часто хотят удалить это подчеркивание. С .NET MAUI для настройки каждого поля во всем проекте требуется всего несколько строк кода.
API для доступа к сервисам
.NET MAUI предоставляет кроссплатформенные API для собственных функций устройств. Примеры функциональных возможностей, предоставляемых .NET MAUI для доступа к функциям устройств, включают:
- Доступ к датчикам, таким как акселерометр, компас и гироскоп на устройствах.
- Возможность проверить состояние сетевого подключения устройства и обнаружить изменения.
- Получение сведений об устройстве, на котором выполняется приложение.
- Скопируйте и вставьте текст в системный буфер обмена между приложениями.
- Выберите один или несколько файлов с устройства.
- Безопасное хранение данных в виде пар «ключ—значение».
- Используйте встроенные механизмы преобразования текста в речь для чтения текста с устройства.
- Инициируйте потоки проверки подлинности на основе браузера, которые прослушивают обратный вызов на определенный зарегистрированный URL-адрес приложения.
Глобальные операторы использования и пространство имен файлов
.NET MAUI использует новые функции C# 10, представленные в .NET 6, в том числе глобальные операторы использования и пространства имен файлов. Это отлично подходит для уменьшения беспорядка в ваших файлах.
Один проект для разных платформ
В новых проектах .NET MAUI платформы помещаются во вложенную папку, которая позволяет сосредоточиться на приложении. В папке «Ресурсы» вашего проекта у вас есть единое место для управления шрифтами, изображениями, иконками приложения, заставкой, необработанными ресурсами и стилями. NET MAUI выполнит работу по их оптимизации для уникальных требований каждой платформы.
Blazor для десктопа и мобильных устройств
NET MAUI также отлично подходит для веб-разработчиков, которые хотят запускать веб-код в нативных клиентских приложениях. Вы можете использовать свои навыки веб-разработки для создания кроссплатформенных нативных клиентских приложений для мобильных устройств, десктопов и веба. Он изначально выполняет ваши компоненты Blazor на устройстве. WebAssembly не нужен! И рендерит их во встроенном контроле веб-представления. Ваши компоненты Blazor компилируются и выполняются в процессе .NET, они не ограничены веб-платформой и могут использовать любые нативные функции платформы, такие как уведомления, Bluetooth, геолокация и датчики, файловая система и многое другое.
Оптимизирован для скорости
После перехода на .NET 6 наблюдается значительное улучшение производительности и уменьшение размера приложения. Команда сократила циклы вызовов Java <-> C#. И больше не нужно создавать объекты C# из Java. Посомтрите пример приложения .NET Podcast, созданного с помощью .NET MAUI.
- Раньше оно запускалось через 1299 мс.
- Теперь это 814 мс.
- 37% улучшение
Слева нативное приложение, а справа — .NET MAUI. В то время как нативное приложение загружается за полсекунды, .NET MAUI добавляет 1 секунду накладных расходов при JIT-компиляции. Когда включена компиляция AOT (с опережением времени), приложение загружается в 2 раза быстрее. Что касается размера файла, то, когда включена AOT-компиляция, размер файла увеличивается, но он загружается очень быстро. Можно выполнить AOT частично, для частей вашего приложения, которые выполняются только при запуске, таким образом уравновешивая скорость и размер.
Начало работы с .NET MAUI
Чтобы начать использовать .NET MAUI в Windows, установите или обновите Visual Studio 2022 Preview до версии 17.3 Preview 1.1. В установщике выберите «Разработка .NET Multi-platform App UI».
Для MAC установите новую предварительную версию Visual Studio 2022 (17.3 Preview 1).
Изучение .NET MAUI (для начинающих)
Есть очень практичный 4-часовой мастер-класс от Джеймса Монтеманьо. Он работает в Microsoft со времен проекта Xamarin. В этом бесплатном курсе на YouTube вы узнаете основы, в том числе о том, как создавать пользовательские интерфейсы, как работает MVVM и привязка данных, как перемещаться между страницами, получать доступ к таким функциям платформы, как геолокация, оптимизировать сбор данных и использование тем. В этом курсе есть все необходимое для изучения основ разработки .NET MAUI. Посмотрите:
-
Новости1 месяц назад
Видеозвонки с Лили, Приключения и пианино — обновления Duolingo
-
Новости1 месяц назад
Видео и подкасты о мобильной разработке 2024.39
-
Видео и подкасты для разработчиков4 недели назад
Lua – идеальный встраиваемый язык
-
Новости4 недели назад
Poolside, занимающийся ИИ-программированием, привлек $500 млн