Presentamos los Universal Windows Platform Bridges
En mi anterior artículo hablé sobre la Universal Windows Platform (UWP) y lo que supone para los desarrolladores, y también mencioné una de las grandes novedades del Build 2015: los Universal Windows Platform Bridges.
La UWP es una evolución de la misma plataforma que hemos estado utilizando en teléfonos con Windows Phone 8.1 y PCs con Windows 8/ 8.1. Eso significa que nuestro código existente, ya esté hecho con C/C++, C#, Visual Basic, XAML o Silverlight, o con JavaScript y HTML5, ya haya sido creado con Visual Studio, Apache Cordova o Unity entre otros, continuará funcionando como hasta ahora.
Ahora, con la llegada de los Bridges, contaremos con 4 nuevos SDKs que nos permitirán utilizar partes significativas de nuestro código existente, centrar nuestros esfuerzos en mejorar la experiencia con las funcionalidades únicas de Windows 10, y distribuirlo a través de la Tienda. Las nuevas bases de código con las que podremos trabajar gracias a estos SDKs están representados en la siguiente imagen:
Cada Bridge es una combinación de herramientas de desarrollo y runtimes que permitirán que nuestro código existente funcione de manera apropiada en la plataforma Windows. Cada Bridge está asociado a un proyecto:
- Proyecto Westminster, para aplicaciones Web.
- Proyecto Centennial, para aplicaciones clásicas de Windows con .NET y Win32.
- Proyecto Astoria, para apps de Android hechas con Java/C++.
- Proyecto Islanwood, para apps de iOS hechas con Objective-C.
A continuación puedes encontrar más detalles sobre cada uno de estos proyectos, junto con las sesiones correspondientes del Build 2015:
Proyecto Westminster (Web)
Nos permitirá publicar nuestro Sitio Web como una app en la Tienda Windows. Podremos partir de una URL de un sitio web existente, añadirle un manifiesto AppX y crear una app para la UWP.
Y esa app podrá acceder a toda la plataforma, incluso llamando directamente a APIs desde los scripts alojados en el servidor, pudiendo integrarnos con Cortana, usar notificaciones, monetizar nuestra app con las diferentes opciones de pago que nos proporciona la Tienda, etc. Las apps híbridas también estarán soportadas, y los desarrolladores podremos incluir código local que pueda ser llamado desde scripts almacenados en el paquete de la app y controlar la navegación de la app de páginas remotas a páginas locales.
Además, podremos trabajar con ManifoldJS para empaquetar nuestra web como una app multi-plataforma para Windows, Android e iOS.
Aquí tienes la sesión del Build relacionada: Project Westminster: Hosted Web Apps and Web Platform Innovations (2-665).
¡Actualización! Este Bridge ya está disponible. Más detalles aquí: Project Westminster in a nutshell.
Proyecto Centennial (Aplicaciones clásicas)
Nos permitirá publicar nuestras aplicaciones de escritorio tradicionales hechas con Win32, WPF y .NET, y nuestros juegos de PC en la Tienda Windows, facilitando su distribución y monetización. Estas apps tendrán la misma experiencia de usuario que el resto de las apps de la Tienda en lo que a instalación y a actualización se refiere. Y si ya no quieres la app, al desinstalarla Windows garantizará que se elimina del todo. Esto se conseguirá aislando los acceso al registro y a los datos que realice la app. Así que cuando la app piense que está escribiendo p.ej. en el registro, realmente lo estará haciendo en una zona especial sólo accesible por ella, y que puede ser fácilmente eliminada. Y todo esto se hará sin que tengamos que realizar grandes cambios en nuestro código. Tan sólo tendríamos que convertir nuestro instalador actual a un AppX con las futuras herramientas que habrá a nuestra disposición.
Además estas apps podrán llamar a la mayoría de las APIs de la UWP para trabajar con el Action Center, Live Tiles, etc.
Aquí tienes la sesión del Build relacionada: Project Centennial: Converting your Classic Windows App (Win32, .Net, COM) to a Universal Windows App for Distribution in the Windows Store (2-692)
Proyecto Astoria (Android)
Si eres desarrollador de Android este proyecto te permitirá crear apps utilizando código de Android en Java o C++, con tu IDE de Android favorito, en Windows o en Mac, y que estas apps funcionen en teléfonos con Windows 10. Además de extender el IDE, este proyecto incluirá un emulador de Windows Phone y la posibilidad de utilizar un SDK para añadir capacidades de interoperabilidad a la app (incluyendo interfaz de usuario y acceso a servicios) para que funcione y luzca genial en la plataforma Windows. Y Windows hará muchas de las tareas por ti, traduciendo conceptos de Android a conceptos de Windows: compras in-app, anuncios, mapas, notificaciones, analíticas, etc.
Aquí tienes la sesión del Build relacionada: Project Astoria: Build Great Windows Apps with Your Android Code (2-702)
Proyecto Islanwood (iOS)
Si eres desarrollador de iOS este proyecto te permitirá crear una Universal Windows App en Visual Studio 2015 con tu código existente hecho en Objective-C. Podrás importar tu código de Xcode en Visual Studio y personalizar la experiencia de la app en cada dispositivo de la familia Windows, extendiendo tu código iOS para sacar ventaja de las capacidades de la UWP. Incluso podrás reutilizar código que utilice algunas de las APIs de iOS, ya que Windows hará el trabajo por ti traduciendo conceptos de iOS a conceptos de Windows:
- Juegos: OpenGL (ANGLE, CAEAGLLayer, EAGLContext), OpenAL, Sensores
- UI: UIKit, CoreAnimation, CoreGraphics, CoreText, Touch
- Objective-C: ARC, blocks
- Foundation / CoreFoundation
- Servicios: StoreKit, Social, Notificaciones, Sharing, Compras In-App…
- Plataforma: acceso a ficheros, cámara
Y podrás desplegar tu app en más dispositivos, con múltiples factores de forma, y funcionando con CPUs ARM y x86/x64.
Aquí tienes la sesión del Build relacionada: Project Islandwood: Compiling Objective-C Using the Visual Studio 2015 C++ Code Generation that Builds Windows, SQL, .Net, and Office (3-610)
Si quieres más información sobre el anuncio de los Bridges puedes leer estos artículos: Welcoming Developers to Windows 10, Expanding the Universal Windows Platform at Build 2015 y A deeper dive into the Universal Windows Platform. Y si quieres saber más detalles, te recomiendo que revises la página Introducing the Universal Windows Platform Bridges. Adicionalmente los desarrolladores interesados podéis pedir que se os considere para los programas de Preview para desarrolladores para el Runtime de Android y para iOS, aunque de momento el acceso a los mismos es muy, muy limitado.
Y para terminar, la siguiente imagen resume muy bien las numerosas opciones que tendremos para utilizar nuestro código existente en Windows 10:
Espero que te sea de utilidad.
Un saludo,
Alejandro Campos Magencio (@alejacma)
Technical Evangelist
PD: Mantente informado de todas las novedades de Microsoft para los desarrolladores españoles a través del Twitter de MSDN, el Facebook de MSDN, el Blog de MSDN y la Newsletter MSDN Flash.