Deixando as Pessoas Enviarem Fotos no Seu App Criado por IA (Sem Ele Travar)

Adicionar upload de fotos a um app criado por IA significa armazenar arquivos em um serviço de arquivos dedicado (não no banco de dados), definir um limite de tamanho e tipo de arquivo — como 10 MB — e gerar uma pequena miniatura de pré-visualização — as instruções centrais para dar ao seu construtor de apps.

No momento em que seu app deixa de ser só texto e passa a permitir que as pessoas enviem uma foto, alguma coisa muda. Adicionar upload de imagens e arquivos significa deixar o usuário enviar uma foto, recibo ou documento do próprio dispositivo para dentro do seu app, que armazena esse arquivo e o exibe depois — uma foto de perfil, um recibo, a foto de um pacote danificado, um contrato em PDF. É uma daquelas funcionalidades que parece ser uma simples caixinha de seleção, mas esconde algumas arestas afiadas por baixo. Nenhuma delas é difícil. Mas são exatamente as que ninguém avisa que aparecem três semanas depois do lançamento — geralmente vindas do seu usuário mais entusiasmado.

Este é um tour pelo que realmente acontece quando alguém clica em “enviar”, os três erros que voltam para te morder depois, e as coisas exatas que você deve pedir ao seu construtor de apps para nunca cair nelas.

O que acontece de verdade quando você envia uma foto para um app?

Enviar uma foto dispara quatro etapas em sequência: o celular entrega o arquivo para o app, o app manda esse arquivo para um serviço de armazenamento de arquivos separado (não o banco de dados), o app salva um link para esse arquivo junto do registro, e depois busca o arquivo usando esse link sempre que alguém visualiza o registro.

Veja como isso funciona passo a passo:

  1. O celular entrega o arquivo ao seu app. Uma foto tirada com um celular moderno costuma ter entre 4 e 12 megabytes. Isso não é pouco.
  2. Seu app manda esse arquivo para algum lugar de armazenamento — não para o banco de dados do seu app, mas para um espaço de armazenamento separado, feito especificamente para arquivos.
  3. Seu app salva um link para esse arquivo no banco de dados, junto do resto do registro (este recibo pertence a esta despesa).
  4. Depois, quando alguém visualiza o registro, o app busca o arquivo no armazenamento usando esse link e o exibe.

A parte que as pessoas erram é a etapa 2 e a 3. Elas imaginam que a foto fica “salva no app”. Não fica, e não deveria ficar. Arquivos vivem no armazenamento; seu banco de dados só guarda a localização. Acerte essa divisão e tudo o que vem depois fica mais fácil.

Você deve armazenar as fotos enviadas diretamente no banco de dados?

Não — e esse é o erro de upload mais comum, um que os construtores de apps de IA às vezes cometem por padrão se você não for específico. Enfiar uma foto de 10 MB direto no seu banco de dados é como guardar seus móveis dentro da carteira. O banco de dados é feito para coisas pequenas e estruturadas — nomes, datas, preços. Despeje fotos nele e tudo fica lento, os backups incham, e um dia uma página que costumava carregar instantaneamente passa a levar seis segundos porque está arrastando cem imagens em resolução total junto.

O que você quer, em vez disso: o arquivo vai para o armazenamento de arquivos (seu construtor de apps pode chamar isso de “bucket de armazenamento” ou “blob storage”), e o banco de dados guarda só o link. Peça isso diretamente:

“Armazene as imagens enviadas em um serviço de arquivos, não no banco de dados. Mantenha apenas a URL do arquivo no registro.”

Como evitar que usuários enviem o tipo errado de arquivo ou um arquivo enorme demais?

Você decide de antemão o que é permitido — tipo de arquivo, limite de tamanho e uma mensagem de erro clara — e diz isso explicitamente ao seu construtor de apps, porque sem essas regras seu app vai aceitar qualquer coisa, inclusive arquivos que travam o upload por completo. Dois cenários reais mostram por quê, ambos de apps que funcionavam bem nos testes:

Uma mulher toca um pequeno negócio de doces e bolos e construiu um app para clientes enviarem fotos de bolos que gostaram. Funcionou muito bem até uma cliente enviar uma foto de 47 MB direto de uma câmera profissional. O upload travou, a cliente desistiu, e ela ficou sabendo assim: “seu app está quebrado”. Não estava quebrado — só nunca tinha um limite de tamanho definido, então ficava ali para sempre tentando engolir um arquivo enorme.

Um segundo caso: um freelancer construiu um portal de clientes onde as pessoas enviam “sua logo”. Um cliente enviou um arquivo .zip. Outro enviou um PDF de 90 páginas. O app aceitou tudo isso porque ninguém tinha dito a ele o que deveria ser uma logo.

