O crash que derruba o app inteiro
Incorpore um WebView e a pagina vive no mesmo processo que sua camada nativa. Um script descontrolado, um loop de memoria ou uma falha de render nao apenas quebra a pagina: pode levar o app inteiro. O usuario perde seu app, nao apenas o conteudo que abriu.
Um runtime de mini-programa isola cada programa em seu proprio conteiner. Uma falha fica onde comecou e o super-app segue rodando.
O que e isolamento por conteiner
O runtime da a cada programa um sandbox delimitado: seu proprio orcamento de memoria, seu proprio ciclo de vida e uma fronteira de crash que nao vaza para o super-app. A isolacao de sites do Chrome e o modelo de WebView por processo do Android descrevem o mesmo principio no nivel do navegador. O WeChat documenta o render independente de mini-programas e a OWASP lista o isolamento como controle base.
Onde a diferenca aparece
| Passo | WebView (processo compartilhado) | Runtime de mini-programa (conteiner) |
|---|---|---|
| Alcance do crash | App inteiro | Um programa |
| Falha de memoria | Pode matar o super-app | Delimitada ao sandbox |
| Recuperacao | Reiniciar o app | Reiniciar o programa |
| Raio de impacto | Tudo | Um conteiner |
| Impacto ao usuario | Sessao perdida | Fica no super-app |
O resultado e uma falha que termina uma tela, nao uma sessao.
Por que o confinamento vence o destino compartilhado
O isolamento significa que um programa cheio de bugs nao arrasta o super-app junto, assim o build ruim de um fornecedor nao vira sua queda. Tambem significa que a recuperacao e barata: recarregar o programa, nao o app inteiro, e o lugar do usuario no super-app e preservado.
Como a Cross Mini App aplica
A Cross Mini App executa cada programa em seu proprio sandbox, assim um crash se contem aquele programa e o super-app segue rodando. O build ruim de um fornecedor fica como problema daquele fornecedor. Voce deixa de perder o app inteiro por uma pagina e passa a isolar falhas por padrao.
Essa e a diferenca entre um crash que se propaga e um que se detem.