O contexto
O GigaBack é um produto interno, concebido e financiado pela Wisepear techlab. Serve dois objetivos: ocupar um terreno que os nossos trabalhos de cliente não cobrem — a aplicação de grande público, vendida diretamente nas lojas — e confrontar-nos com condicionantes que o software de gestão ignora.
O princípio cabe numa frase: arruma-se a fototeca deslizando o dedo, mês a mês, para a esquerda para deitar fora, para a direita para guardar.
O desafio
A categoria tem má fama, e por boas razões: subscrições indesejadas, preços enganadores e aplicações que enviam a fototeca para um servidor. O produto não podia limitar-se a ser correto: tinha de ser verificavelmente honesto.
A promessa tinha de aguentar palavra por palavra. «As suas fotografias nunca saem do seu telemóvel» é uma condicionante de arquitetura, não uma frase da política de privacidade. Todo o tratamento de imagens — análise, miniaturas, impressões digitais, deteção de duplicados — acontece no aparelho. Em troca, o que usa a rede é nomeado em vez de disfarçado: a compra, a publicidade que financia a versão gratuita, e o perfil que sustenta a quota.
O desempenho decide tudo. Uma fototeca de cinquenta mil fotografias proíbe comparar tudo com tudo. Sem uma estratégia de indexação séria, a aplicação bloqueia no primeiro arranque — e não recebe segunda oportunidade.
Nada pode ser irreversível. Uma aplicação que apaga fotografias de infância não se pode permitir a mínima ambiguidade.
O que fizemos
- Uma única base Flutter para iOS e Android, com uma base local SQLite que guarda o inventário, as impressões, as decisões e os contadores.
- Uma deteção de duplicados limitada. Calcula-se uma impressão perceptual sobre uma miniatura reduzida e as comparações ficam confinadas a janelas temporais — as fotografias tiradas com segundos de intervalo, depois as do mesmo mês. Nunca se compara tudo com tudo.
- Um cálculo em segundo plano que se retoma. A análise corre por lotes em fios separados, com prioridade baixa e um cursor em base de dados: uma aplicação fechada a meio da análise continua onde parou em vez de recomeçar.
- Nenhuma eliminação definitiva direta. Tudo passa pela reciclagem do sistema — «Apagados recentemente» no iOS, a reciclagem da galeria no Android — e a interface di-lo em vez de o esconder. As eliminações são agrupadas numa única confirmação do sistema por lote.
- Cinco línguas logo na primeira versão, com fichas de loja cujos campos são validados automaticamente contra os limites das plataformas: exceder um comprimento é motivo de recusa, e o dia do lançamento é um mau momento para o descobrir.
O resultado
A aplicação está disponível na App Store e no Google Play.
O que este produto nos ensina confirma-se depois junto dos clientes: uma aplicação de grande público não se joga apenas no seu código. Joga-se nas declarações de privacidade, que têm de corresponder ao que o software realmente faz; em fichas de loja conformes ao carácter; e numa revisão editorial que recusa aquilo que não consegue ver a funcionar.
Foi também aí que se formou uma convicção que aplicamos noutros projetos: uma promessa que a construção não cumpre custa exatamente aquilo que a honestidade devia render.