Что такое приложение UWP?

UWP — это один из многих способов создания клиентских приложений для Windows. Приложения UWP используют API WinRT для предоставления мощных пользовательских интерфейсов и расширенных асинхронных функций, которые идеально подходят для устройств, подключенных к Интернету.

Чтобы скачать средства, которые вам потребуются при создании приложений для Windows, ознакомьтесь со статьей Установка инструментов для Windows App SDK и приступайте к созданию своего первого приложения.

Какое место принадлежит UWP в истории разработки Майкрософт?

UWP — это один из вариантов создания приложений, которые работают на устройствах Windows 10 и Windows 11 и могут использоваться на других платформах. Приложения UWP могут использовать API Win32 и классы .NET (см. статьи Наборы API для приложений универсальной платформы Windows (UWP), Библиотеки DLL для приложений универсальной платформы Windows (UWP) и Браузер API .NET).

История разработки Майкрософт получила логическое развитие с реализацией UWP — мощного средства для создания клиентских приложений, используемого наряду с такими инициативами, как WinUI, MSIX и Windows App SDK.

Возможности приложения UWP

Основные достоинства приложения UWP.

  • Безопасный: приложения UWP объявляют, какие ресурсы устройств и данные они обращаются. Пользователь должен разрешить такой доступ.
  • Возможность использовать общий API на всех устройствах под управлением Windows.
  • Возможность использования возможностей отдельных устройств и адаптации пользовательского интерфейса к разным размерам экранов, разрешениям и плотностям точек.
  • Доступность в Microsoft Store, на всех устройствах (или только тех, которых вы укажете), работающих под управлением Windows 10 или Windows 11. В Microsoft Store предусмотрено несколько способов монетизировать ваше приложение.
  • Возможность устанавливаться и удаляться без риска для компьютера или "деградации" ПО.
  • Увлекательность: возможность использовать живые плитки, push-уведомления и пользовательские действия, взаимодействующие с временной шкалой Windows и функцией "Продолжить с места остановки" Кортаны, для поддержания интереса пользователей к приложению.
  • Программируемая в C#, C++, Visual Basic и JavaScript. Для пользовательского интерфейса можно использовать WinUI, XAML, HTML или DirectX.

Рассмотрим все это более подробно.

Защита

В манифестах приложений UWP объявляются возможности устройства, необходимые приложению, — например, доступ к микрофону, геоданным, веб-камере, USB-устройствам, файлам и т. д. Прежде чем приложение получит доступ к возможности, пользователь должен подтвердить и разрешить такой доступ.

Общая поверхность API для всех устройств

В Windows 10 впервые появилась универсальная платформа Windows (UWP), которая предоставляет общую платформу приложений на любом устройстве, работающем под управлением Windows. Основные API UWP являются одинаковыми на всех устройствах с Windows. Если приложение использует только основные API, оно будет работать на любом устройстве под управлением Windows независимо от того, под какое устройство оно разрабатывалось — ПК, Xbox, гарнитуру смешанной реальности и т. п.

Приложение UWP, написанное на C++/WinRT, имеет доступ к API-интерфейсам Win32, которые входят в состав UWP. Эти API Win32 реализуются всеми устройствами Windows.

Пакеты SDK расширений предоставляют уникальные возможности для конкретных типов устройств

Если вы разрабатываете приложение для универсальных API, такое приложение сможет работать на всех устройствах под управлением Windows 10 или более поздней версии. Но если вы хотите, чтобы ваше приложение UWP могло пользоваться преимуществами API конкретных устройств, это также возможно.

Пакеты SDK расширений позволяют вызывать специализированные API для различных устройств. Например, если ваше приложение UWP предназначено для устройства Интернета вещей, вы можете добавить в свой проект пакет SDK расширения для Интернета вещей, чтобы реализовать функции, характерные для устройств Интернета вещей. См. сведения в разделе Пакеты SDK расширений статьи Программирование с помощью пакетов SDK расширений.

Вы можете написать приложение так, чтобы оно было предназначено для запуска только на устройствах определенного типа, а затем ограничить его распространение в Microsoft Store только этим типом устройств. Или же вы можете реализовать условную проверку на наличие того или иного API во время выполнения и соответствующим образом адаптировать поведение своего приложения. См. сведения в разделе Написание кода статьи Программирование с помощью пакетов SDK расширений.

Адаптивные элементы управления и ввод

Элементы пользовательского интерфейса реагируют на размер и плотность точек экрана, на котором выполняется приложение, и выбирают подходящий масштаб и макет. Приложения UWP хорошо работают с несколькими типами входных данных, таких как клавиатура, мышь, сенсорный ввод, перо и игровые контроллеры. Если нужно дополнительно настроить пользовательский интерфейс в соответствии с определенным размером экрана или типом устройства, новые панели макета и инструменты помогут вам разработать интерфейс, способный адаптироваться к различным устройствам и форм-факторам, на которых может работать ваше приложение.

