Shen Chauhan и Andy Wigley рассказывают об обновлении Windows и новом SDK
Пару недель назад мы выпустили новую версию Windows 10 SDK (можно ставить параллельно с предыдущей версией). SDK включает более 200 новых типов и дополнительных методов и свойств для существующих типов.
В этой статье мы расскажем подробнее о некоторых улучшениях в универсальной Windows-платформе (UWP), включенных в SDK:
- Визуальная композиция, эффекты и анимация
- SQLite
- Работа с вводом и пером
- Более эффективная и гибкая установка AppX
- UI и обновления XAML
- Bluetooth и работа по сети
- Работа с сенсорами
- Хранилище устройства
- Windows App Certification Kit (Windows ACK)
- Набор для дизайна (Photoshop)
Визуальная композиция, эффекты и анимация
Мы добавили в SDK новое семейство API — Windows.UI.Composition, позволяющее напрямую работать с базовым слоем UI. Базовый слой UI находится между фреймворком (например, XAML) и графическим слоем DirectX. Мы подготовили набор соответствующих примеров на GitHub. Новый набор API включает:
- Быстрый рендеринг легковесных визуальных элементов в трехмерном координатном пространстве
- Новый декларативный движок для анимации, масштабируемый и включающий новый механизм описания анимаций через выражения и возможность покадровых анимаций, работающих независимо от UI-потока.
- Высокопроизводительная система UI-эффектов, работающая в реальном времени. Эффекты, применяемые к визуальным элементам, могут настраиваться, объединяться в цепочки, а их свойства также могут быть анимированы.
SQLite
Библиотека SQLite теперь поставляется вместе с UWP для решения задач локального доступа к данным, необходимого во всем спектре устройств на Windows 10. SQLite реализует транзакционный движок поддержки SQL-базы данных, не имеющий дополнительных зависимостей и не требующий наличия сервера или специфичных настроек. Разработчики теперь могут напрямую обращаться к SQLite, включенному в SDK вместо самостоятельного включения соответствующей библиотеки в приложение. Руководство по работе с данными было обновлено, чтобы помочь разработчикам разобраться в работе в SQLite в UWP-приложениях.
Работа с вводом и пером
Обновление включает следующие улучшения в работе с клавиатурой и пером:
- Direct Ink для Win32-приложений. API Ink Presenter позволяет Win32-приложениям управлять вводом с помощью пера, включая обработку и рендеринг штрихов через объект InkPresenter, вставляемый в визуальное дерево DirectComposition разрабатываемого приложения. Другими словами, теперь Win32-приложения могут работать с пером также, как и UWP-приложения.
- Перехват доставки событий клавиатуры. Новый класс KeyboardDeliveryInterceptor позволяет приложениям переопределить системный процесс обработки нажатий клавиатуры, включая сочетания клавиш, клавиши быстрого доступа (горячие клавиши), ускоряющие комбинации и клавиши приложений, но исключая комбинации клавиш, связанные с безопасностью (например, Ctrl-Alt-Del и Windows-L), которые система продолжает обрабатывать.
- Межпроцессные цепочки обработки указателей. Доступно через новые события указателей (pointer) – как для UWP-приложений, так и для классических Windows-приложений.
Более эффективная и гибкая установка AppX
Обновление делает установку пакетов приложений на устройствах более гибкой:
- Уменьшено требуемое для установки место. Раньше нам требовался двойной размер пространства на диске по сравнению с объемом самого AppX-пакета для его установки. Так, если пакет весил 1GB, то для установки нам требовалось 2+GB свободного места на диске. Теперь мы запрашиваем заметно меньше дополнительного места: тот же пакет в 1GB подребует 1.1GB пространства на диске для установки.
- Дополнительные диски на десктопе. Дополнительные диски на десктопе теперь поддерживаются для установки приложений, например, вы можете решить ставить приложения на диск D:, изменив место для установки в настройках хранилища. В мобильном сценарии аналогичные настройки позволяют ставить приложения на SD-карту при ее наличии.
UI и обновления XAML
SDK включает несколько обновлений API, чтобы вы могли улучшить опыт пользователей:
- Всплывающие списки. Новые классы JumpList и JumpListItem для работы со стартовым экраном дают возможность приложениям программно управлять всплывающим меню у плитки или иконки в панели задач, включая добавление новых элементов и групп.
- Обновление XAML. Включает возможность указать формат для буфера обмена через обновленный API для RichText, улучшения в навигации в обновленном API для работы с картами, а также улучшения в размере меню по умолчанию.
Bluetooth и работа по сети
В SDK включены следующие улучшения:
- Bluetooth. Новые методы для связывания в классе DeviceInformationPairing позволяют установить или разорвать связь изнутри приложения с опциональными уровнями защиты.
- Sockets. Для разработчиков, использующих WebSockets: методы FlushAsync в MessageWebSocket.OutputStream и StreamWebSocket.OutputStream были реализованы полностью и теперь ожидают завершения ранее вызванного метода WriteAsync. Учтите, что это может привести к появлению исключений в существующем коде, если WebSocket находится в некорректном состоянии при вызове метода FlushAsync.
- Cookies. Новое свойство CookieUsageBehavior было добавлено в существующем классе HttpBaseProtocolFilter. Это позволит разработчикам контролировать, как куки обрабатываются в системе.
Работа с сенсорами
Windows 10 включает ряд улучшений в работе с контекстными сенсорами, позволяющими определять тип активности (например, ходьба, бег, езда на велосипеде или машине), подсчитывать шаги и узнавать высоту и барометрическое давление, а также отслеживать появление пользователя рядом с устройством или его отдаление. Подробнее о работе с сенсорами мы писали в статье «Сенсоры контекста в Windows 10». В дополнение, наша вторая статья описывает некоторые продвинутые возможности работы с сенсорами, включая пакетную обработку данных акселерометра, использование ReadingTransform для поддержки правильной ориентации приложения на различных устройствах и также возможность добавления собственных сенсоров. Таким образом, полный набор всех сенсорных API работает на всем спектре устройств на Windows 10.
Ноябрьское обновление развивает возможности, полволяя использовать сенсоры как фоновые триггеры. Подробности можно узнать из нашего растущего набора примеров работы с устройствами и сенсорами на GitHub.
Хранилище устройства
Разработчики теперь могут более гибко работать с файлами, сохраняя и ассоциируя из с конкретными пользователями:
- С помощью методов CreateFileForUserAsync и CreateFolderForUserAsync можно, соответственно, создавать файлы или папки внутри папки «Загрузки» для указанного пользователя.
- С помощью метода GetLibraryForUserAsync можно получить доступ к известному хранилищу для указанного пользователя.
Windows App Certification Kit (Windows ACK)
Windows App Certification Kit обновился и включает улучшенные тесты. В частности, добавлен тест для предзагрузки приложения (Prelaunch) и поправлены тесты ресурсов и используемых API. Полное описание изменений и известных проблем можно найти на странице WACK.
Набор для дизайна (Photoshop)
Чтобы облегчить проектирование приложений, мы добавили новые шаблоны дизайна UWP-приложений для Adobe Photoshop. Мы также обновили шаблоны Microsoft PowerPoint и Adobe Illustrator и сделали PDF-версию руководств.
Вопросы и отзывы будем рады услышать в твиттере @WindowsDev. Если вы встретитесь с багами или проблемами, используйте инстурмент Windows Feedback и MSDN форумы.