BITBOX
COMPRANDO PRODUTOS COM CRIPTOMOEDAS

Projeto de integração da UTFPR, a Bitbox foi uma demonstração de como produtos
já conhecidos podem assimilar novas tecnologias de forma inovadora.

O que é a Bitbox?

A Bitbox é um protótipo de máquina de vendas automática, idealizada e desenvolvida por mim juntamente aos meus colegas de equipe da UTFPR. Como entusiasta de criptomoedas, decidi usá-las como meio de pagamento dentro do protótipo, o que eliminaria toda a necessidade de um aparato mecânico de captura de cédulas e moedas para efetuar os pagamentos.
Como forma de interface com nosso usuário final desenvolvi aplicativo Android, trazendo mais uma camada de transformação digital à nossa vending machine.

Arquitetura da Bitbox

O sistema da Bitbox é coordenado por um servidor central, que processa os pedidos de produto feitos pelo app, um sistema embarcado que coordena a parte eletrônica e reage aos pedidos enviados pelo servidor.

Aplicativo móvel

O app é a interface principal do sistema, e desenvolvê-lo foi uma boa oportunidade de testar novas arquiteturas e tecnologias.

Antes de iniciar o código, fiz um wireframe para estruturar os requisitos do app, e também trazer à tona todas as requisições que o aplicativo precisaria fazer para comunicação com o servidor, e isso foi essencial para o mapeamento dos endpoints e modelagem do banco de dados.

O aplicativo da Bitbox foi implementado em Kotlin, para dispositivos Android. Desenvolvi o aplicativo seguindo a Clean Architecture, e discorro um pouco mais sobre a arquitetura neste post.

Algumas das bibliotecas usadas foram:

  • Dagger2 para injeção de dependências
  • Retrofit2 para realizar a comunicação com o servidor
  • RxJava para programação reativa
  • Componentes do Android Jetpack para implementação da Clean Architecture

Bitbox em funcionamento

Neste vídeo o Akira Gondo explica em mais detalhes sobre como a Bitbox foi desenvolvida, e também é possível ver ela em funcionamento com todos os componentes integrados:

Veja mais sobre o projeto no site da Bitbox!