altbeaconBalizas. Estos pequeños dispositivos podrían convertirse en omnipresentes en el futuro. Comenzó con iBeacons de Apple, AltBeacon, y Google ahora está consiguiendo su propia plataforma llamada Eddystone. Esto va a ser interesante.

Si no sabes lo que es una baliza, es una cosa tonta que sólo sabe emitir su presencia al mundo. Ese es el único propósito de una baliza. Decirle a quien esté escuchando dentro de su alcance que está aquí y que su nombre es e9ae6b9f-7238-4df6-8497-dec29ebf4184 (o algo así). Para ello utiliza Bluetooth LE (O Bluetooth Low Energy, BLE, Bluetooth Smart).

Esto significa que una baliza es útil cuando se dispone de una aplicación que sabe cómo reaccionar ante la presencia de la baliza. La aplicación tiene que saber qué hacer cuando el usuario se encuentra con la baliza. Y puede que lo que haya que hacer cambie con el tiempo. Si te cruzas con una baliza en un supermercado, la aplicación puede mostrarte lo que está de oferta en ese momento. Y, obviamente, esto cambiará con el tiempo. Así que una buena cosa cuando se trabaja con balizas es ser capaz de reutilizarlas. Esto es algo que Couchbase Mobile puede ofrecerte. Sincroniza fácilmente un nuevo comportamiento para un beacon en particular.

Y, por supuesto, como funciona sin conexión, siempre puede hacer lo previsto aunque el usuario no tenga conexión a la red. También puede guardar un documento localmente con información sobre el usuario que se encuentra dentro del alcance de la baliza y sincronizarlo más tarde con el servidor. Puede proporcionarte datos interesantes sobre el comportamiento de tus usuarios en un lugar sin conexión a la red o con una conexión deficiente. Piensa, por ejemplo, en un gran evento al aire libre.

Empecé a juguetear con estas ideas para varias conferencias y meetups, aquí está cómo empezar con Beacons y Android.

Probar balizas

Poder probar balizas es lo primero que quería hacer. Y la razón es que no tengo balizas :). Lo que puede sonar raro, lo sé. Pero una baliza no es más que un dispositivo bluetooth de baja energía. Tengo bluetooth en mi mac, también tengo algunos dongles BLE y una RaspberryPi, todo debería estar bien.

La maravillosa gente de Radius Networks construyó una imagen VM que puede actuar muy sencillamente como un faro. Todo se explica en su sitio web. Si tienes un Mac y quieres usar su hardware Bluetooth en VirtualBox, debes saber que primero tienes que desactivarlo para la máquina virtual. Si tienes un dongle bluetooth es muy rápido, sólo asegúrate de que VirtualBox está configurado para usarlo.

También construyeron PiBeacon. Es más o menos un kit de desarrollo de Beacon basado en la RaspberryPI. Y puedes descargar la imagen para la Raspberry aquí. También puede encontrar instrucciones completas en su sitio web.

Una vez que tengas la Raspberry funcionando con su imagen, puedes conectarte por SSH y ejecutar algo como

Esto simulará un transmisor de baliza. Tienen tres identificadores. Un UUID, una versión mayor y una versión menor. Esto forma parte de la capa común entre todos los formatos de balizas, como AltBeacon (formato abierto), iBeacon (Apple) y EddyStone (Google). Y esto es lo que las aplicaciones utilizan para identificar las balizas.

Quería asegurarme de que todo funcionaba correctamente, así que instalé BeaconScanner en mi Mac y otra aplicación de escaneado de balizas en mi teléfono. Ambas captaron la señal, así que estaba listo para trabajar en mi aplicación.

 Android y balizas

Quería que todo fuera lo más sencillo posible, así que opté por el AltBeacon pila. Todo es código abierto y tienen un bonito Biblioteca Android. También son agradables y fáciles de entender. muestras de código que facilitó la puesta en marcha. Así que lo primero es lo primero, incluir la dependencia correcta a su aplicación. Empieza añadiendo el repositorio maven de JCenter:

A continuación, añada la biblioteca propiamente dicha:

Otra cosa que puedes modificar es añadir el permiso adecuado a tu aplicación AndroidManifest.xml:

Hay básicamente dos cosas que puedes hacer con Couchbase Mobile. Puedes actuar como cliente y reaccionar a la presencia de un beacon, o puedes actuar como backend y configurar los beacons.

Empecemos por el código que inicializa el servicio en segundo plano de la baliza. En tu Aplicación, al crearla, puedes ejecutar el siguiente código:

He configurado algunos tiempos agresivos para pruebas. En producción se usaría una duración más larga. Mi clase Application también implementa la interfaz BootstrapNotifier. El método didEnterRegion permite lanzar una actividad específica cuando se entra en el rango de una baliza.

Esta actividad contendrá el código que quieras mostrar dependiendo del ID de la baliza, por ejemplo. O tal vez sólo desea guardar un documento para registrar que el usuario actual ha estado en el rango de una baliza en particular. Que es lo primero que quiero hacer. Así que necesito una actividad que implemente el método BeaconConsumer interfaz.

Este es un código muy básico, pero se entiende la idea. En este momento también podrías sincronizar un canal con el nombre del identificador de la baliza. De esta forma obtendrás toda la información que necesitas para mostrar información significativa al usuario. Y si esta información cambia con el tiempo, todo lo que tienes que hacer es modificar el documento que contiene el comportamiento de la baliza y sincronizarlo de nuevo con todos los usuarios. Es realmente fácil construir un backend de baliza con la herramienta API REST de Sync Gateway :)

¿Qué opina de las balizas? ¿Ya eres usuario? ¿Le gustaría que habláramos más de ello? Háganos saber su opinión.

Autor

Publicado por Laurent Doguin

Laurent es un metalero empollón que vive en París. Principalmente escribe código en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programación reactiva y otras cosas de moda. También fue Developer Advocate de Clever Cloud y Nuxeo, donde dedicó su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase.

Dejar una respuesta