Novedades de Windows 8.1 Update 1 para desarrolladores

Durante la Keynote del primer día del BUILD se presentó oficialmente el Update 1 de Windows 8.1. En este post voy a intentar hacer un resumen de los puntos más importantes para los desarrolladores y recomendaros las charlas del BUILD que me parecen más interesantes en cada caso.

Universal Apps

Desde Microsoft apostamos por la homogeneidad del ecosistema. Mientras que en otras plataformas, como iOS/Mac es necesario realizar una versión para los dispositivos móviles y otra para escritorio, la visión de Microsoft es que exista una sola App que funcione en todos los dispositivos.

image

Las Universal Apps nos proporcionan una forma sencilla de lograrlo, permitiéndonos compartir código de lógica de negocio y presentación entre las diferentes plataformas. Hasta ahora podíamos compartir código mediante las Portable Class Libraries, que generaban binarios y no podían contener código específico de ninguna plataforma. Con la introducción de las Universal Apps es posible compartir además lógica de presentación y dejar que sea el propio sistema quien decida la representación más adecuada para cada dispositivo. Durante el BUILD, Tim Heuer impartió una sesión hablándonos de esto.

 

image

La pregunta que probablemente todos tengamos ahora mismo en la cabeza es ¿cómo se consigue esto? ¿hay alguna forma de modificar el comportamiento de nuestras Apps en las distintas plataformas? La respuesta es, por supuesto, sí.

Los proyectos de las Universal Apps se conforman en realidad de un proyecto por plataforma soportada y uno adición, Shared, donde se almacena el código y recursos que serán compartidos. Este proyecto Shared tiene como particularidad el no generar binario alguno, ya que actúa únicamente como host del código y de los recursos compartidos entre los demás proyectos. Dado que el código albergado dentro de este proyecto será usado durante la compilación de los demás, puede hacer uso de compilación condicional para modificar su comportamiento en función de la plataforma.

Si vuestro lenguaje de preferencia es, al igual que el mío, C#, podéis hacer uso de las constantes WINDOWS_APP y WINDOWS_PHONE_APP para identificar la plataforma:

 #if WINDOWS_PHONE_APP
    Windows.Phone.UI.Input.HardwareButtons.BackPressed += this.HardwareButtons_BackPressed;
#endif

Esta directiva de compilación no estaría permitida en una Portable Class Library, ya que no podría ser ejecutada en todas las plataformas. En los proyectos Shared esto no representa un problema, ya que no generan un binario, sino que su código será utilizado para compilar otros proyectos. Navit Saxena dio una buena sesión en el BUILD profundizando sobre este tema.

No debemos olvidarnos que hay vida más allá de nuestras plataformas y al final del día querremos que nuestra App se lleve bien con los sistemas de otros fabricantes. En esta línea Miguel de Icaza impartió la sesión Go Mobile with C# and Xamarin que todos los que estéis targeteando iOS y Android deberíais ver. Sin embargo, hay decisiones estratégicas que hay que tomar mucho antes de codificar la primera línea. La charla de David Carmona es una mina de oro que no debéis dejar pasar, serán los 56 minutos mejor invertidos de vuestro día Smile

Plataforma Común

Las Universal Apps tienen más implicaciones de las que podrían parecer en un principio. El hecho de decir que se pueda compartir el código y que ahora sólo se necesite una única solución para las dos plataformas plantea otras cuestiones. Por ejemplo, ¿cómo logra una App verse adecuadamente en una pantalla de teléfono móvil y en una de 30” de alta resolución? La respuesta no es magia negra, pero la charla de Peter Torr seguro que os saca de dudas.

Tampoco hay que dejar de lado el hecho de que las Universal Apps significan la unificación de las tiendas de Windows Phone y Windows 8, ya que quién haya comprado una Universal App en Phone dispondrá de ella en Windows 8 sin cargo adicional alguno. Eso significa que también esperará que su App se comporte de forma parecida y disponga de sus datos en ambos entornos. Sean McKenna y Adam Wilson hablaron sobre roaming en el BUILD y se merecen que les eches un vistazo.

Otra de las cosas interesantes que nos dejó el BUILD a los desarrolladores de Windows 8.1 Update 1 fue la charla de Cameron Lerum, que hizo una disección del funcionamiento de la tienda y nos dio muchos datos sobre las descargas y su distribución geográfica. ¡No os olvidéis el márquetin de vuestras Apps!

Internet Explorer Enterprise Mode

Una de las características más comentadas de Windows 8.1 Update 1 es la inclusión del Enterprise Mode de IE. Creo que a todos se nos ha dibujado una sonrisita maligna al leer el nombre de esta característica. Atrás han quedado los tiempos de IE6, pero parece que algunos desarrolladores no se han enterado. Personalmente es esto lo que se me viene a la cabeza:

Porque todos conocemos a alguien así :)

Dado que muchas organizaciones, y algún que otro sitio web público, tienen sitios desarrollados específicamente para versiones antiguas de Internet Explorer, necesitaban seguir usando versiones desaconsejadas de IE. Eran otros los tiempos en los que IE carecía de un adecuado soporte de los estándares, pero para muchas organizaciones ese es su día a día. IE ha recorrido un largo camino hasta IE11 y creo que no hay mejor prueba del escrupuloso cumplimiento de los estándares web que la necesidad de esta característica.

Cuando se activa el Enterprise Mode de IE, este cambia su User-Agent por una versión anterior, imita el renderizado de versiones antiguas de Trident, regresa al viejo comportamiento de los controles ActiveX y reactiva algunas características que habían sido eliminadas según se mejoraba la compatibilidad con los estándares. Recordad que IE sigue cumpliendo escrupulosamente los estándares web y sólo hace uso de este modo cuando se habilita específicamente para un sitio web determinado.

Si estáis interesados en las nuevas capacidades de IE en Windows 8.1 Update 1 lo mejor es que os veáis la sesión de Josh Holmes sobre las posibilidades de IE como plataforma de aplicaciones web.

No puedo despedirme sin volver a recomendaros la charla de David Carmona, producto español al que tuve el placer de ver en directo hace unos meses y que me dejó con la boca abierta… literalmente.

Un saludo,

Pablo Carballude (@Carballude_es)