Esta semana está la cosa developer total… Ayer Intel anunciaba un puente entre Android e iOS y ahora Microsoft presenta el suyo entre iOS y Windows 10, cosa que ya amenazaron hacer hace un tiempo y que parece ser que ahora ya han perpetrado. Veamos cuales son las características y las consecuencias de este paso.
El llamado «Proyecto Islandwood» consiste en un puente de código en Visual Studio 2015 (la última versión recién salida del horno) de forma que uno podrá cargar su proyecto iOS y sacar un proyecto Windows 10 en plataforma x86 y x64 (es decir, que de momento no funciona para arquitectura ARM, con lo que no podrá usarse en Windows Phone, aunque prometen publicar algo al respecto para más adelante este año). Así mismo, también en los próximos meses aparecerá la versión para Android (Proyecto Astoria), aunque lo que no sabemos es si lo hará también para móviles. Esto en concreto me parece un gran fallo por su parte, aunque parece que de momento no están teniendo mucha prisa al respecto (supongo que como consecuencia del batacazo que se han dado con los móviles, se lo tomarán con más calma, lo que viene a refrendar lo que ya dijimos en su día). Pero hay algunas cosas que los desarrolladores deberemos tener en cuenta si queremos entender este paso y como usarlo correctamente sin perder tiempo, esfuerzo y nervios.
Sin haberlo probado (cosa que haré y daré mi opinión al respecto), de primeras soy escéptico con este tipo de proyectos. Como ya comenté en artículos anteriores, me parece muy arriesgado por parte de Microsoft realizar este tipo de movimientos, que denotan desesperación por falta de apps (ya analizamos por qué en el artículo sobre la integración de iOS y Android con Windows), partiendo de la base de que hayan hecho una integración perfecta, al menos a nivel de código, cosa que ya de por si es bastante (muchísimo) complicada de hacer. Esto puede hacer que su propia plataforma se estanque y nadie quiera usarla, habiendo una forma fácil de programar en iOS y luego simplemente pasarlo a .NET (como sea que lo hagan), perdiendo cosas de uno y de otro al mismo tiempo. Pero además hay otros aspectos a tener en cuenta: para empezar, de momento lo que han publicado es un puente para apps que corran en Windows 10 de escritorio (a lo sumo, con compatibilidad para Surface) ya que no hay versión binaria para ARM, lo que excluye los teléfonos. Y es un problema porque las apps para iOS están hechas para entornos móviles, no para escritorio (recordemos que Windows 10 vuelve al clásico entorno de escritorio dejando Metro como algo opcional), y hago hincapié muy especialmente en las apps para iPhone, que son limitadas en sus posibilidades visuales a un entorno muy restringido. Esto además sólo puede tener sentido para apps realizadas «a mano» sin kits especializados, ya que el soportes es para Objective-C en código fuente, lo que excluirá muchos juegos. Y esto otro nos lleva a otro problema.
Han elegido Objective-C como plataforma de «intercambio». Esto hubiera estado bien hace dos años, pero recordemos que el año pasado Apple publicó Swift, su nuevo lenguaje de programación en el que presumiblemente todos terminaremos haciendo los trabajos en iOS en los próximos años (doy por hecho que ellos ya están haciéndolo así). Además, ahora Swift es open source (así se ha traducido al mandarín, por ejemplo), con lo que no tienen excusa para hacer el puente en este lenguaje. Muchos desarrolladores ya estamos publicando apps en Swift, con lo que sólo van a poder pasarse aquellas apps antiguas que estén escritas en Objective-C (y eso si no estás usando Xamarin o entornos web, que no serían compatibles), o bien aquellos que se resistan a pasar al nuevo entorno. Aún así, son muchos cientos de miles de apps las que se podrían pasar, pero espero por el bien de Microsoft que el paso a Swift se realice pronto porque eso podría significa que en poco tiempo, este puente se quedaría obsoleto y estaremos igual que hasta ahora.
Por último, hay que destacar detalles técnicos, como la imposibilidad de usar servicios de Apple como iCloud, iAd, notificaciones push, etc… Todo eso habría que sobreescribirlo, si es que es posible, a un entorno compatible con Windows 10. Las apps que tengan widget de notificaciones no podrán usarse tal cual, y deberán eliminar el widget (algunas de hecho sólo tienen sentido por ese widget). Lógicamente, también muchos aspectos de ventanas visuales, aunque pueden ser «solapados» por el puente (espero), es poco probable que puedan usarse sin más, a no ser que directamente hayan masacrado las librerías de Apple, cosa que no creo que les haga gracia a estos últimos; o bien, que puede ser una opción probable, conviertan el entorno de las ventanas a un tipo «Windows», pero sinceramente no sé qué puede salir de eso… En fin, muchas incógnitas, y hasta que no esté bien probado y sepamos como se ha realizado (insisten en que está «en desarrollo»), no podremos dar una opinión más fundamentada. Esperemos que no se estén metiendo en un callejón sin salida (aún más)…