altbeaconBeacons. Esses pequenos dispositivos podem se tornar onipresentes no futuro. Tudo começou com os iBeacons da Apple, AltBeacon, e o Google agora está criando sua própria plataforma chamada Eddystone. Isso vai ser interessante.

Se você não sabe o que é um beacon, ele é uma coisa idiota que só sabe emitir sua presença para o mundo. Esse é o único objetivo de um sinalizador. Dizer a quem estiver ouvindo ao alcance que ele está aqui e seu nome é e9ae6b9f-7238-4df6-8497-dec29ebf4184 (ou algo parecido). Ele faz isso usando Bluetooth LE (Ou Bluetooth Low Energy, BLE, Bluetooth Smart).

Isso significa que um beacon é útil quando você tem um aplicativo que sabe como reagir à presença do beacon. O aplicativo precisa saber o que fazer quando o usuário encontra o beacon. E talvez o que fazer mude com o tempo. Se você passar por um beacon em um supermercado, o aplicativo poderá mostrar o que está em promoção no momento. E, obviamente, isso mudará com o tempo. Portanto, uma coisa boa ao trabalhar com beacons é poder redirecioná-los. Isso é algo que o Couchbase Mobile pode lhe oferecer. Sincronize facilmente um novo comportamento para um determinado beacon.

E, é claro, como funciona off-line, ele sempre pode fazer o que se pretende, mesmo que o usuário não tenha conexão de rede. Você também pode salvar um documento localmente com informações sobre o alcance do sinalizador pelo usuário e sincronizá-lo posteriormente com o servidor. Isso pode fornecer alguns dados interessantes sobre o comportamento dos usuários em um local sem ou com pouca conectividade de rede. Pense em qualquer grande evento ao ar livre, por exemplo.

Comecei a brincar com essas ideias em várias conferências e encontros. Veja como começar a usar Beacons e Android.

Teste de beacons

Poder testar beacons é a primeira coisa que eu queria fazer. E a razão para isso é que não tenho beacons :). O que pode parecer estranho, eu sei. Mas um beacon é apenas um dispositivo bluetooth de baixa energia. Tenho bluetooth no meu Mac, também tenho alguns dongles BLE e um RaspberryPi, tudo deve estar bem.

As pessoas maravilhosas da Radius Networks criaram uma imagem de VM que pode simplesmente funcionar como um sinalizador. Tudo é explicado em seu site site. Se você tiver um Mac e quiser usar o hardware Bluetooth dele no VirtualBox, saiba que é necessário desativá-lo primeiro no host da VM. Se você tiver um dongle Bluetooth, é muito rápido, basta verificar se o VirtualBox está configurado para usá-lo.

Eles também criaram o PiBeacon. É praticamente um kit de desenvolvimento de Beacon baseado no RaspberryPI. E você pode baixar a imagem para o Raspberry aqui. Instruções completas também podem ser encontradas no site site.

Depois de ter o Raspberry em execução com a imagem, você pode fazer o SSH nele e executar algo como

Isso simulará um transmissor de beacon. Eles têm três identificadores. Um UUID, uma versão principal e uma versão secundária. Isso faz parte da camada comum entre todos os formatos de beacons, como AltBeacon (formato aberto), iBeacon (Apple) e EddyStone (Google). E é isso que os aplicativos usam para identificar beacons.

Eu queria ter certeza de que tudo estava funcionando corretamente, então instalei o BeaconScanner no meu Mac e outro aplicativo de escaneamento de Beacon no meu telefone. Ambos captaram o sinal e eu estava pronto para trabalhar em meu aplicativo.

 Android e beacons

Eu queria manter tudo o mais simples possível, então optei pelo AltBeacon pilha. Tudo é código aberto e eles têm uma bela Biblioteca do Android. Eles também têm um design agradável e fácil de entender amostras de código que facilitou o início. Portanto, antes de mais nada, inclua a dependência correta em seu aplicativo. Comece adicionando o repositório maven do JCenter:

Em seguida, adicione a biblioteca real:

Outra coisa que você pode modificar corretamente é adicionar a permissão correta ao seu aplicativo AndroidManifest.xml:

Há basicamente duas coisas que você pode fazer com o Couchbase Mobile. Você pode atuar como cliente e reagir à presença de um beacon, ou pode atuar como backend e configurar os beacons.

Vamos começar pelo código que inicializa o serviço de beacon em segundo plano. Em seu aplicativo, ao criar, você pode executar o seguinte código:

Configurei um tempo agressivo para fins de teste. Você usaria uma duração maior na produção. Minha classe de aplicativo também implementa a interface BootstrapNotifier. O método didEnterRegion permite que uma atividade específica seja iniciada ao entrar no alcance de um beacon.

Essa atividade conterá o código que você deseja exibir, dependendo do ID do beacon, por exemplo. Ou talvez você queira apenas salvar um documento para registrar que o usuário atual esteve ao alcance de um determinado beacon. Essa é a primeira coisa que quero fazer. Portanto, preciso de uma atividade que implemente a função BeaconConsumidor interface.

Esse é um código muito básico, mas você entendeu a ideia. Nesse momento, você também pode sincronizar um canal com o nome do identificador do Beacon. Dessa forma, você obtém todas as informações necessárias para exibir informações significativas para o usuário. E se essas informações mudarem com o tempo, tudo o que você precisa fazer é modificar o documento que contém o comportamento do beacon e sincronizá-lo novamente com todos os usuários. É muito fácil criar um backend de beacon com o API REST do gateway de sincronização :)

Então, o que você acha dos beacons? Já é um usuário? Gostaria que falássemos mais sobre o assunto? Diga-nos o que você pensa!

Autor

Postado por Laurent Doguin

Laurent é um nerd metaleiro que mora em Paris. Em sua maior parte, ele escreve código em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programação reativa e outras coisas que estão na moda. Ele também foi Developer Advocate do Clever Cloud e do Nuxeo, onde dedicou seu tempo e experiência para ajudar essas comunidades a crescerem e se fortalecerem. Atualmente, ele dirige as Relações com Desenvolvedores na Couchbase.

Deixar uma resposta