Universal Windows Platform ( UWP ) es una plataforma informática creada por Microsoft e introducida en Windows 10. El propósito de esta plataforma es ayudar a desarrollar aplicaciones universales que se ejecuten en Windows 10, Windows 10 Mobile (descontinuado), Windows 11 , Xbox One , Xbox Series X/S y HoloLens sin la necesidad de ser reescritas para cada una . Admite el desarrollo de aplicaciones de Windows utilizando C++ , C# , VB.NET y XAML . La API está implementada en C++ y es compatible con C++, VB.NET, C#, F# y JavaScript . [1] Diseñada como una extensión de la plataforma Windows Runtime (WinRT) introducida en Windows Server 2012 y Windows 8 , UWP permite a los desarrolladores crear aplicaciones que potencialmente se ejecutarán en múltiples tipos de dispositivos. [2]
UWP no está dirigido a sistemas que no sean de Microsoft. La solución de Microsoft para otras plataformas es .NET MAUI (anteriormente " Xamarin.Forms " [3] ), una API de código abierto creada por Xamarin , una subsidiaria de Microsoft desde 2016. También existen soluciones comunitarias para plataformas no específicas, como la Plataforma Uno .
UWP es parte de Windows 10, Windows 10 Mobile y Windows 11. Las aplicaciones UWP no se ejecutan en versiones anteriores de Windows.
Las aplicaciones que pueden implementar esta plataforma se desarrollan de forma nativa con Visual Studio 2015 , Visual Studio 2017 , Visual Studio 2019 o Visual Studio 2022. Las aplicaciones de estilo Metro más antiguas para Windows 8.1 , Windows Phone 8.1 o para ambos (universal 8.1) necesitan modificaciones para migrar a UWP. [4] [5]
Algunas características de la plataforma Windows en versiones posteriores han sido exclusivas de UWP y software empaquetado específicamente para ella, y no se pueden usar en otras arquitecturas como las existentes WinAPI , WPF y Windows Forms . Sin embargo, a partir de 2019, Microsoft ha tomado medidas para aumentar la paridad entre estas plataformas de aplicaciones y hacer que las características de UWP se puedan usar dentro de software que no sea UWP. Microsoft introdujo XAML Islands (un método para incrustar controles y widgets UWP en software que no sea UWP) como parte de la actualización de Windows 10 de mayo de 2019, y declaró que también permitiría que las funciones UWP y los componentes de Windows Runtime se invoquen dentro de software no empaquetado. [6]
Los puentes UWP traducen las llamadas en otras interfaces de programación de aplicaciones (API) a la interfaz UWP, de modo que las aplicaciones escritas en estas API se ejecuten en UWP. Se anunciaron dos puentes durante la presentación de Build 2015 para que las aplicaciones de Android e iOS se transfieran a Windows 10 Mobile. [7] Hasta enero de 2022, Microsoft mantuvo el soporte para puentes para aplicaciones de escritorio de Windows, aplicaciones web progresivas , Microsoft Silverlight y la API Cocoa Touch de iOS . [8]
Windows Bridge para iOS (nombre en código "Islandwood") es un kit de herramientas de middleware de código abierto que permite que las aplicaciones iOS desarrolladas en Objective-C se porten a Windows 10 mediante Visual Studio 2015 para convertir el proyecto Xcode en un proyecto de Visual Studio. [7] [9] [10] Una versión preliminar de Windows Bridge para iOS se lanzó como software de código abierto bajo la licencia MIT el 6 de agosto de 2015, mientras que la versión de Android estaba en beta cerrada . [7]
Este proyecto "WinObjC" es de código abierto en GitHub . Contiene código de varias implementaciones existentes de Cocoa Touch como Cocotron y GNUstep , así como el propio código de Microsoft que implementa marcos iOS utilizando métodos UWP. Utiliza una versión del compilador clang LLVM . [11]
Windows Bridge para Android (cuyo nombre en código era "Astoria") era un entorno de ejecución que permitía que las aplicaciones de Android escritas en Java o C++ se ejecutaran en Windows 10 Mobile y se publicaran en Microsoft Store . Kevin Gallo, director técnico de Windows Developer Platform, explicó que la capa contenía algunas limitaciones: los servicios móviles de Google y ciertas API básicas no están disponibles, y las aplicaciones que tienen una "integración profunda en tareas en segundo plano", como el software de mensajería, no se ejecutarían bien en este entorno. [12] [13]
En febrero de 2016, Microsoft anunció que había dejado de desarrollar Windows Bridge para Android, citando redundancias debido a que iOS ya era una plataforma principal para el desarrollo multiplataforma, y que Windows Bridge para iOS producía código nativo y no requería un emulador a nivel de SO. En cambio, Microsoft fomentó el uso de C# para el desarrollo de aplicaciones multiplataforma utilizando herramientas de Xamarin , que habían adquirido antes del anuncio. [14] [15] [16] En 2021, Microsoft permitió que Windows 11 ejecutara aplicaciones de Android con un emulador a nivel de SO y permitió que las aplicaciones se instalaran en la tienda. [17]
UWP proporciona un modelo de aplicación basado en su clase CoreApplication y Windows Runtime (WinRT). [1] Las aplicaciones universales de Windows que se crean utilizando UWP ya no indican que se escribieron para un sistema operativo específico en su compilación de manifiesto; en cambio, se dirigen a una o más familias de dispositivos, como una PC, un teléfono inteligente, una tableta o Xbox One , utilizando Universal Windows Platform Bridges. Estas extensiones permiten que la aplicación utilice automáticamente las capacidades que están disponibles para el dispositivo particular en el que se está ejecutando actualmente. [18] Una aplicación universal puede ejecutarse en un teléfono móvil o una tableta y proporcionar experiencias adecuadas en cada uno. Una aplicación universal que se ejecuta en un teléfono inteligente puede comenzar a comportarse de la manera en que lo haría si se estuviera ejecutando en una PC cuando el teléfono está conectado a una computadora de escritorio o una estación de acoplamiento adecuada . [19]
Los juegos desarrollados para UWP están sujetos a restricciones técnicas, incluyendo incompatibilidad con configuraciones de múltiples tarjetas de video , dificultades para modificar el juego , superposiciones para clientes de chat orientados al juego o administradores de atajos de teclado. [20] UWP solo admitirá DirectX 11.1 o posterior, por lo que los juegos creados en versiones anteriores de DirectX no funcionarán. [21] Durante Build 2016, el jefe de la división Xbox de Microsoft, Phil Spencer, anunció que la compañía estaba intentando abordar problemas que mejorarían la viabilidad de UWP para juegos de PC, afirmando que Microsoft estaba "comprometido a garantizar que cumplamos o superemos las expectativas de rendimiento de los juegos de pantalla completa, así como las características adicionales que incluyen soporte para superposiciones, modificaciones y más". El soporte para las tecnologías AMD FreeSync y Nvidia G-Sync , y la desactivación de V-sync, se agregaron más tarde a UWP. [22] [23]
El fundador de Epic Games, Tim Sweeney, criticó a UWP por ser un jardín amurallado , ya que, por defecto, el software UWP solo se puede publicar e instalar a través de Windows Store , lo que requiere cambios en la configuración del sistema para habilitar la instalación de software externo (de manera similar a Android ). Además, ciertas características del sistema operativo son exclusivas de UWP y no se pueden usar en software que no sea UWP, como la mayoría de los videojuegos. Sweeney caracterizó estos movimientos como "el movimiento más agresivo que Microsoft haya realizado" en el intento de transformar las PC en una plataforma cerrada, y sintió que estos movimientos estaban destinados a poner en desventaja a las tiendas de juegos de terceros como Steam , ya que Microsoft está "restringiendo la libertad de los usuarios para instalar software de PC con todas las funciones y subvirtiendo los derechos de los desarrolladores y editores para mantener una relación directa con sus clientes". Como tal, Sweeney argumentó que los usuarios finales deberían poder descargar software UWP e instalarlo de la misma manera que el software que no es UWP. [24]
Kevin Gallo, vicepresidente de Windows, abordó las preocupaciones de Sweeney y afirmó que "en la actualización de noviembre de Windows 10, permitimos que las personas carguen aplicaciones fácilmente de forma predeterminada, sin necesidad de UX. Queremos hacer de Windows la mejor plataforma de desarrollo independientemente de las tecnologías utilizadas y ofrecer herramientas para ayudar a los desarrolladores con bases de código existentes de HTML/JavaScript, .NET y Win32, C++ y Objective-C a llevar su código a Windows e integrar capacidades UWP. Con Xamarin , los desarrolladores de UWP no solo pueden llegar a todos los dispositivos Windows 10, sino que ahora pueden usar un gran porcentaje de su código C# para brindar experiencias de aplicaciones móviles completamente nativas para iOS y Android". [25]
En una entrevista en vivo con Giant Bomb durante su cobertura del E3 2016 , Spencer defendió la recepción mixta de sus lanzamientos exclusivos de UWP, afirmando que "no todos han ido viento en popa. Algunos de ellos han ido bien", y que "todavía hay definitivamente preocupación de que UWP y nuestra tienda estén vinculados de alguna manera que es nefasta. No lo es". También habló sobre las relaciones de Microsoft con desarrolladores y distribuidores externos como Steam, considerando que el servicio es "una parte fundamental del éxito de los juegos en Windows" y afirmando que Microsoft planeaba seguir lanzando juegos a través de la plataforma, así como de la suya propia, pero que "Habrá áreas en las que cooperaremos y habrá áreas en las que competiremos. El resultado final es mejor para los jugadores". Spencer también afirmó que era amigo de Sweeney y que había estado en contacto frecuente con él. [26] [27]
El 30 de mayo de 2019, Microsoft anunció que apoyaría la distribución de juegos Win32 en Microsoft Store; Spencer (que desde entonces había sido ascendido a jefe de todas las operaciones de juegos en Microsoft, reportando directamente al CEO Satya Nadella ) explicó que los desarrolladores preferían la arquitectura y que "permite la personalización y el control que [los desarrolladores y jugadores] esperan del ecosistema de juegos abierto de Windows". También se anunció que los futuros lanzamientos de Xbox Game Studios en Windows estarían disponibles en tiendas de terceros como Steam, en lugar de ser exclusivos de Microsoft Store. [28] [29]