Универсальная платформа Windows (UWP) – это специальная платформа для создания приложений на Windows 10. Вы можете разрабатывать приложения для UWP с помощью всего одного набора API, одного пакета приложений и одного магазина для доступа ко всем устройствам Windows 10 – ПК, планшета, телефона, Xbox, HoloLens, Surface Hub и других. Легче поддерживать несколько размеров экрана, а также различные модели взаимодействия, будь то сенсор, мышь и клавиатура, игровой контроллер или ручка. В основе приложений UWP лежит идея, что пользователи хотят, чтобы их работа, их задачи были мобильными через ВСЕ устройства, чтобы можно было использовать любое устройство, наиболее удобное или производительное для конкретной задачи.
UWP является гибким: вам не нужно использовать C# и XAML, если вы этого не хотите. Вам нравится развиваться в Unity или MonoGame? Предпочитаете JavaScript? Не проблема, используйте все, что хотите. У вас есть настольное приложение C++, которое вы хотите расширить с помощью функций UWP и продавать в магазине? И тут все будет работать.
В итоге вы можете потратить свое время на работу со знакомыми языками программирования, фреймворками и API-интерфейсами, все в одном проекте, и иметь тот же самый код, который работает на огромном диапазоне оборудования Windows из существующих сегодня. После того, как вы написали свое приложение UWP, вы можете опубликовать его в магазине на обозрение всего мира.
Итак, что такое UWP-приложение?
Что делает приложение UWP особенным? Вот некоторые из характеристик, которые отличают приложения UWP в Windows 10.
- Существует общая среда API для всех устройств
Основа API-интерфейсов универсальной платформы Windows (UWP) одинакова для всех классов устройства Windows. Если ваше приложение использует только основные API-интерфейсы, оно будет запускаться на любом устройстве Windows 10, независимо от того, планируете ли вы использование настольного ПК, гарнитуры Xbox или наушников Mixed Reality.
- Расширение SDK позволяет вашему приложению делать классные вещи на определенных типах устройств
Расширение SDK добавляет специализированные API для каждого класса устройства. Например, если ваше приложение UWP нацелено на HoloLens, вы можете добавить функции HoloLens в дополнение к обычным API-интерфейсам UWP. Если вы используете универсальные API-интерфейсы, ваш пакет приложений может работать на всех устройствах, работающих под управлением Windows 10. Но если вы хотите, чтобы ваше приложение UWP использовало API-интерфейсы устройства тогда, когда оно работает на определенном классе устройства, вы можете проверить, существует ли API до его вызова во время выполнения.
- Приложения упакованы с использованием формата упаковки .AppX и распространяются из магазина
Все приложения UWP распространяются как пакет AppX. Это обеспечивает надежный механизм установки и гарантирует, что ваши приложения могут быть развернуты и обновлены без проблем.
- Одно хранилище для всех устройств
После регистрации в качестве разработчика приложений вы можете отправить свое приложение в магазин и сделать его доступным для всех типов устройств или только тех, какие вы выберете. Вы загружаете и управляете всеми своими приложениями для устройств Windows в одном месте.
- Приложения поддерживают адаптивные элементы управления и ввода
Элементы пользовательского интерфейса используют эффективные пиксели, поэтому они могут отображать макет в зависимости от количества пикселей экрана, доступных на устройстве. И они хорошо работают с несколькими типами ввода, такими как клавиатура, мышь, сенсорный экран, ручка и контроллеры Xbox One. Если вам нужно дополнительно адаптировать свой пользовательский интерфейс к определенному размеру экрана или устройству, новые панели макетов и инструменты помогут вам в этом.
Используйте язык, который вы уже знаете
Приложения UWP используют Windows Runtime, собственный API, встроенный в операционную систему. Этот API реализован на C++ и поддерживается на C#, Visual Basic, C++ и JavaScript. Некоторые варианты написания приложений в UWP включают:
Видео курсы по схожей тематике:
- XAML UI и C#, VB или C++ backend
- DirectX UI и C++ backend
- JavaScript и HTML
Microsoft Visual Studio 2017 предоставляет шаблон приложения UWP для каждого языка, который позволяет вам создать единый проект для всех устройств. Когда ваша работа будет завершена, вы можете создать пакет приложений и отправить его в Windows Store из Visual Studio, чтобы сделать ваше приложение доступным для клиентов на любом устройстве Windows 10.
Приложения UWP оживают в Windows
В Windows ваше приложение может предоставлять актуальную информацию в режиме реального времени вашим пользователям и заставлять их возвращаться снова. В современной экономике приложений ваше приложение должно участвовать в жизни ваших пользователей. Windows предоставляет вам множество ресурсов, чтобы помочь вашим пользователям вернуться в ваше приложение:
- Живые фрагменты и экран блокировки отображают контекстно-зависимую и своевременную информацию.
- Push-уведомления приносят сигналы в реальном времени, отправляя предупреждения вашему пользователю, когда это необходимо.
- Центр действий – это место, где вы можете организовывать и отображать уведомления и контент, на которые пользователи должны обратить внимание.
- Background — исполнение и триггеры оживляют ваше приложение, когда пользователю это нужно.
- В вашем приложении могут использоваться голосовые и Bluetooth-устройства LE, чтобы помочь пользователям взаимодействовать с окружающим миром.
- Поддержка богатых, цифровых чернил и инновационного набора.
- Cortana добавляет индивидуальность вашему программному обеспечению.
- XAML предоставляет вам инструменты для создания плавных анимированных пользовательских интерфейсов.
Наконец, вы можете использовать данные о роуминге и Windows Credential Locker, чтобы обеспечить постоянный роуминг на всех экранах Windows, где пользователи запускают ваше приложение. Данные о роуминге дают вам простой способ сохранить пользовательские настройки и настройки в облаке, не создавая собственную инфраструктуру синхронизации. И вы можете хранить учетные данные пользователя в хранилище учетных данных, где безопасность и надежность являются главным приоритетом.
Монетизируйте ваше приложение
В Windows вы можете выбрать, как вы будете монетизировать свои приложения на телефонах, планшетах, ПК и других устройствах. Вот несколько способов заработать деньги с помощью вашего приложения и услуг, которые оно предоставляет. Все, что вам нужно сделать, это выбрать то, что лучше подходит для вас:
Бесплатные вебинары по схожей тематике:
- Платная загрузка – это самый простой вариант. Просто назовите цену.
- Система нескольких пробных попыток позволит пользователям оценить ваше приложение перед его покупкой. Это обеспечит более легкую конверсию, чем более традиционные варианты «freemium».
- Используйте скидки для привлечения внимания к своим приложениям.
- Также доступны покупки и реклама в приложении.
Как начать?
Более подробный обзор UWP читайте в официальном Руководстве по приложениям для универсальной платформы Windows. Затем ознакомьтесь с настройкой Get set up, чтобы загрузить инструменты, необходимые для начала создания приложений, и напишите свое первое приложение!
Источник.
Что такое Universal Windows Platform
Последнее обновление: 12.04.2017
UWP (Universal Windows Platform) представляет собой унифицированную платформу для создания и запуска приложений в Windows 10 и Windows 10 Mobile.
UWP стала результатом эволюции более ранних технологий. Так, с выходом Windows 8 была внедрена новая архитектурная платформа для приложений — Windows Runtime (WinRT), которая позволяла запускать приложения в так называемом режиме Modern (Metro) на десктопах, планшетах.
Затем с выходом Windows 8.1 и Windows Phone 8.1 эта технология получила развитие — появились «универсальные приложения», которые можно было запускать сразу Windows 8.1 и WP8.1.
И в июле 2015 года официально вышла новая ОС Windows 10. Она использует платформу UWP, которая представляет собой развитие Windows Runtime.
Как подсказывает название платформы, она является универсальной — универсальной для всех устройств экосистемы Windows 10. А это обычные дестопы, планшеты,
мобильные устройства, устройства IoT (интернет вещей), Xbox, устройства Surface Hub. И приложение UWP может одинаково работать на всех этих платформах, если на них установлена Windows 10.
Почему UWP?
Программирование под UWP несет ряд преимуществ:
-
Широта распространения. На текущий момент (апрель 2017) Windows 10 установлена уже более чем на 400 миллионах устройств.
На десктопах Windows 10 уже опередила Windows 8/8.1. -
Поддержка широкого круга устройств. Десктопы, планшеты, смартфоны, большие планшеты Surface Hub, различные IoT-устройства, в перспективе устройства виртуальной реальности
HoloLens — круг устрйоств, на которых может работать Windows 10 действительно широк. -
Поддержка разных языков и технологий программирования. UWP-приложения можно создавать с помощью таких языков, как
Visual C++, C#, Visual Basic, JavaScript. В качестве технологии для создания графического интерфейса Visual C++, C# и Visual Basic используют XAML,
JavaScript применяет HTML. Кроме того, С++ может вместо XAML использовать DirectX. То есть достаточно распространенные и и знакомые многим технологии. -
Магазин приложений и удобство распространения. Windows Store представляет собой прекрасное место для распространения
UWP-приложений, как платных, так и бесплатных. Сами возможности платформы и магазина Windows Store позволяют использовать разные способы монетизации.
Например, можно интегрировать в приложения блоки для показа рекламы через различные SDK. Можно распространять за определенную плату, причем оплату можно гибко настраивать.
При необходимости можно встроить предоставление ознакомительной версии, после использования которой пользователь может решить, покупать приложение или нет.
И также можно монетизировать по модели freemium, при которой приложение условно бесплатное, а отдельные услуги внутри приложения предоставляются за определенную плату.
Причем все эти возможности монетизации обесечиваются встроенными инструментами SDK. -
Богатые возможности платформы. UWP многое наследует от Windows Runtime из Windows 8.1 и в то же время предоставляет много новых функцональностей, как,
более богатые возможности по интеграции с облаком, использование Cortana, системы уведомлений в Win10 и многое другое.
Что необходимо для разработки под UWP
Для программирования под UWP необходима ОС Windows 10. Все другие операционные системы, как Windows 8.1/8/7, не говоря уже о Windows XP, не подходят!
Также потребуется среда разработки Visual Studio 2017 Community. Это полнофункциональная бесплатная среда разработки, которую можно загрузить с официального сайта
по адресу https://www.visualstudio.com/downloads/download-visual-studio-vs.
Также можно использовать версию VS 2015, а все остальные предыдущие версии Visual Studio — 2013, 2012, 2010 и т.д. с UWP не работают.
При установке Visual Studio 2017 в программе установщика необходимо отметить соответствующий пункт:
Перед чем как начать создание приложений, убедитесь, что в центре обновления в Windows 10 установлена соответствующая опция для разработчиков:
И имея Windows 10 и установленную Visual Studio 2017, можно приступать к разработке приложений.
Материал из РУВИКИ — свободной энциклопедии
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 1 октября 2019 года; проверки требуют 6 правок.
Универсальная платформа Windows (англ. Universal Windows Platform, сокр. UWP) — платформа, созданная Microsoft и впервые представленная в Windows 10. Целью данной платформы является помощь в создании универсальных приложений, запускаемых как на Windows 10, Windows 10 Mobile и Windows 10 IoT без изменения в коде. Есть поддержка создания таких приложений на C++, C#, VB.NET и XAML. API реализован в C++ и поддерживается в C++, VB.NET, C#, F# и JavaScript[1]. Разработанная как расширение для Windows Runtime (платформы, представленной в Windows Server 2012 и Windows 8), позволяет запускать приложения на разных аппаратных платформах[2].
Универсальная платформа — часть Windows 10, Windows 10 IoT, Windows 10 Mobile. Универсальные приложения Windows не запускаются на версиях Windows до 8.
Приложения, которые способны реализовать данную платформу, создаются с использованием Visual Studio 2015, Visual Studio 2017 и Visual Studio 2019. Старые Metro-приложения для Windows 8.1 или Windows Phone 8.1 нуждаются в изменении кода, чтобы поддерживать UWP[3][4].
Во время Build 2015 Microsoft представила набор так называемых «мостов» UWP для портирования приложений для Android и iOS в среду Windows 10 Mobile[5]. Мост Windows для Android (с кодовым названием «Astoria») позволяет портировать приложения Android, написанные на Java или C++, в среду Windows 10 Mobile и опубликовать их в Windows Store. Кевин Галло (англ. Kevin Gallo), руководитель Windows Developer Platform, пояснил, что данная реализация имеет некоторые ограничения: сервисы Google и основное API недоступно, поэтому приложения, имеющие «фоновую деятельность», например, приложения для быстрых сообщений, не будут работать корректно[6][7]. Мост Windows для iOS (с кодовым названием «Islandwood») — открытая связующая-утилита, позволяющая портировать приложения iOS, написанные на Objective-C, в среду Windows 10 Mobile, используя Visual Studio 2015 конвертировав код из Xcode[5][8][9]. Ранние сборки моста для iOS начали распространяться как открытое программное обеспечение под лицензией MIT с 6 августа 2015; мост для Android пока находится в закрытом тестировании[5].
В феврале 2016 Microsoft объявила о приобретении компании Xamarin[10]. Вскоре после покупки Microsoft объявила о закрытии разработки моста Android и поддержки данных приложений в Windows 10. Главным направлением компании остался мост iOS[11].
UWP являлась лишь дополнением к Windows Runtime. Универсальные приложения Windows, созданные с использованием технологии UWP, не нуждаются в обозначении, для какой ОС они предназначены; кроме того, они поддерживают как ПК, так и смартфоны, планшеты или Xbox One, используя мосты UWP. Данное расширение позволяет автоматически поддерживать все возможные платформы[12]. Универсальное приложение может быть запущено на любом мобильном телефоне или планшете. Оно же, запущенное на смартфоне, может вести себя так, как будто запущено на ПК, если подключено к последнему с помощью док-станции[13].
- ↑ Что такое приложения UWP? MSDN. Microsoft. Дата обращения: 27 июля 2016. Архивировано 23 ноября 2016 года.
- ↑ Введение в проектирование приложений UWP. MSDN. Microsoft. Дата обращения: 27 июля 2016. Архивировано 9 ноября 2016 года.
- ↑ Перенос приложений на универсальную платформу Windows (UWP). MSDN. Microsoft. Дата обращения: 27 июля 2016. Архивировано 28 июля 2017 года.
- ↑ Переход со среды выполнения Windows 8.x на UWP. MSDN. Microsoft. Дата обращения: 27 июля 2016. Архивировано 15 ноября 2016 года.
- ↑ 1 2 3 Хэшмен, Марк. Microsoft releases iOS-to-Windows app maker Windows Bridge to open source (англ.) (6 August 2015). Дата обращения: 27 июля 2016.
- ↑ Бренскоумб, Мери. How will Android support work in Windows 10 for Phones? (англ.) (11 May 2015). Архивировано 12 мая 2017 года. Дата обращения: 27 июля 2016.
- ↑ Брайт, Питер. Microsoft brings Android, iOS apps to Windows 10 (англ.) (29 April 2015). Архивировано 8 июля 2017 года. Дата обращения: 27 июля 2016.
- ↑ Честер, Бренден. Microsoft Demonstrates Android and iOS Applications Running On Windows 10 (англ.) (29 April 2015). Архивировано 5 сентября 2015 года. Дата обращения: 27 июля 2016.
- ↑ Проталински, Эмиль. Everything you need to know about porting Android and iOS apps to Windows 10 (англ.) (1 May 2015). Архивировано 21 ноября 2017 года. Дата обращения: 27 июля 2016.
- ↑ Скотт Гатри. Microsoft to acquire Xamarin and empower more developers to build apps on any device (англ.). The Official Microsoft Blog. Microsoft (24 февраля 2016). Дата обращения: 28 июля 2016. Архивировано 24 февраля 2016 года.
- ↑ Ё-Фоли, Мэри. Microsoft: Our Android Windows 10 bridge is dead, but iOS, Win32 ones moving ahead (англ.) (25 February 2016). Архивировано 26 октября 2021 года. Дата обращения: 27 июля 2016.
- ↑ Доминго, Мишель. Inside the Universal Windows Platform Bridges (англ.) (1 May 2015). Архивировано 22 сентября 2021 года. Дата обращения: 27 июля 2016.
- ↑ Уитни, Тайлер. Руководство по работе с приложениями универсальной платформы Windows (UWP) (19 июля 2016). Архивировано 10 ноября 2016 года. Дата обращения: 27 июля 2016.
- Тайлер Уитни (англ. Tyler Whitney). Руководство по работе с приложениями универсальной платформы Windows (UWP) (19 июля 2016). Дата обращения: 27 июля 2016.
Universal Windows Platform (UWP) — это платформа разработки
приложений для операционных систем Windows, охватывающая широкий спектр
устройств, включая ПК, планшеты, смартфоны, Xbox, HoloLens и другие
устройства. UWP позволяет создавать приложения с единым кодом, которые
могут работать на всех этих устройствах, адаптируя интерфейс и
функциональность в зависимости от специфики устройства.
В этой главе мы рассмотрим, как создавать UWP-приложения с
использованием Visual Basic, основные принципы и возможности, которые
предоставляет эта платформа, а также как интегрировать UWP с другими
компонентами Windows.
Основы работы с UWP
UWP-приложения могут быть разработаны с помощью Microsoft Visual
Studio, который предоставляет все необходимые инструменты для
разработки, от написания кода до тестирования и отладки. Приложения
могут быть написаны на различных языках, включая Visual Basic.
Для создания простого UWP-приложения откройте Visual Studio, создайте
новый проект и выберите тип “Blank App (Universal Windows)” с языком
программирования Visual Basic.
Пример
простого приложения на Visual Basic для UWP
Imports Windows.UI.Xaml
Imports Windows.UI.Xaml.Controls
Public NotInheritable Class MainPage
Inherits Page
Public Sub New()
This.InitializeComponent()
End Sub
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim message As String = "Hello, UWP!"
MessageBox.Show(message)
End Sub
End Class
В этом примере создается простая страница приложения с одной кнопкой,
при нажатии на которую появляется всплывающее сообщение с текстом
“Hello, UWP!”.
Работа с пользовательским
интерфейсом
Одной из особенностей UWP является использование языка разметки XAML
для создания пользовательских интерфейсов. XAML предоставляет
декларативный способ описания интерфейсов, который легко комбинируется с
кодом на Visual Basic.
Пример XAML-разметки для
кнопки
<Page x:Class="UWPApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UWPApp"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<Button Content="Click Me" HorizontalAlignment="Center" VerticalAlignment="Center" Click="Button_Click"/>
</Grid>
</Page>
В этом примере создается страница с кнопкой, расположенной по центру.
Атрибут Click
указывает на обработчик события, который
будет вызываться при нажатии на кнопку.
Основные принципы работы с
UWP
Платформонезависимость
Одна из основных особенностей UWP — это принцип “один код для всех
устройств”. Разработчик пишет приложение с использованием UWP API, и оно
автоматически адаптируется под различные устройства. Например,
приложение может быть оптимизировано для работы на экране ПК, а также
автоматически масштабироваться для смартфонов или адаптироваться для
управления с помощью жестов на устройствах с сенсорным экраном.
Адаптивность интерфейса
UWP предоставляет мощные средства для адаптации интерфейса под
различные экраны и разрешения. Использование стандартных контейнеров,
таких как Grid
, StackPanel
,
RelativePanel
, позволяет создавать гибкие интерфейсы,
которые автоматически изменяют свое расположение в зависимости от
размера экрана.
Работа с файлами и
хранилищем данных
UWP предоставляет доступ к различным видам хранилища данных, включая
локальные файлы, библиотеку изображений, данные пользователя и облачное
хранилище через API Windows.Storage.
Пример работы с файлами
Imports Windows.Storage
Private Async Sub SaveTextToFileAsync()
Dim folder As StorageFolder = KnownFolders.DocumentsLibrary
Dim file As StorageFile = Await folder.CreateFileAsync("example.txt", CreationCollisionOption.ReplaceExisting)
Await FileIO.WriteTextAsync(file, "This is a sample text.")
End Sub
В этом примере создается файл в библиотеке документов и записывается
текст. Обратите внимание на использование асинхронных операций, которые
являются стандартом для работы с файловой системой в UWP.
Асинхронное программирование
в UWP
Асинхронное программирование — это важная часть разработки для UWP,
особенно для обработки операций ввода-вывода (например, чтение и запись
файлов, работа с сетью). В UWP используется ключевое слово
Async
и операторы Await
для асинхронных
операций.
Пример асинхронного метода
Private Async Sub DownloadData()
Dim uri As New Uri("https://example.com/data")
Dim client As New Windows.Web.Http.HttpClient()
Dim result As String = Await client.GetStringAsync(uri)
MessageBox.Show(result)
End Sub
Этот пример демонстрирует использование асинхронной операции для
загрузки данных с веб-ресурса. Метод GetStringAsync
позволяет получить строку из интернет-ресурса, не блокируя основной
поток пользовательского интерфейса.
Взаимодействие с сетью
UWP предоставляет возможность работы с интернет-ресурсами с помощью
класса HttpClient
, который поддерживает HTTP-запросы. Важно
помнить, что работа с сетью в UWP всегда выполняется асинхронно, чтобы
избежать блокировки интерфейса.
Пример загрузки данных с
веб-сервиса
Private Async Sub FetchWeatherData()
Dim uri As New Uri("https://api.openweathermap.org/data/2.5/weather?q=London&appid=your_api_key")
Dim client As New Windows.Web.Http.HttpClient()
Dim response As String = Await client.GetStringAsync(uri)
' Обработка данных ответа
MessageBox.Show(response)
End Sub
В этом примере отправляется HTTP-запрос к API погоды, и результат
выводится в сообщении.
Работа с сенсорными
событиями
UWP поддерживает разнообразные сенсорные устройства, такие как
тачскрины и устройства с поддержкой жестов. Для обработки событий
сенсорного ввода можно использовать классы, такие как
Pointer
, GestureRecognizer
и другие.
Пример обработки сенсорных
событий
Private Sub OnPointerPressed(sender As Object, e As Windows.UI.Xaml.Input.PointerRoutedEventArgs)
Dim pointer As Windows.UI.Input.Pointer = e.Pointer
If pointer.PointerDeviceType = Windows.Devices.Input.PointerDeviceType.Touch Then
MessageBox.Show("Touch event detected")
End If
End Sub
Здесь показан простой пример обработки касания экрана и вывода
сообщения при детектировании события касания.
Заключение
UWP предоставляет мощные возможности для создания универсальных
приложений для различных устройств на платформе Windows. Используя
Visual Basic, разработчики могут легко создавать адаптивные интерфейсы,
работать с асинхронными операциями, взаимодействовать с файловой
системой и использовать сенсорные устройства. Платформа UWP позволяет
создавать приложения, которые работают на разных устройствах с
минимальными изменениями в коде, что делает её отличным выбором для
разработки современных приложений на Windows.
Writing about technology is often a balancing act. Some people want general tech news, while others want deep dives. When it comes to software and OS development, as a non-programmer I often find myself in over my head. That’s why UWP is such a steamy mess to talk about for the «prosumer.»
Today, I’m going to chip away at this monolith of a topic.
Who is UWP even for?
Before I try to explain what Microsoft’s software development platform is for Windows 10, let’s just get this out of the way: The term «UWP» is not a consumer-facing one, it’s for developers.
At no point should a customer walk into Best Buy and inquire with the sales clerk about what UWP apps a PC can run. In fact, a rule of thumb in technology is if you must explain something to someone the product probably already failed.
On Windows Central, however, we jump back and forth between consumer news and how-tos and more informative articles discussing Microsoft’s technology, OS development, and general computing trends. In our reporting, we must talk about UWP to understand Windows 10. For non-pro consumers, however, it should be simpler.
‘Universal’ does not mean run-everywhere
On a technical level, UWP is Microsoft’s extension of the Windows Runtime platform that leverages the C++, C#, VB.NET, and XAML coding languages. There are a few main ideas behind UWP, which include:
- Universal API toolkit.
- Responsive design and scaling in apps.
- Universal controls, styles, input, and interactions.
- Cloud, A.I., and cognitive services.
- Single Store for distribution.
- One Software Development Kit (SDK).
The confusing bit for our audience is the «universal» in «Universal Windows Platform.» While the goal for UWP is to let developers share code between apps and utilize a broad swath of APIs, it does not necessarily mean that a UWP app is supposed to «run everywhere,» such as on phones, PCs, Xbox, HoloLens, IoT devices.
All the latest news, reviews, and guides for Windows and Xbox diehards.
Ideally, an app developer will write a native UWP app that just works across all Windows 10 devices, but sometimes that just doesn’t make sense. For example, certain phone-only apps have little value on the desktop. Some UWP games could be too resource intensive for a phone, or the benefit of running a map app on your Xbox may not be self-evident (even if it is available, it’s likely not used often).
The «universal» in UWP refers to the shared APIs and resources that developers have access to when writing an app, not the app’s hardware destination. I can’t stress this enough. Just because an app is only available on Xbox or can only be installed on Windows 10 Mobile does not mean it’s not UWP or even «true UWP,» which has no technical definition.
Windows Bridge apps are UWP too
To add to the confusion, Microsoft introduced Windows Bridges a few years back during its Build developer conference.
All you need to know is that an app that takes advantage of Windows Desktop Bridge (a.k.a. Project Centennial), Progressive Web Apps (Project Westminster) like LinkedIn, or Windows iOS Bridge (a.k.a. Project Islandwood) is a UWP app too.
Getting more technical, a Windows Bridge app is best thought of as a hybrid app. For instance, Adobe Photoshop Elements 15 and the new Spotify apps are classic Win32 desktop apps literally wrapped in a UWP appx file container.
It’s not just the wrapper or installer that makes it UWP, but rather it is how a Desktop Bridge app can leverage Windows 10-only features like:
- Cortana.
- Live tiles.
- Action and Notification Center.
- Share targets.
- UWP background tasks.
- UWP XAML user experience.
- UWP app services e.g. cloud, A.I., and cognitive.
- Automatic updates, licensing, in-app purchases and all Windows Store features.
Therefore, desktop bridge apps are really hybrid-UWP ones. To the OS, however, they’re just UWP since it is those features that are most prominent.
Those Desktop Bridge apps also behave like non-hybrid «native» UWP apps. They do not modify the system registry and are essentially sandboxed from the OS to ensure one-click uninstallation with no orphaned DLL files in the Windows System directory.
It might be easier to think of it as a slider. On the left, you have Win32 apps that use one or two UWP APIs, and on the right, you have apps that use only UWP APIs. An app that only uses UWP APIs are «true UWP» apps can run across different versions of Windows 10 with only one codebase.
An app that uses one or two UWP APIs is likely a Win32 app that taps into UWP features and functions. A developer is able to slowly convert its app to a true UWP app over time if it wants, slowly moving from left to right on that imaginary «UWP» slider.
The curious case of Spotify and UWPness
When talking about Microsoft’s UWP, the Spotify example is a great one to highlight the weird choices that companies can make with its apps.
There are technically four Windows-type Spotify apps:
- Spotify Win32 .exe installer.
- Spotify for Windows Phone 8.1.
- Spotify for Windows 10 (UWP).
- Spotify for Xbox One (UWP).
The last two are the newest and are UWP even though they are vastly different. The Spotify app for Windows 10 is just the Win32 .exe desktop version repackaged using the Desktop Bridge. However, as noted above, bridge apps are still considered UWP.
The new Xbox One Spotify app is also UWP. Some have taken umbrage with the term since that app is not available for Windows 10 PCs or Mobile (although, technically, you could side-load it if it were signed).
So why did Spotify create so many apps instead of just one «native» UWP app that could run on Mobile, PC, and Xbox?
I have no idea.
But it doesn’t matter. The UWP platform and its bridges are all about giving developers various routes to one place: the Windows Store. How they get there, or how many versions of the app exist, is inconsequential. Microsoft would prefer developers just to use the same code with a single app, but the company does not dictate such practice. In the end, it is up to developers to choose the best route.
For now, Spotify deemed a desktop bridge app for Windows 10 PCs as the best way to the Windows Store while a separate Xbox One app is the top solution for that platform.
UWP is a work in progress
The UWP is not finalized, nor will it ever be for developers. UWP is the future of Windows 10 app development that – someday – will supplant Win32. Nonetheless, Win32 has been around for 20 years, and you cannot recreate a developer platform in a year.
The point here is that UWP as is is far from perfect or feature complete. Thousands of APIs are needed to bridge Win32 app calls and features to the world of native UWP. Microsoft is prioritizing where it can, but it’s like a wartime hospital where triaging the patients is necessary.
One reason some companies do not put their apps in the Windows Store – even with the desktop bridge – is today’s tools do not make it possible. If your app uses a custom API or makes a weird system call that UWP does not yet support, well, the desktop bridge does not work.
Anything in the Windows Store is UWP
For now, the only definition that Microsoft and Windows watchers need for UWP is this: If the app is in the Windows Store it is technically UWP. If you want to get specific:
Windows 10 introduces UWP, which provides a common app platform available on every device that runs Windows 10. The UWP provides a guaranteed core API across devices. This means you can create a single app package that can be installed onto a wide range of devices. And, with that single app package, the Windows Store provides a unified distribution channel to reach all the device types your app can run on. Apps that target the UWP can call not only the WinRT APIs that are common to all devices but also APIs (including Win32 and .NET APIs) that are specific to the class of device that the app is running on.
While Microsoft’s intent is for a UWP to run across types of devices it’s not all there just yet, nor is Microsoft forcing companies down that path.
The confusion here is also due to Microsoft, which has a lousy history of naming schemes. Many developers and even people at Microsoft have a tough time defining what UWP is and is not.
I can also add the caveat that websites can technically host UWP appx files, which would still make them UWP even if not in the Store. Although rare, these and apps that only target Windows Phone 8.x are the exceptions to the Windows Store rule.
Regular consumers have no idea what UWP is or is supposed to mean, nor should they. The customer experience is intended to be simple. Turn on a Windows 10 device, go to Windows Store, search, find, and install the app. How the app got there, or whether it’s technically an Electron app or React Native or it leverages the UWP JavaScript container, is entirely inconsequential.
Microsoft is trying hard to make the Windows Store and the apps therein device-universal, but it’s not quite there yet. UWP is a journey for Microsoft and it is just starting but all paths eventually lead to one destination: the Windows Store.
Further reading about UWP
Here are a few more deep dives and discussion articles about Windows 10, UWP, and the future of the platform:
- Can Project Centennial apps run on Windows 10 Mobile (and other questions answered)
- Why Windows 10 S, Project Centennial are critical to Continuum’s success
- Microsoft may focus on desktops with UWP — here’s why you should care
- If not phones, Microsoft needs another device category to ensure Windows UWP success
- How to convert desktop apps to Universal Windows Platform apps with Desktop Bridge
- Microsoft is NOT opening Xbox One to all UWP games … but should it?
Daniel Rubino is the Editor-in-chief of Windows Central. He is also the head reviewer, podcast co-host, and analyst. He has been covering Microsoft since 2007 when this site was called WMExperts (and later Windows Phone Central). His interests include Windows, laptops, next-gen computing, and wearable tech. He has reviewed laptops for over 10 years and is particularly fond of 2-in-1 convertibles, Arm64 processors, new form factors, and thin-and-light PCs. Before all this tech stuff, he worked on a Ph.D. in linguistics, performed polysomnographs in NYC, and was a motion-picture operator for 17 years.