A atualização que quebra silenciosamente o app de ontem

Atualize o sistema ou uma biblioteca central e um app nativo que você enviou há um ano pode simplesmente parar de funcionar. Uma API é descontinuada, um modelo de permissões muda, um caminho de render é removido —e a compilação que estava bem em produção agora falha ou se recusa a iniciar. A plataforma avançou e seu programa antigo não recebeu o aviso.

Um runtime de mini-programa adota a promessa oposta. Ele é versionado e o contrato é que um programa publicado contra uma biblioteca base anterior continue abrindo em runtimes mais novos. O runtime carrega a superfície de compatibilidade; o programa não precisa perseguir cada mudança de plataforma para seguir vivo.

O que é realmente a compatibilidade versionada

O runtime expõe uma biblioteca base com versão maior.menor.patch e a plataforma garante que runtimes mais novos continuem executando programas construídos contra bibliotecas base mais antigas. O WeChat documenta isso explicitamente: novos recursos são limitados pela versão mínima da biblioteca base e os desenvolvedores verificam compatibilidade com wx.canIUse ou wx.getAppBaseInfo em vez de assumir que uma função existe. A visão geral da biblioteca base da Alipay+ e o changelog da Tuya declaram o mesmo princípio: as bibliotecas base "mantêm a compatibilidade retroativa" ao adicionar capacidades. O WeChat inclusive embute uma biblioteca base estável atual e uma anterior em cada lançamento de cliente, para que os programas antigos continuem inicializando.

Nos apps nativos nada disso é garantido: uma atualização do sistema é uma mudança rupturista que chega aos usuários quer o app estivesse pronto ou não.

Onde a diferença aparece

PassoApp nativoRuntime de mini-programa (versionado)
Nova versão de plataformaPode quebrar compilações antigasA biblioteca base antiga ainda roda
API descontinuadaFalha ou inicialização bloqueadaDetectada por recurso, elegante
Verificação de compatibilidadePor dispositivo, manualcanIUse / comparação de versões
Garantia de estabilidadeNenhuma no nível do sistemaBiblioteca base retroativa
Vida do programaLigada ao suporte do sistemaLigada ao contrato do runtime

O resultado é que um programa publicado não tem uma data de validade ligada ao próximo lançamento de plataforma. Ele continua abrindo até que o desenvolvedor decida encerrar o suporte.

Por que um contrato supera a esperança

Um runtime versionado significa que o desenvolvedor pode publicar uma vez e confiar que o programa continuará rodando à medida que a plataforma evolui, com detecção de recursos para o que é mais novo. Também significa que o piso da biblioteca base é uma configuração, não uma aposta: os desenvolvedores escolhem a versão mínima e o runtime faz o resto. O mesmo programa segue vivo após a atualização da super-app, em cada super-app que respeite o contrato da biblioteca base.

Como a Cross Mini App aplica

A Cross Mini App dá aos programas um runtime versionado com um contrato de compatibilidade explícito: um programa construído contra uma biblioteca base anterior continua abrindo em runtimes mais novos, com detecção de recursos para o que é novo. Você publica um programa; o runtime garante que ele ainda iniciará após a próxima atualização. Você para de republicar só para manter viva a compilação de ontem.

Essa é a diferença entre um app que caduca com o sistema e um programa que o runtime promete manter aberto.

Fontes