PROJETO / 012 / SOFTWARE PESSOAL

VITALREGISTRO

Um aplicativo Android open source para registrar pressão arterial, pulso e peso localmente — criado a partir de uma necessidade pessoal e levado até um APK verificável.

STATUS
● PRIMEIRO MARCO FUNCIONAL
VERSÃO
v0.1.0 / DEBUG
PLATAFORMA
ANDROID / ARM64-V8A
LICENÇA
MIT
Ícone oficial do VitalRegistro.

Depois de algumas semanas sentindo dores frequentes na nuca, comprei um aparelho de pressão arterial em uma farmácia. A dor foi o motivo para começar a medir; não houve diagnóstico relacionando o sintoma à pressão alta.

Onde eu guardo essas medições?

Eu queria registrar sistólica, diastólica, pulso, peso, data, horário e observações. Uma planilha ou um bloco de notas resolveriam a necessidade imediata. Em vez disso, decidi transformar uma pergunta pequena em um projeto de software.

Apresentação visual do projeto. É uma composição de design, não uma captura do APK.

Uma ferramenta pequena, direta e sem servidor.

SEM ANÚNCIOSSEM CONTASEM ASSINATURASEM TELEMETRIA

Os registros ficam no próprio aparelho, em um banco SQLite armazenado na área privada do aplicativo. Não existe login, cadastro, sincronização obrigatória ou servidor necessário para usar o VitalRegistro.

Essa escolha não é perfeita. Perda ou dano do telefone, limpeza dos dados, desinstalação ou restauração do aparelho podem remover o histórico que não tenha sido exportado. Nesta versão não há sincronização, importação nem backup automático em nuvem.

Do formulário ao histórico.

INTERFACE / KIVY

Coleta os campos, permite escolher data e horário e apresenta histórico e gráficos.

MODELO / PYTHON

Valida formatos de entrada sem classificar o significado médico dos valores.

PERSISTÊNCIA / SQLITE

Grava cada medição de forma transacional, com identificador próprio e data/hora da medição.

Data e horário pertencem à medição, não ao instante em que o formulário foi salvo. Isso permite registrar depois uma leitura feita anteriormente. O histórico consulta o banco pelo momento medido, do mais recente para o mais antigo; se dois registros compartilham o mesmo minuto, o identificador desempata a ordem.

As mesmas linhas alimentam detalhes, edição, gráficos e exportação. Uma falha de leitura não provoca recriação destrutiva do banco.

Abrir, registrar e seguir a vida.

A interface foi mantida simples de propósito. As capturas abaixo foram feitas no primeiro APK instalado no Samsung Galaxy M55 e usam dados fictícios. Elas antecedem ajustes posteriores de transparência do ícone, áreas seguras e seletores, portanto documentam uma etapa real — não necessariamente a aparência final do artefato publicado.

Home do primeiro APK.
Formulário com data, horário e campos da medição.
Histórico com dados fictícios.
Gráfico com uma única observação e seletor de período.

Um ponto continua sendo apenas um ponto.

Os gráficos apresentam pressão, pulso ou peso nos últimos 7 dias, últimos 30 dias ou em todo o histórico. Durante o primeiro teste havia somente uma medição, então o gráfico mostrou somente um ponto.

Esse comportamento é correto. Criar uma linha, tendência ou interpretação com uma única observação acrescentaria informação que não existe nos dados.

REGISTRAR NÃO É DIAGNOSTICAR

O VitalRegistro registra, organiza, apresenta e exporta. Ele não classifica automaticamente uma pressão como boa, ruim, normal, alta, baixa, saudável ou perigosa e não substitui avaliação profissional.

CSV como saída e cópia externa.

A exportação reúne todos os registros em ordem cronológica, em CSV UTF-8, com data, hora, sistólica, diastólica, pulso, peso e observação. Aspas e quebras de linha são tratadas pelo gerador.

No Android, o aplicativo abre o seletor de documentos do sistema. O usuário escolhe nome e destino sem conceder ao aplicativo permissões amplas de armazenamento. Serviços de nuvem podem aparecer se já estiverem instalados, mas só são usados por escolha explícita.

A geração do CSV possui testes automatizados. O adaptador Android foi testado com componentes simulados; salvar, cancelar e repetir pelo seletor em um aparelho físico ainda aguardam validação.

O aplicativo não foi o único desafio.

Transformar o projeto Python/Kivy em um APK exigiu Google Colab, Buildozer, python-for-android, Android SDK e Android NDK. O fluxo anterior esperava Python entre 3.10 e 3.12, enquanto o Colab já executava Python 3.13.15.

Remover a verificação de versão não resolveria recipes, compilador nativo ou dependências. A cadeia foi revista para separar o Python que coordena o notebook, o Python que executa as ferramentas de build e o Python preparado pelo p4a para o aplicativo.

