Programar aplicaciones Metro de Windows 8: características principales

Las Aplicaciones Metro de Windows 8 son, sin duda, la novedad más importante en el nuevo sistema operativo de Microsoft para usuarios y desarrolladores. Las tendencias más importantes de la industria como la Nube, los dispositivos táctiles o la convergencia PC / móvil se dan la mano para crear un nuevo paradigma, tanto en el desarrollo como en su posterior uso.

Introducción

En Octubre de 2011 Microsoft presentó la primera versión de Windows 8, un sistema operativo en el que tanto defensores como detractores han conseguido ponerse de acuerdo por una vez: es un Windows distinto a los anteriores.

De entre las novedades que presentaba este Windows reimaginado destacaba como novedad por encima de todas las demás las nuevas Aplicaciones Metro. Con ellas Microsoft dibujaba un futuro en el que móviles, tabletas y PCs convergían en unas aplicaciones capaces de sacar el máximo partido a cada dispositivo, al tiempo que mantenían una coherencia funcional. El escenario que visualizaban en Redmond representaba a unos usuarios saltando diariamente entre todos estos dispositivos, del trabajo al hogar, en un futuro tan cercano que ya está aquí.

Con Windows 8 y las Aplicaciones Metro estos saltos se convertirían en algo natural, sincronizado, homogéneo, sencillo para el usuario, que trabajaría en una misma aplicación adaptada a cada dispositivo pero con la mayor funcionalidad que cada dispositivo permitiese.

Ha pasado casi un año desde este lanzamiento y la idea ha madurado lo suficiente como para convertirse en una realidad en forma de un buen número de Aplicaciones Metro ya disponibles en Windows Store, más muchas otras que están a punto de salir.

En este post vamos a introducirnos en el mundo de las Aplicaciones Metro, desde las características más importantes de todas ellas, pasando por las herramientas que utilizaremos, hasta terminar con la creación de un ejemplo de lector RSS.

Características de una Aplicación Metro

Una de las diferencias más importantes entre las Aplicaciones Metro y las aplicaciones clásicas a las que estábamos acostumbrados en versiones anteriores de Windows es la coherencia que existe entre todas ellas. Microsoft está haciendo un gran hincapié en asegurar que existe una continuidad en sus principios, un lenguaje común en su diseño (Metro) y una homogeneidad en su uso que ayude al usuario a saltar de una a otra sin fricciones, o a empezar a usar una nueva aplicación sin apenas curva de aprendizaje. De entre las características que definen una aplicación tres son las más importantes:

Contenido antes que chrome

Chrome es una palabra difícil de traducir del inglés. Viene a representar toda la parafernalia a la que las aplicaciones tradicionales recurren para presentar la información en pantalla: bordes, sombras, transparencias, menús, etc. Adornos, en definitiva, que nos distraen de lo que realmente importa: el contenido. Precisamente en esto se centran las Aplicaciones Metro, en eliminar todos estos adornos y centrarse en mostrar contenido y hacer que brille, puesto que ayuda a construir experiencias inmersivas para el usuario.

Sin embargo, estos adornos visuales tienen una función en muchos escenarios que, en caso de eliminarlos, debe ser sustituida por otros mecanismos. En concreto, gracias al chrome podemos definir navegación, disposición de elementos en pantalla e interacción. Para estos tres grupos las Aplicaciones Metro ofrecen una alternativa mejor:

  • Layout: entre otros recursos, se utilizará espacio en blanco para separar elementos; y tipografías y jerarquías para agrupar y relacionar información.

  • Navegación: la navegación se realizará con el propio contenido, en lugar de utilizar adornos específicos. Además se podrá recurrir a navegación jerárquica o plana en función del tipo de aplicación.

  • Interacción: se permitirá al usuario manipular el contenido directamente, además de desplazar a una barra de la aplicación aquellos comandos que no se necesitan en el uso habitual de la misma. Los Charms de Windows 8 también permitirán ofrecer un sustituto de funcionalidad habitual como búsqueda u opciones de usuario.

En definitiva, el objetivo es pasar de aplicaciones como la que se puede ver en la siguiente imagen…

