Saltar para o conteúdo principal

Como funciona

Apps com sincronização em tempo real mantêm um banco de dados local no dispositivo. Leituras são instantâneas (locais), escritas ficam na fila localmente, e tudo sincroniza com o servidor em background.
Escrita do usuário -> Banco de dados local -> Fila de upload -> Servidor -> Postgres
                                                                              |
Leitura do usuário  <- Banco de dados local <- Replicação de sync <---------+
O resultado: leituras instantâneas, sem spinners de carregamento, e um app que continua funcionando em conexões ruins ou offline.

O que a IA configura

Peça à IA para construir um app em tempo real. Ela reutiliza um banco de dados ativo adequado quando existe; caso contrário, cria um banco de dados, ativa o serviço de sync e constrói um app em duas partes:
  • UI - app cliente com banco de dados local, consultas ao vivo e conector de sincronização
  • Process - endpoint de token, rota de upload de sync e executor de migrações
Credenciais são armazenadas no vault. A IA conecta variáveis de ambiente do banco de dados ao componente de processo com a ferramenta db. Antes do app ser considerado pronto, o banco de dados deve mostrar sync: ready. Se o sync não estiver pronto, o app pode renderizar, mas dados em tempo real entre dispositivos não funcionarão.

Regras práticas

  • Escreva localmente primeiro. Deixe o sync fazer upload em background.
  • Mostre estados vazios, não spinners de carregamento, uma vez que dados locais existem.
  • Mantenha o estado visível ao usuário em tabelas sincronizadas para que sobreviva a atualizações e uso offline.
  • Agrupe escritas locais relacionadas para que a UI atualize em uma única etapa.
  • Verifique a saúde do sync antes de considerar um app em tempo real como pronto.

Shell de app offline

Templates de UI podem incluir um shell de app offline para que o app possa reabrir após a primeira visita sem rede. O shell do app é o HTML, JS, CSS e ícones estáticos.
  • Shell offline permite que o app abra sem rede
  • Sync mantém os dados do app utilizáveis enquanto offline
Juntos: o app abre sem rede, mostra os dados sincronizados mais recentes, coloca novas escritas na fila e sincroniza quando a conexão volta.

Quando usar sincronização em tempo real

Bom ajusteExcessivo
Gerenciadores de tarefas e apps de notasPáginas de marketing estáticas
Ferramentas colaborativasEnvios de formulário únicos
Apps de campo com conectividade fracaSites de brochura somente leitura
Qualquer coisa que deva parecer instantâneaApps sem valor offline

Variáveis de plataforma

Kazzle injeta um pequeno conjunto de variáveis de ambiente em cada processo de app automaticamente. Estas são separadas de seus próprios segredos do vault.
VariávelO que é
PORTA porta na qual seu processo deve escutar
HOSTO hostname para vincular (tipicamente 0.0.0.0)
KAZZLE_API_URLURL base usada pelos helpers de runtime do Kazzle
KAZZLE_APP_COMPONENT_<NAME>_URLURL de runtime de um componente irmão

URLs de irmãos

Quando um app tem múltiplos componentes (ex: uma UI web e um processo server), Kazzle pode injetar URLs para componentes irmãos:
# Na parte "web":
KAZZLE_APP_COMPONENT_SERVER_URL=http://localhost:3001

# Na parte "server":
KAZZLE_APP_COMPONENT_WEB_URL=http://localhost:3000
Quando um irmão já está implantado, o valor injetado aponta para esse componente implantado. Caso contrário, aponta para o endereço de desenvolvimento atual para esse irmão.