Decida essas três coisas com antecedência:

  • Quais tipos de arquivo? Só fotos? Então aceite JPG e PNG e rejeite o resto, com uma mensagem amigável.
  • Qual tamanho? Um limite sensato para fotos fica em torno de 5 a 10 MB. Grande o suficiente para uma foto real de celular, pequeno o suficiente para barrar um despejo de câmera profissional.
  • E se estiver errado? O app deve avisar com gentileza — “Por favor, envie um JPG ou PNG com até 10 MB” — em vez de simplesmente travar.

Diga ao seu construtor de apps:

“Permita apenas imagens JPG e PNG de até 10 MB. Se alguém enviar outro tipo de arquivo ou um arquivo grande demais, mostre uma mensagem clara em vez de falhar silenciosamente.”

Por que seu app parece lento quando tem muitas fotos?

Porque cada pessoa que visualiza baixa o original em tamanho completo toda vez, não uma cópia reduzida — no celular dela, usando os dados dela, toda vez que alguém abre o registro. Digamos que alguém envie uma foto nítida de 8 MB e ela funcione bem sozinha. Multiplique isso por uma galeria de vinte fotos e seu appzinho rápido passa a parecer que está patinando na lama.

A solução tem um nome que vale a pena conhecer, porque seu construtor de apps vai reconhecê-lo: uma miniatura (thumbnail), ou uma versão redimensionada. A ideia é manter o original, mas também criar uma cópia pequena e otimizada para a web, e exibir essa cópia pequena em listas e pré-visualizações. A imagem completa só carrega quando alguém realmente quer vê-la em tamanho grande.

“Quando uma imagem for enviada, crie também uma versão menor redimensionada para pré-visualizações e listas. Mostre a versão pequena por padrão e só carregue a imagem completa quando alguém clicar para vê-la.”

Você não precisa entender como isso é feito. Precisa saber que existe, para poder pedir isso antes do seu app começar a parecer lento — e não depois.

Algumas decisões mais discretas, mas que vale a pena tomar

Essas três decisões não vão quebrar seu app se você pular elas, mas saem mais baratas se resolvidas agora do que se adaptadas depois: quem pode ver o arquivo, o que acontece com ele quando o registro é excluído, e se o upload funciona no celular.

  • Quem pode ver o arquivo? Uma foto de perfil pode ser vista por qualquer pessoa, sem problema. Um documento de identidade escaneado ou um contrato assinado, não. Se o arquivo for privado, diga ao seu construtor de apps que o link deve exigir login, e não ser uma URL pública que qualquer um pode abrir. Esse é o ponto em que eu mais insistiria para qualquer coisa sensível.
  • O que acontece quando o registro é excluído? Se alguém apagar uma despesa, a foto do recibo também deveria ser apagada? Caso contrário, você vai acumulando aos poucos arquivos órfãos que continua pagando para armazenar e nem lembra mais que existem.
  • Funciona no celular? A maioria dos uploads acontece no celular, e os celulares oferecem tanto “tirar uma foto agora” quanto “escolher da galeria”. Teste os dois em um celular de verdade, não só no seu notebook, onde você só arrasta um arquivo.

Teste como um desconhecido testaria

Teste tentando quebrar o app de propósito, do jeito que um usuário real vai quebrar sem querer — uma foto normal, um arquivo grande demais, o tipo de arquivo errado, um upload ao vivo pela câmera do celular, e uma exclusão — antes de considerar isso pronto:

  • Envie uma foto normal do celular. Ela aparece, e a pré-visualização é rápida?
  • Envie algo enorme. O app te barra com uma mensagem clara, ou simplesmente trava?
  • Envie o tipo errado — um PDF onde uma foto era esperada. Ele explica a regra?
  • Abra o app no seu celular e envie direto pela câmera.
  • Exclua um registro e verifique se o arquivo dele foi tratado do jeito que você decidiu.

Se essas cinco situações se comportarem bem, você já eliminou as arestas que pegam a maioria das pessoas.

Uploads são uma daquelas funcionalidades em que a distância entre “funciona na demonstração” e “funciona para um desconhecido no trem com uma foto de gato de 12 MB” é exatamente o conjunto de decisões acima. Nenhuma delas é difícil. Elas só são fáceis de pular — e muito mais fáceis de pedir agora do que de consertar depois.

Se você tem adiado adicionar uploads porque parecia um grande salto técnico, não é. Abra seu construtor de apps, peça armazenamento de imagens com um limite de tamanho e uma miniatura, e veja o que ele te entrega. Depois, vá tentar quebrar no seu celular — esse é o teste de verdade, e leva cinco minutos.