Компания Microsoft объявила о релизе набора средств разработки Windows App SDK 1.2, с помощью которого разработчики могут создавать нативные, красивые и современные приложения для Windows. Новая версия принесла с собой поддержку создания виджетов для Windows 11, элементы управления MediaPlayerElement и InfoBadge, а также улучшила стабильность и производительность работы приложений.
Windows App SDK — это отправная точка для создания и распространения настольных приложений Windows (на C++ и .NET) с элементами управления WinUI 3 и WebView2 для создания современного пользовательского интерфейса. Ознакомиться с дальнейшими планами по развитию SDK можно на GitHub в дорожной карте продукта.
Улучшения
Виджеты для Windows 11
Теперь разработчики сторонних приложений могут создавать собственные виджеты для упакованных Win32-приложений и локально тестировать их на панели виджетов в Windows 11. Чтобы приступить к разработке виджетов, необходимо ознакомиться с документацией и основами проектирования.
Элементы управления WinUI
Приложение WinUI 3 теперь могут воспроизводить аудио и видео с помощью элементов управления MediaPlayerElement и MediaTransportControls.
Также в WinUI 3 добавлены актуальные элементы управления, стили и модели поведения из WinUI 2.8. В частности, добавлена поддержка элемента InfoBadge, улучшены специальные возможности, доработан режим высокой контрастности, исправлены различные ошибки в элементах управления. Подробности в примечаниях к релизам WinUI 2.7 и WinUI 2.8.
Голосовые и видеозвонки с помощью Azure Communication Services (ACS)
Теперь разработчики могут добавить возможности голосовых и видеозвонков в приложения WinUI 3, работающие под управлением Windows. Azure Communication Services использует ту же инфраструктуру, сервисы и технологии, которые применяются в Microsoft Teams. Подробности в документации.
DisplayInformation
Настольные приложения Windows теперь могут поддерживать High Dynamic Range (HDR) и Auto Color Management (ACM) через класс DisplayInformation в WinAppSDK. Этот класс позволяет отслеживать информацию, связанную с дисплеем, которая необходима для отображения приложения. API поддерживается начиная с Windows 10 версии 1809.
Поддержка Visual Studio Arm64
Приложения на базе Project Reunion 0.5 (ныне WinAppSDK) уже могли работать на платформе ARM64. Начиная с Visual Studio 17.3 Preview 2 вы можете разрабатывать приложения с использованием WinAppSDK на устройствах с процессорами ARM64. Подробности в документации: Windows on ARM и Arm64 Visual Studio.
Уменьшение размера приложений .NET
Теперь вы можете публиковать приложения .NET WinAppSDK в усеченном виде. Благодаря CsWinRT 2.0 проекции C#/WinRT, распространяемые в WinAppSDK, можно сократить. Эта технология позволит уменьшить размер приложения за счёт удаления неиспользуемого кода из двоичных файлов. Также это должно положительно сказаться на времени запуска приложения.
Microsoft отмечает, что простое приложения Hello World стало меньше примерно на 80%, а скорость запуска выросла примерно на 7%. Приложение WinUI Gallery стало меньше примерно на 45%.
Подробности о технологии можно найти в документации: https://learn.microsoft.com/.
Dynamic Refresh Rate
Функция Dynamic Refresh Rate (DRR), представленная в Windows 11, позволяет устройствам плавно переключаться между низкой и высокой частотой обновления в зависимости от того, что пользователь делает на своем компьютере. Это помогает сбалансировать производительность и энергопотребление. Отныне Microsoft.UI.Composition поддерживает Dynamic Refresh Rate на совместимых устройствах.
На устройствах под управлением Windows 11 версии 22H2 более плавная прокрутка и взаимодействие с приложением будут работать автоматически без необходимости вносить изменения в код.
Чтобы изучить поддержку Dynamic Refresh Rate, компания рекомендует ознакомиться с инструментом Dynamic Refresh Rate Tool (построенным на WinAppSDK 1.1), который показывает, как использовать Compositor Clock API и поддерживать SwapChains.
AppNotificationBuilder
В Windows App SDK 1.1 появилась возможность создания и отправки уведомлений из приложения или облачной службы. Уведомления из приложений можно использовать для информирования пользователя об изменении статуса или состояния приложения, а также для побуждения пользователя к действию с помощью привлекательного пользовательского интерфейса.
В WinAppSDK 1.2 компания представляет AppNotificationBuilder — альтернативу XML payload для упрощения создания и определения этих уведомлений. Чтобы начать использовать AppNotificationBuilder для создания уведомлений приложений, ознакомьтесь со спецификацией AppNotificationBuilder на GitHub.
Другие изменения
WinAppSDK 1.2 приносит с собой несколько улучшений производительности и стабильности. В частности, двоичный файл WinAppSDK 1.2 для платформы x64 теперь в среднем на 11% меньше, чем при использовании WinAppSDK 1.1.5.
Полный список исправленных проблем и изменений в WinAppSDK 1.2 можно найти в примечаниях к релизу.