#Hololens – Validando APIs que funcionan pero que no funcionan :S

Hola !

Es momento de comenzar a compartir algunas experiencias desarrollando para Hololens. Este caso es relacionado con UWP Apps, la base general de apps para todos los devices Windows 10.

Si bien tenemos una base común de features en todos los devices, para algunas cosas es recomendable validar si las funcionalidades están implementadas o no en un tipo especial de dispositivo.

Pues bien, según el artículo [Dynamically detecting features with API contracts (10 by 10)], la forma correcta de hacer esto es utilizando la clase ApiInformation. El ejemplo que nos comparte el equipo de Windows Dev Center es el siguiente:

using Windows.Foundation.Metadata;

if (ApiInformation.IsTypePresent(“Windows.Media.Playlists.Playlist”))
{
await myAwesomePlaylist.SaveAsAsync( … );
}

El código es bastante auto explicativo, si podemos utilizar las APIs de Playlist, pues … tenemos todo listo para seguir. En el caso de las Hololens, esto funciona muy bien, con opciones como Print o Share, que directamente no están disponibles en la plataforma.

Sin embargo, no es oro todo lo que reluce. ¿Qué sucede si queremos acceder a la cámara de las Hololens y utilizar la clase CameraCaptureUI? Esta clase nos brinda una opción para poder ver en tiempo real el feed de la cámara y sacar una foto sobre el mismo.

Aclaración: Es una incoherencia usar esto en las Hololens, lo sé. La cámara mostrará siempre lo que estemos viendo. Sin embargo como ejemplo para el post me viene genial!

Pues bien, cuando utilizamos CameraCaptureUI tenemos el siguiente funcionamiento en las Hololens:

  • La API CameraCaptureUI está disponible en Hololens
  • Al momento de utilizarla, Windows 10 nos sugiere la opción de descargar una app de la Store para esto
  • What ???

Aquí en funcionamiento:

2016 08 23 Hololens CameraCaptureUi

Sobre este código:

Clipboard02

O sea que, en este caso, validar la disponibilidad de una API no sirve. Llega el momento de utilizar una mala práctica

Utilizar AnalyticsInfo.VersionInfo.DeviceFamily para ver el tipo de dispositivo en el que se está corriendo la App. En el caso de las Hololens esta propiedad retorna “Windows.Holographic“.

Esta solución es una de las posibles, y por ahora la que funciona. Eso sí, apuntando que en cuanto UWP posea una mejor forma de validar este tipo de escenarios, esta función y  sus pruebas deben ser eliminadas!

Clipboard06

Un gatito y 2 unicornios menos gracias a 5 líneas de código !

Saludos @ Toronto

El Bruno

References

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.