… a Aplicaciones Metro como ésta.

Táctil primero, sin olvidar ratón y teclado

No es ningún secreto que las interfaces táctiles están de moda entre los usuarios. Por supuesto las Aplicaciones Metro tienen muy en cuenta esto e incluyen un soporte de primera clase para este tipo de interacciones. Entre otras características, se ha diseñado un nuevo lenguaje táctil específico para Windows 8 basado en varios principios:

  • Simple y consistente, evitando cualquier gesto que pudiera resultar complejo.

  • Gestos que puedan realizarse rápidamente.

  • Conjunto limitado de gestos.

  • Limitación de los gestos que se basan en tiempo.

El resultado es un conjunto de siete gestos que pueden verse en la siguiente imagen.

A pesar de poner el acento en las interfaces táctiles, ya sabemos que Windows 8 y las Aplicaciones Metro tienen la vocación de cubrir todo tipo de dispositivos. Por ello, existe un completo soporte para otro tipo de sistemas de interacción, como teclados y ratones. En la siguiente tabla podemos ver la equivalencia con acciones del ratón y pulsaciones de teclado de cada uno de los gestos reseñados en la imagen anterior.

Utilidad

Táctil

Ratón

Teclado

Activar o arrancar

Tap (Pulsar)

Click

Intro

Más información

Press & Hold

(Pulsar y Mantener)

Mover sobre elemento y esperar

Tab

Scroll

Slide (Deslizar)

Barra de scroll

Flechas

AvPag / RePag

Seleccionar

Swipe

(Deslizar vertical)

Click botón derecho

Espacio

Zoom

Pinch

Tecla Control + Rueda

Control y +

Control y -

Charms

Swipe from Edge

(Deslizar desde borde)

Mover a esquinas borde derecho

Windows y C

Rotar

Rotate

(Rotar)

Controles interfaz

Control y ,

Control y .

La buena noticia para nosotros los desarrolladores es que los controles de la Librería de Controles de Windows van a implementar esta equivalencia por sí mismos, por lo que no tendremos que tirar ni una sola línea de código para obtener esta correspondencia entre los distintos sistemas de entrada.

En definitiva, en las Aplicaciones Metro la interfaz táctil va a estar presente desde las primeras etapas del desarrollo, pero eso no significa que otros métodos vayan a estar desatendidos, puesto que el objetivo final sigue siendo una equivalencia perfecta entre dispositivos.

Fast & Fluid

Rápido y fluido no es el nombre de una nueva película de Vin Diesel, sino uno de los lemas que con más insistencia han asociado desde Microsoft al desarrollo de las Aplicaciones Metro. El objetivo es que el rendimiento de estas aplicaciones sea mayor que nunca, puesto que las interfaces táctiles así lo demandan. En el siguiente gráfico se puede ver la respuesta que un usuario espera de una aplicación, en función del tipo de interfaz de uso.

Como vemos esta exigencia se dispara desde el momento en que la manipulación no se hace con métodos indirectos como el teclado o el ratón sino que la manipulación es directa con los dedos. Cualquier aplicación que no responde de forma inmediata se siente como muerta.

Para dar respuesta a esta necesidad Microsoft se ha cuidado de ofrecer una API en la que cualquier llamada que pueda necesitar más de 50 milisegundos va a realizarse obligatoriamente de forma asíncrona. Además los distintos lenguajes con los que se pueden programar Aplicaciones Metro han sido complementados con palabras reservadas y patrones específicamente diseñados para facilitar la programación asíncrona. Todo con un único objetivo: que las Aplicaciones Metro respondan siempre de forma inmediata.

Más información | Principios de aplicaciones Metro

Javier Holguera es desarrollador en Payvision y lleva más de 5 años trabajando con tecnologías de Microsoft en una gran variedad de proyectos.

Es especialista en metodologías ágiles y en estándares web relacionado con HTML5. Es miembro activo de la comunidad .NET a través de MADNUG y colabora con medios como DotNetMania, PC Actual o Desarrolloweb.com.

Puedes seguirle en Twitter: @javierholguera o en su blog: javierholguera.com

Portada de Genbeta