KERNEL COLABPython 3.13.15
PYTHON DE BUILDCPython 3.14.7
PYTHON NO APK3.14.2
ANDROIDAPI 36 · mínimo 24
NDKr29
ABIarm64-v8a
Fim do processo no Google Colab: o APK ARM64 foi gerado e encaminhado para download. A compilação bem-sucedida ainda precisava ser seguida pela instalação e pelo teste no aparelho.

Mais do que “funcionou naquele notebook”.

O ambiente final fixou commits específicos do Buildozer e do python-for-android, API 36, NDK 29 e o commit do próprio projeto. O arquivo build-info.json preserva o ambiente efetivo e associa esses dados ao APK produzido.

BUILDOZERa153097b…
PYTHON-FOR-ANDROIDe772ad93…
PROJETO DO APK895c3dc2…
TRÊS CONTEXTOS DE PYTHON

Kernel Colab 3.13.15, ferramentas de build em CPython 3.14.7 e Python 3.14.2 nas recipes/artefato Android. São funções diferentes dentro da mesma cadeia.

Dois APKs. O mesmo nome.

No fechamento da versão existiam dois arquivos chamados vitalregistro-0.1.0-arm64-v8a-debug.apk. Um era um build anterior; o outro, o artefato final. A conferência do SHA-256 evitou que o arquivo antigo fosse usado na publicação.

Uma informação que parecia formalidade mostrou imediatamente sua utilidade: identificar exatamente qual binário correspondia ao ambiente documentado.

v0.1.0 · 26.306.986 bytes · SHA-256259866134942d6990cf9f157603e3f024538b1101006a633fda633d5d386765a

O que foi confirmado — e somente isso.

O APK debug ARM64 foi instalado em um Samsung Galaxy M55 com Android 16. A documentação separa implementação, teste automatizado, smoke desktop e validação no aparelho.

INSTALAÇÃO E INICIALIZAÇÃOCONFIRMADAS
CRIAÇÃO E PERSISTÊNCIACONFIRMADAS
HISTÓRICOCONFIRMADO
GRÁFICO COM UMA MEDIÇÃOCONFIRMADO
EDIÇÃO E EXCLUSÃO NO APARELHOPENDENTES
EXPORTAÇÃO SAF NO APARELHOPENDENTE
AJUSTES VISUAIS NO APK FINALPENDENTES
MOCK NÃO É HARDWARE

Os testes automatizados do adaptador Android simulam Activity, Java e o seletor de documentos. Isso não equivale a executar o Storage Access Framework no telefone.

Trinta e cinco verificações antes do fechamento documental.

A suíte registrada cobre CRUD, persistência, edição de todos os campos, ordenação histórica, datas inválidas e bissextas, peso decimal, rollback, CSV UTF-8, áreas seguras e estados simulados da exportação Android.

Um smoke desktop exercitou detalhes, edição, gráficos vazios e preenchidos, pressão, pulso, peso, períodos, exportações repetidas e exclusão usando somente dados temporários fictícios. Esses testes ampliam a confiança no código, mas não substituem a lista curta do que foi confirmado no Galaxy M55.

O primeiro marco funcional.

A v0.1.0 reúne um aplicativo funcional, persistência local, histórico, gráficos, exportação implementada, documentação de build e uma primeira validação em hardware. O artefato publicado é DEBUG + ARM64-V8A; não é uma versão pronta para Google Play.

Ferramentas de IA participaram de discussões, implementação, revisão e documentação. A necessidade, as decisões, os testes e a conferência em hardware continuaram sendo parte de um processo conduzido e verificado por uma pessoa.

Onde guardar as medições?

A compra de um aparelho de pressão criou uma necessidade simples: registrar medições com data, horário e observações.

Python, Kivy e SQLite

A planilha possível deu lugar a um aplicativo local, editável e sem dependência de servidor.

Do Python ao APK

A mudança do Colab para Python 3.13 exigiu revisar a cadeia com Buildozer, python-for-android, SDK e NDK atuais.

Primeiro teste em hardware

Instalação, inicialização, criação, persistência, histórico e gráfico com uma medição foram confirmados no Samsung Galaxy M55 com Android 16.

Primeira release pública

O APK debug ARM64 e sua evidência de build formam o primeiro marco funcional publicado.

Local, funcional e ainda em desenvolvimento.

Continuam pendentes no aparelho: edição e exclusão completas, todos os gráficos e períodos, exportação/cancelamento pelo seletor, teclado, suspensão e retomada, além da validação visual dos ajustes feitos depois das capturas.

Importação CSV, intervalo personalizado, acessibilidade ampliada e preparação para distribuição assinada são possibilidades posteriores. Sincronização ou backup em nuvem exigiriam uma decisão futura explícita sobre privacidade.

O VitalRegistro não substitui avaliação, diagnóstico ou orientação de profissionais de saúde.

[ IDEIAS EM SINAL ]

Uma pergunta banal atravessou banco de dados, Android e reprodutibilidade.

O resultado não é apenas um APK. É o registro de como uma necessidade pessoal pequena cresceu até exigir decisões de produto, privacidade, interface, testes, compilação e identificação precisa de artefatos.