Windows-powered devices

Windows позволяет ориентировать пользовательский интерфейс на множество устройств с помощью следующих функций:

  • Универсальные элементы управления и панели макета помогают оптимизировать пользовательский интерфейс под любое разрешение экрана на конкретном устройстве. Например, такие элементы управления, как кнопки и ползунки, автоматически адаптируются к размеру и плотности точек на экране устройства. Панели макета помогают корректировать компоновку содержимого в зависимости от размера экрана. Адаптивное масштабирование подстраивается под различия в разрешении и DPI на всех устройствах.
  • Общая обработка входных данных позволяет получать входные данные с помощью сенсорного ввода, пера, мыши, клавиатуры или игрового контроллера.
  • Инструменты помогут разработать вам пользовательский интерфейс, способный адаптироваться под разные разрешения экрана.

Некоторые характеристики пользовательского интерфейса приложения автоматически корректируются под разные устройства. Однако при проектировании пользовательского интерфейса приложения могут потребоваться некоторые изменения в поведении приложения в зависимости от устройства, на котором оно работает. Например, приложению для фотографирования при работе на маленьком наладонном устройстве следует адаптировать свой интерфейс так, чтобы с ним удобно было работать одной рукой. Когда это же приложение для фотографирования запускается на настольном компьютере, пользовательский интерфейс должен адаптироваться так, чтобы использовать дополнительное пространство экрана.

Один магазин для всех устройств.

Благодаря единому магазину ваше приложение будет доступно на любых устройствах Windows — ПК, планшетах, HoloLens, Surface Hub, а также устройствах для Интернета вещей. Вы можете отправить приложение в магазин и сделать его доступным для всех типов устройств или только некоторых из них. Вы отправляете все свои приложения для устройств с ОС Windows и управляете ими централизованно. У вас есть классическое приложение на C++, которое вы хотите модернизировать за счет возможностей UWP и продавать в Microsoft Store? Это тоже возможно.

Приложения UWP интегрируются с Application Insights для получения подробной телеметрии и аналитики, что поможет вам понять предпочтения своих пользователей и усовершенствовать приложения.

Приложения UWP можно упаковывать с использованием MSIX и распространять через Microsoft Store или другими способами. MSIX позволяет обновлять приложения независимо от способа их распространения (см. статью Обновление пакетов приложений, опубликованных не в Store, из кода).

Монетизация приложения

Вы можете выбрать способ монетизации своего приложения. Существует целый ряд способов заработать на своем приложении. Вам нужно только выбрать наиболее подходящий (примеры способов приведены ниже).

  • Платное скачивание — самый простой вариант. Просто назовите свою цену.
  • Ознакомительные версии позволяют опробовать ваше приложение перед покупкой. Так ваше приложение становится заметнее для пользователей, к тому же это увеличивает процент покупателей от общего числа посетителей по сравнению с более традиционными минимально-бесплатными версиями.
  • Скидки и распродажи, которые мотивируют пользователей совершить покупку.
  • Покупки в приложении.

Актуальная информация в реальном времени, которая побуждает пользователей вновь и вновь обращаться к приложению

Есть множество способов поддерживать интерес пользователей к приложению UWP.

  • Живые плитки и плитки экрана блокировки, на которые выводится краткий обзор актуальной и значимой в определенном контексте информации из приложения.
  • Push-уведомления, которые предлагают вниманию пользователей важные оповещения в нужный момент.
  • Действия пользователей, которые позволяют им продолжить работу в приложении с того места, где они остановились — даже на другом устройстве.
  • Центр уведомлений обеспечивает организацию уведомлений, поступающих из вашего приложения.
  • Фоновое выполнение и триггеры позволяют вашему приложению возобновлять работу именно тогда, когда это нужно пользователю.
  • Приложение может использовать голосовое управление и устройства Bluetooth LE, чтобы пользователи могли взаимодействовать с окружающим миром.
  • Интеграция с Кортаной позволяет добавить в ваше приложение возможности голосового управления.

Использование уже знакомого языка

Приложения UWP могут использовать среду выполнения Windows, то есть собственный API, встроенный в операционную систему. Этот API реализован на языке C++ и поддерживается в C#, Visual Basic, C++ и JavaScript. Некоторые из языков и технологий, пригодных для написания приложений UWP:

  • XAML (для пользовательского интерфейса) и C#, VB или C++;
  • DirectX (для пользовательского интерфейса) и C++;
  • JavaScript и HTML.
  • WinUI

