Etiquetado: Surface

Yes We Touch! El SDK de Surface 2.0 ya está disponible

Surface 2.0
Ayer día 12 se publicó el nuevo SDK de Surface 2. El nombre nos da una pista de qué podremos hacer con él, pero nos esconde un potente conjunto de herramientas que podremos utilizar con otros dispositivos más sencillos.

No voy a repetir lo que ya cuentan en muchos blogs sobre el SDK pues es mejor leer directamente la fuente original. Así que os resumiré algunos puntos que me parecen importantes para afrontar el desarrollo sobre el mismo.

No sólo Surface

Tal como anunciaron hace tiempo en su versión 1.5, se han unificado todos los dispositivos táctiles que utilicen un interfaz HID. Esto tiene una parte muy buena y otra mala…

  • La mala, que Surface 1 no tiene interfaz HID, así que los que tenemos una no podremos realizar la actualización
  • La buena, que podremos crear aplicaciones para todos los dispositivos táctiles que funcionen en Windows 7 con el mismo SDK

Guía de diseño e interacción

Surface Interaction

Con la documentación del SDK viene un enlace al documento que considero el más importante de todos: Surface Application Design Guidelines. Antes de empezar cualquier aplicación es altamente recomendable (yo lo haría obligatorio) que todo el equipo implicado en el desarrollo y diseño lean, estudien, revisen, comenten y vuelvan a leer este documento. Son 70 páginas, pero que no se asuste nadie, en su mayoría son imágenes que nos harán comprender de una manera sencilla y natural los nuevos retos que deberemos afrontar y cómo recomienda el equipo de Surface resolverlos. La guía de diseño no podía ser de otra forma.

Metro

Aunque no aparezca la palabra en la guía de diseño, ya sabemos que el lenguaje Metro ha salido de los dominios de WP7 y Surface era el candidato perfecto. Los contenedores se vuelven invisibles para dar el protagonismo al contenido, tenemos una librería de iconos minimalistas y los principios de diseño son:

  1. Simple: ligero y abierto
  2. Organizado: jerárquico y estructurado
  3. Auténticamente Digital: real y honesto
  4. Orientado a Contenido: enfocado y explorable
  5. Vivo: reacción instantánea, movimiento
Los que habéis estado en alguna presentación de Windows Phone ya habréis oído estos principios. Y por si os falta algún argumento para convenceros, Surface incluye una nueva fuente adaptada al entorno 360 que permite leer fácilmente el texto en el dispositivo: Segoe 360
Segoe 360

Touch!

Insisto, leed la guía de diseño e interacción, es muy inspiradora y ahora ya no es exclusiva para Surface. Muchos de los próximos dispositivos van a incorporar capacidades táctiles y (casi) todos los actuales se pueden beneficiar de aplicaciones con una interfaz mucho más natural y preparada para lo que está por venir.

Anuncios

SUR 40

Aprovechando que estaba de viaje por Redmond estos días he hecho una breve visita al equipo de desarrollo de Surface. Me ha recibido Luis Cabrera, al que debo agradecerle que me haya atendido pues me presenté casi por sorpresa y como imaginaréis están en un momento de gran cantidad de trabajo.

He podido ver y tocar la nueva SUR40, un dispositivo impresionante fabricado por Samsung, con el que se da un gran paso adelante, pues se han resuelto los mayores problemas que había en la primera versión, además de la reducción de precio:

  • A nivel de hardware: peso, tamaño y orientación ya no suponen ningún problema, gracias a Pixelsense ya no son necesarios ni proyectores ni cámaras, cada píxel es a su vez un sensor que le permite al dispositivo ver lo que pongamos sobre él. Esto ha reducido el grosor de la mesa que ahora también es posible colgar en la pared y funcionar en modo kiosco. Además se ha incrementado la resolución hemos de tener en cuenta que es tecnología LCD y por lo tanto muy superior a la calidad de retroproyección que teníamos en Surface 1.0.
  • Software: funciona sobre Windows7, utiliza un SDK común para el resto de dispositivos “Touch” y el interface tiene bastantes novedades que lo hacen mucho más amigable, por ejemplo:
    • Algunas acciones que podían ser confusas como la de cerrar una aplicación ahora son más explícitas y se evita la confusión o el cierre por error.
    • El interface de usuario contiene grandes mejoras, muy parecido al concepto Metro de WP7, aumentando la importancia del contenido sobre el contenedor.
    • Están trabajando en controles que nos facilitarán mucho el trabajo, tengo ganas de probar el SDK ya 😀

Aparte de las novedades, para los que ya habéis hecho alguna aplicación en Surface os daré una buena noticia, las aplicaciones que ya teníamos hechas para Surface 1.0 serán muy fáciles de migrar. Nosotros ya estuvimos probando dcon el SDK 1.5 y no tuvimos ningún problema para migrar las aplicaciones.  Parece ser que para 2.0 la base sigue siendo muy parecida así que podremos aprovechar no sólo el know how sino el código también.

Le conté algunos de nuestros proyectos en el MICTT enfocados a turismo y a integrar las diferentes tecnologías que tenemos como Kinect y WP7 junto a Surface, así él me ha dado su visión de cómo usando Surface + Kinect se pueden crear experiencias muy ricas para el usuario, demostrándome una vez más que NUI va mucho más allá de “touch” y que estamos en un momento completamente revolucionario.

Al día siguiente anunciaron el SDK de Kinect en Channel 9 así que ya tenemos con qué ponernos a jugar durante una buena temporada.

