Uso de Beacons para Apps en Android y iOS – Cordova

Ignacio Buioli
- 20/03/2018

Muchos se encuentran al tanto de nuestros desarrollos de la Tera-App y el Tera-Streaming para la obra Teravision, realizada hace poco en el Centro de Experimentación del Teatro Colón. La realidad es que se trata de una de las obras más complejas que hemos llevado a cabo a nivel técnico, y nos ha dejado -entre otras cosas- mucho material producto de la experimentación y la innovación que nos caracteriza. Tal es el caso de utilizar dispositivos Beacons para la obra. Los Beacons son pequeños dispositivos -como pastillas grandes- que transmiten señal a través de Bluetooth Low Energy (BLE). Esto quiere decir, que cualquier dispositivo móvil con acceso a Bluetooth 4.0 (más del 90% de los dispositivos, según Bluetooth SIG predice para este año) podrá obtener la distancia a la que se encuentra de dicho Beacon. Para Teravision empleamos los Beacons de Onyx Beacon, el modelo básico, pero se comercializa también un modelo especial con mejor señal y otros agregados (impermeabilidad, alarma, etc).

Nuestra idea de desarrollo de Apps siempre tiende a utilizar el framework Cordova, ya que nos permite desarrollar una app híbrida en lugar de una app por sistema (en grupos reducidos de trabajo, como el nuestro, suele ser la diferencia entre poder llegar a tiempo con el desarrollo y no poder). Como no podía ser de otra manera, existe un plugin para Cordova que hace uso del SDK de Beacons (cordova-beacon de unarin) para utilizarlo en JavaScript, y también está la opción de utilizar el plugin BLE, aunque sin resultados aparentes. La configuración es por demás sencilla, se requiere simplemente el UUID (un número en 5 bloques) del fabricante (en este caso Onyx Beacon) para poder poner todas las Beacons en lo que se conoce como una región. La región de Beacons es propia de cada App y puede estar constituida por Beacons de distintos fabricantes, el plugin de Cordova tiene opciones para dicha configuración. Para reconocerlos se utilizan los valores major y minor (cuya combinación es única para cada dispositivo de cada fabricante) o bien un número de Mac Address (también único).

La primer opción era utilizar los Beacons como triggers/disparadores de cada escena dentro de la obra, cuando la persona se acerque lo suficiente a uno de ellos. Sin embargo, la realidad tecnológica no nos permitió poder desarrollarlo en su totalidad. El valor de accuracy supuestamente devuelve un número decimal que es el equivalente en metros a la distancia entre dispositivo y Beacon. No esperábamos encontrarnos con un dato real de distancia, pero en muchos casos no era ni aproximado. Por tal motivo, abandonamos el uso de Beacons para producir una obra 100% autónoma y surgió la idea de emplearlos como dispositivos de monitoreo de usuarios. Y así fue, pudimos conseguir datos de como se movía cada usuario en el espacio, el tiempo que se mantenía quieto y si repetía o no la experiencia. Esto no solo sirvió como control a la hora de llevarse a cabo la obra, sino que también produjo una base de datos interesante para mejorar el recorrido y la experiencia en un futuro.

¿Y que conclusiones tenemos a partir del uso de Beacons? En principio, que la respuesta de estos dispositivos no es para nada “tiempo real”, hay un retraso importante al utilizar el SDK de Android o de iOS; y no se trata de que la App esté construida en Cordova, ya que internamente el motor que obtiene los valores de los Beacons es el propio SDK. Para más complicaciones, la precisión de dichos valores es completamente ridícula. Sí, al estar mas lejos del Beacon el valor sube, al acercarse el valor decrece; pero sin ningún parámetro que pueda explicar el porque en dispositivos Android devolvía un valor de 2.5 al estar a 10 metros de distancia, mientras que en muchos iPhone se conseguían valores superiores a 15 para la misma distancia. Lo que parece dar a entender que los fabricantes de Beacons desean que los desarrolladores utilicemos APIs con licencia como Tracko o similar (las cuales se pagan anualmente y no son alternativas libres).

Entonces, ¿Es una buena opción el uso de Beacons? ¡Por supuesto! Para monitoreo del público en un espacio determinado, para instalaciones museológicas, incluso para estacionamientos. Los problemas pueden ajustarse con estrategias desde el software mientras se desarrollan mejores hardwares. Lo que nos queda claro son dos cosas: estos dispositivos llegaron para quedarse y son sumamente inestables -todavía- para emplearse en todo tipo de obra.