Apps mobile · Misto

Versões e compatibilidade retroativa em apps

Em uma linha: Usuários têm versões antigas por meses — o servidor precisa suportá-las e saber quando parar.

A realidade

Mesmo com atualização automática ativada, a distribuição de versões se estende por meses. Qualquer mudança que quebre a interface do servidor derruba usuários reais sem que entendam por quê.

Então: extenda, não mude. Adicione campos, não remova; adicione rotas, não mude o comportamento das existentes.

Mecanismos de controle

Versão de interface. Declare em cada requisição para saber quem está falando com você.

Atualização forçada. Uma tela que bloqueia versões que não têm mais suporte. Econômico, e precisa estar lá desde o primeiro dia — não dá para adicionar retroativamente a uma versão antiga.

Switches de capacidade. Ligar e desligar capacidades remotamente, por versão e por porcentagem de usuários.

Quando parar o suporte

Decida por dados, não por sensação: quando menos de um por cento do uso ativo vem de uma versão, e depois de um aviso prévio dentro do app. Documente a política para não renegociar em cada lançamento.

Indo mais fundo

Execute testes de integração das duas últimas versões suportadas contra a interface atual a cada publicação do servidor. Compatibilidade retroativa que não é testada automaticamente quebra silenciosamente, e só aparece nas avaliações da loja.