Home » Noticias » Microsoft presenta “Project Islandwood”, tus apps de iOS en Windows Universal en un click
Windows iOS Apps Universal Portada

Microsoft presenta “Project Islandwood”, tus apps de iOS en Windows Universal en un click

Ayer fue la puesta de largo en Microsoft en su Conferencia Anual para desarrolladores, la Build 2015. Durante algo más de 3 horas, dieron un repaso a todas las novedades que el nuevo ecosistema Windows 10 traerá y cómo atraer a los desarrolladores de Android o iOS hacia su plataforma.

Sin duda, lo que presentó Microsoft fue bastante sorprendente, demostrando un cambio de filosofía y de objetivo más que notable y (en mi opinión) en la dirección correcta hacia convertirse en la alternativa real a iOS/OS X en vez de Android y el ecosistema de Google. El tiempo dirá si la estrategia les funciona pero sobre la mesa las cartas son muy favorables a Microsoft.

Si Mahoma no va a la montaña…

El principal problema de Windows como ecosistema es el coste que supone a un desarrollador crear una tercera versión para “la otra” plataforma. La hegemonía de iOS y Android es indiscutible hoy día y Windows Phone queda relegado, siendo el número, variedad y calidad de sus apps quien lo sufre.

Por lo tanto, la estrategia es: si los desarrolladores no trabajan para nuestro sistema, hagamos que no tenga que trabajar para él: que re-utilicen su código. Y he aquí que se nos presentan dos proyectos: Islandwood y Astoria.

El primero es una API capaz de traducir en tiempo real las implementaciones en las APIs nativas de iOS como UIKit o CoreAnimation al nuevo ecosistema Windows Universal. El segundo, otra API que es capaz de traducir el código Java/C++ de Android hacia Windows Universal.

Project Islandwood, iOS a Windows en un solo click

El primero, Project Islandwood, es el más ambicioso porque estamos hablando de una conversión real de apps sin modificación de código alguna, ya que el nuevo compilador de Visual Studio soportará Objective-C de manera nativa. De esta forma, no solo entenderá y compilará el lenguaje de Apple, además será capaz de convertir los métodos y construcciones de las APIs nativas de iOS a sus equivalentes en Windows Universal de manera transparente y directa para el desarrollador.

Cómo hacerlo es relativamente fácil sobre el papel. Solo hay que crear traductores que implementen llamadas a las APIs nativas de iOS y que los parámetros que usa y las propiedades de los objetos se conviertan y/o adapten en tiempo real a Windows. Una capa de traducción en tiempo real, para entendernos. Desde luego, no es fácil en su ejecución pero hemos de partir de la base que, como hemos comentado, el sistema de interfaces adaptativas de iOS 8 tiene muchos puntos en común con la construcción de interfaces para aplicaciones Windows Universal.

iOS App Visual Studio

Microsoft mostró una demo de un proyecto Xcode con un juego construido sobre UIKit que además usaba CoreAnimation, donde el fichero .xcodeproj es abierto y convertido por Visual Studio a su propio formato. El editor del IDE de Microsoft nos permitirá editar y trabajar con el código en Objective-C, incluso con escritura predictiva de código y formato enriquecido de color. Retocado (o sin retocar) directamente en el lenguaje de Apple, se compila y obtenemos una aplicación Windows Universal que traduce en tiempo real todo el uso de APIs nativas de Apple para iOS 8 a arquitectura Windows.

King, creadores del famoso Candy Crush Saga, han realizado la conversión de su famoso juego usando esta tecnología con un esfuerzo mínimo. Existe un programa de prueba para desarrolladores, limitado en invitaciones, en que podemos inscribirnos si queremos ser los primeros en probar esta nueva tecnología a través de este enlace.

