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
| Passo | App nativo | Runtime de mini-programa (versionado) |
|---|---|---|
| Nova versão de plataforma | Pode quebrar compilações antigas | A biblioteca base antiga ainda roda |
| API descontinuada | Falha ou inicialização bloqueada | Detectada por recurso, elegante |
| Verificação de compatibilidade | Por dispositivo, manual | canIUse / comparação de versões |
| Garantia de estabilidade | Nenhuma no nível do sistema | Biblioteca base retroativa |
| Vida do programa | Ligada ao suporte do sistema | Ligada 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.