O contexto
Um fabricante de instrumentação para ULM está a desenvolver um visor frontal: os dados de voo — atitude, velocidade, altitude — são projetados em óculos inteligentes, para que o piloto mantenha os olhos no exterior em vez de no painel.
O equipamento existia: uma sonda que produz os dados de voo e dois modelos de óculos de fabricantes diferentes. Faltava a aplicação que liga tudo.
O desafio
Este projeto acumulava três dificuldades que raramente aparecem juntas.
Três periféricos Bluetooth, em simultâneo. A sonda emite, os óculos recebem, e os três têm de ser descobertos, emparelhados e reconectados sem que o piloto tenha de se ocupar disso. Um emparelhamento manual antes de cada voo teria bastado para desqualificar o produto.
Nenhuma biblioteca existente para a apresentação. Um horizonte artificial — o nível de bolha do piloto — não existe em Flutter. Era preciso construí-lo a partir dos dados brutos de atitude fornecidos pela sonda.
Um contexto em que o erro se paga caro. Uma apresentação bloqueada ou um valor errado em voo não é um incidente de conforto.
O que fizemos
O projeto começou por uma fase de enquadramento a sério: compreender o equipamento, rever a documentação existente e, sobretudo, redefinir o âmbito com o cliente antes de escrever código. As funcionalidades esperadas foram retrabalhadas em conjunto e depois com os designers.
Só então:
- Uma arquitetura MVVM com gestão de estado reativa, escolhida porque a aplicação é fundamentalmente um fluxo de dados em tempo real que tem de ser encaminhado para o periférico certo consoante a configuração em vigor.
- Uma fase de validação técnica antes do compromisso. Antes de construir sobre uma biblioteca Bluetooth, desenvolvemos uma maqueta funcional para verificar a sua compatibilidade real com a sonda e com os dois modelos de óculos. Descobrir uma incompatibilidade ao fim de três meses teria custado o projeto.
- Descoberta e ligação automáticas dos três tipos de periféricos ao arranque: o piloto liga, e liga-se.
- Um horizonte artificial desenvolvido à medida a partir dos dados de atitude, já que nada de existente servia.
- Um encaminhamento de dados configurável, decidindo a aplicação para que modelo de óculos envia o quê, consoante a disposição escolhida.
Em torno da aplicação, entregámos também uma API e um servidor de atualização remota do firmware.
O resultado
A aplicação está em desenvolvimento contínuo desde 2024 e continua em evolução ativa.
O que tornou este projeto possível foi a sequência: enquadramento, maqueta de validação, depois desenvolvimento. Num projeto em que o equipamento impõe as suas regras, é a ordem que protege o orçamento — a maqueta Bluetooth da primeira semana validou uma escolha de que dependia tudo o resto.
Imagens
Cliente abrangido por um acordo de confidencialidade