Como hemos comentado, el soporte es de Objective-C y además durante la presentación del sistema se habló claramente sobre cómo IslandWood soportará cosas tan fundamentales como los storyboards, el auto-layout, librerías gráficas como OpenGL ES o de sonido como OpenAL, así como UIKit, CoreAnimation o los frameworks de compras integradas y redes sociales que él mismo desviará hacia los servicios de Microsoft. Pero lo que también se comentó es que Swift se incorporará en una segunda fase del proyecto, formando parte también del compilador de Visual Studio.

Project Astoria, re-utilizando código Android

El caso de Project Astoria, el proyecto de compatibilidad con Android, es diferente. Aquí lo único que se consigue es que Windows sea capaz de compilar y usar código nativo C++ o Java enfocado en Android para tareas que tengan que ver con el AOSP, lo que es el núcleo del sistema Android que no contiene las servicios de Google que son código cerrado. Windows traduce en tiempo real conectando los servicios o funciones de AOSP a sus equivalentes para Windows, pero en este caso el desarrollador tiene que construir más partes de la app como la interfaz completamente desde 0.

Es un paso interesante porque habrá partes de nuestro código que podremos usar tal cual, pero para nada es el conversor que han hecho para la arquitectura iOS, que es sin duda más afín y similar a la de Windows.

.NET en OS X, Visual Studio Code

Por último, Microsoft tampoco se olvidó del resto de partes de su ecosistema de desarrollo presentando el núcleo de .NET para Linux y OS X, así como una herramienta de edición de código, Visual Studio Code, gratuita y disponible para Windows, Linux y OS X.

La llegada del núcleo de .NET a OS X abre un espectro de nuevas apps o posibilidades para tener mayor número de aplicaciones para el sistema de Apple (y en su caso también para Linux) además de por el hecho que Microsoft ya anunció en su día que .NET pasaba a ser código abierto.

Visual Studio Code

En el caso de Visual Studio Code, que podéis descargar gratuitamente desde su página oficial estamos hablando de un potente editor de código que casi podría ser considerado un IDE en sí mismo. Es compatible con multitud de lenguajes, soporta escritura predictiva de código, ayuda de código en línea, integración con varios archivos de un mismo proyecto pudiendo acceder a definiciones o componentes que estén en otros ficheros pero que usemos en aquel en que estamos trabajando, soporte integrado de GIT, de depuración de código y mucho más.

Podemos, por ejemplo, desarrollar en ASP.NET 5 o Node.js directamente con el editor uniendo nuestro proyecto a un servidor Kestrel de código abierto que se ejecutará sin problema en nuestro Mac y nos permitirá depurar o desplegar directamente desde el editor.

Os invitamos a echarle un vistazo pues son muchas las posibilidades que tiene de integración y funcionamiento y es una herramienta realmente interesante.

Desarrolladores, oscuro objeto de deseo

Obtener apps para los diferentes ecosistemas se ha convertido en un motivo de peso para medir el éxito o no de una plataforma, y los desarrolladores de pronto nos encontramos en el centro como los niños a los que las compañías ofrecen dulces y chucherías de muy diversos, ricos y atractivos sabores para apostar por ellos.

Microsoft ha sido la primera en dar el paso, pero Apple tiene programada el inicio de su Conferencia de Desarrolladores para el próximo 8 de junio, donde muy probablemente veamos un nuevo ecosistema de apps enfocado en juegos para el TV con el nuevo AppleTV, un sistema universal de desarrollo de apps en que la nueva librería UXKit sobre la que está construida la nueva app de Fotos nos permita hacer aplicaciones que se ejecuten indistintamente en OS X o iOS en un solo desarrollo y nuevas posibilidades que volverán a dar otro paso más en esta carrera imparable que es a día de hoy la informática de consumo y sus dispositivos, donde nosotros, los desarrolladores, tenemos un papel clave.

Se abre un horizonte lleno de posibilidades. Un saludo y a todos y Good Apple Coding.

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

App Store Review Guidelines iOS 11

Cambios en las normas del App Store en iOS 11

Todos sabemos cómo son las normas del App Store (o deberíamos saberlas) y la importancia …