Настройка

Скачайте средства, необходимые для создания приложений, на странице Get set up (Подготовка), а затем создайте свое первое приложение.

Создание дизайна вашего приложения

Корпорация Майкрософт предоставляет систему проектирования под названием Fluent. Fluent Design — это набор функций UWP в сочетании с рекомендациями по созданию приложений, которые будут прекрасно смотреться на всех типах устройств под управлением Windows. Разработанные с помощью Fluent приложения адаптируются к самым разным устройствам — от планшетов и ноутбуков до ПК и телевизоров, и даже к устройствам виртуальной реальности — и выглядят на них совершенно естественно. Вводные сведения о системе Fluent см. в статье The Fluent Design System for Windows app creators (Система проектирования Fluent для разработчиков приложений Windows).

Хорошее проектирование подразумевает принятие решений о том, как пользователи будут взаимодействовать с приложением, а также как оно будет выглядеть и функционировать. Взаимодействие с пользователем очень сильно повлияет на то, насколько люди будут довольны вашим приложением, так что не пренебрегайте этим шагом. Из статьи Проектирование и разработка приложений для Windows вы узнаете, с чего начинать проектирование универсального приложения для Windows. Ознакомьтесь с вводной статьей об устройствах, которая поможет определить интерфейс взаимодействия вашего приложения на всех форм-факторах, на которые вы ориентируетесь.

Помимо взаимодействия на разных устройствах, проектируйте приложение так, чтобы использовать все преимущества работы на разных устройствах. Например:

Добавление служб

Отправьте приложение в Store.

Центр партнеров позволяет централизованно управлять всеми приложениями и держать в одном месте все приложения для устройств Windows. См. статью Публикация приложений и игр для Windows, чтобы узнать, как отправлять приложения в Microsoft Store для публикации.

Новые возможности упрощают процессы, обеспечивая больший контроль с вашей стороны. Вы также найдете здесь подробные аналитические отчеты вместе с сведениями о выплатах, способами продвижения вашего приложения среди пользователей и многие другие сведения.

Подробные вводные сведения см. в статье Windows 10 — An Introduction to Building Windows Apps for Windows 10 Devices (Вводные сведения о создании приложений для Windows для устройств с Windows 10).

Более сложные темы

Сопоставление универсальной платформы Windows (UWP) и API времени выполнения Windows

Если вы разрабатываете приложение для универсальной платформы Windows (UWP), вам будет намного проще и удобнее считать термины "Универсальная платформа Windows" и "Среда выполнения Windows (WinRT)" почти синонимами. Но у вас есть возможность заглянуть "под капот" этих технологий и определить различия между концепциями. Если вам это интересно, то этот последний раздел написан именно для вас.

Среда выполнения Windows и API-интерфейсы WinRT развиваются на основе API-интерфейсов Windows. Первоначально Windows программировалась через плоские API Win32 в стиле C. Поверх них были добавлены API-интерфейсы COM (из которых самым ярким примером можно считать DirectX). Windows Forms, WPF, .NET и управляемые языки привнесли собственные способы написания приложений Windows и специфичные технологии API. Среда выполнения Windows фактически является следующим этапом развития модели COM. На уровне двоичного интерфейса (ABI) родственные связи с COM становятся очевидными. Однако среда выполнения Windows была разработана так, чтобы ее можно было вызывать из большого числа разных языков программирования. Эти вызовы совершаются самым естественным способом для каждого из этих языков. Поэтому доступ к среде выполнения Windows реализован через особый механизм языковых проекций. Существуют языковые проекции среды выполнения Windows для C#, Visual Basic, стандартного C++, JavaScript и т. д. Кроме того, после упаковки соответствующим образом (см. мост для классических приложений), вы можете вызывать API WinRT из приложения, встроенного в один из различных моделей приложений: Win32, .NET, WinForms и WPF.

И, само собой, API-интерфейсы WinRT можно вызвать из приложения UWP. Модель приложения UWP создана на основе среды выполнения Windows. С технической точки зрения модель приложения UWP основана на CoreApplication, но некоторые подробности могут быть недоступны в зависимости от выбора языка программирования. Как описано в этом разделе, с точки зрения ценности платформа UWP предназначена для создания единого двоичного файла, который вы сможете при желании опубликовать в Microsoft Store и запустить на любых устройствах самых разных форм-факторов. Охват устройств для приложений UWP зависит от API среды выполнения Windows, которые может вызывать приложение или которые вы можете вызывать условно.

Мы надеемся, что смогли описать в этом разделе разницу между базовыми технологиями API среды выполнения Windows и механизмом и ценностью универсальной платформы Windows.