Fue una charla corta pero muy interesante, espero en breve dar una buena sesión sobre NUI en el MICTT como introducción a un gran evento que haremos después de verano.

Usar múltiples ratones con Surface Toolkit for Windows Touch Beta

En el seminario de Surface de la semana pasada en el MICTT también hablamos de las nuevas herramientas de Surface para Windows Touch: Microsoft® Surface® Toolkit for Windows Touch Beta, donde podéis encontrar las librerías en WPF4, Windows Touch y podréis probar lo que vendrá para Surface 1.5.

El nuevo kit de desarrollo no incluye el emulador de Surface, pues se supone que está pensado para unificar el desarrollo con equipos con capacidades Multi Touch. Aunque tengamos instalado el emulador antiguo no podremos ejecutar las aplicaciones dentro de éste.

El emulador venía muy bien, pues al conectar varios ratones en nuestro ordenador podíamos probar las capacidades Multi Touch aunque no las tuviera, pero para las nuevas herramientas hace falta que el equipo tenga una pantalla táctil.

A pesar de lo dicho, hay una forma de probar las aplicaciones en un equipo sin Multi Touch, gracias al proyecto Multi-Touch Vista. Vamos a ver cómo hacerlo:

  1. Descargamos el paquete y seguimos el procedimiento de instalación del driver UniSoftHid que nos permitirá usar múltiples ratones en Windows 7, os lo detallo aquí:
    1. Tras descomprimir abrimos la carpeta Driver y dentro x86 o x64 dependiendo de nuestro sistema.
    2. Ejecutamos el script “Install Driver” con privilegios elevados.
    3. Abrimos el administrador de dispositivos y deshabilitamos y volvemos a habilitar el “Universal Software HID Device”
    4. Abrimos “Lápiz y Dispositivos de Entrada” en Panel de Control. Se habrá habilitado la pestaña “táctil”, allí hay que marcar la casilla “Mostrar el puntero táctil…”.
  2. Ahora viene lo difícil, hay que arrancar los servicios de multitouch en un cierto orden y con cuidado para que funcione bien:
    1. Conectamos al menos un par de ratones (o ratón + touchpad)
    2. En la carpeta raíz del paquete ejecutamos Multitouch.Service.Console, eso ejecutará el servicio que reconoce los múltiples ratones y aparecerán dos puntos rojos en pantalla.
      multitouch1
    3. Ahora, con mucho cuidado de no cerrar ninguna de estas ventanas abrimos Multitouch.Configuration.WPF, abrimos la configuración de MultipleMice y marcamos la casilla que dice “Block native windows mouse input….”

      multitouch2

    4. Al dar al OK nos va a desaparecer nuestro cursor, nos quedarán únicamente los dos puntos rojos que indican nuestros dispositivos y probablemente NO PODREMOS HACER CLICK; no os alarméis, en el siguiente paso lo solucionamos.
    5. Ahora hay que ir otra vez a la carpeta donde descomprimimos el paquete (usando el teclado Alt+Tab) y ejecutaremos Multitouch.Driver.Console, esto nos habilitará el click en los dos dispositivos y ya podremos probar nuestras aplicaciones MultiTouch hechas con el SDK.

A partir de ahora, cuando ejecutemos el Multitouch.Service.Console ya habrá quedado guardada la configuración, así que podremos pasar del paso B al E directamente.

Espero que os haya sido útil.

Por si os apetece investigar más en otras tecnologías con múltiples ratones podéis probar también: Windows MultiPoint Mouse Software Development Kit 1.5.1, pero ya hablaremos de este kit otro día.

Desarrollo de Surface 1.0 SP1 en VS2010

El miércoles pasado dimos un seminario de Surface en el Microsoft Innovation Center| Tourism Tecnologies que incluía un laboratorio de creación de una pequeña aplicación con el SDK y Visual Studio.

En los TouchSmart que tenemos en el centro están instalados Visual Studio 2008 y 2010, así que decidimos hacer el lab con 2010, pues debería ser compatible, pero nos encontramos con el problema de que en la versión nueva no estaban instalados los templates de proyecto, pues el SDK está preparado sólo para 2008. En algún sitio por internet te dicen que los has de copiar al directorio del usuario, porque cuando los copias allí el VS.Net los reconoce inmediatamente y en cambio al copiarlos al directorio común en Archivos de Programa parece que el Visual Studio no los reconoce. Este método tiene un pequeño problema en nuestro escenario: si hay múltiples usuarios hay que copiar las plantillas a todos los usuarios.

Esto pasa porque se deben reconstruir los templates, que se guardan en la carpeta templatecache. Estos son los pasos para que funcionen los templates en todos los usuarios:

  1. Abrimos una línea de comando con privilegios elevados:

    botón de inicio-> escribir: cmd -> pulsar SHIFT+CTRL+ENTER

  2. Copiamos los ficheros de templates del SDK de surface del VS2008 al VS2010:

    xcopy /s “%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Surface” “%PROGRAMFILES%\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Surface\”

    xcopy /s “%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Surface” “%PROGRAMFILES%\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Surface\”

  3. Ejecutamos el comando de reconstrucción (tarda un rato):

    “%PROGRAMFILES%\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com” /InstallVSTemplates

Y ya podréis desarrollar aplicaciones para Surface en VS2010, recordad que debe ser Framework 3.5, la versión para 4 aún está en beta.

Surface1.0