Ao publicar um aplicativo na Play Store é obrigatório o uso de versionamento. Já que o projeto se encontra no dispositivo do usuário, caso ocorra alguma falha, nós como desenvolvedores podemos pedir a versão do aplicativo para o usuário e verificar as mudanças que foram feitas naquela versão e corrigi-la.
Para definir a versão, nós podemos ir em build.gradle (o do módulo) e lá encontraremos:
defaultConfig {
       //Código acima omitido...
       versionCode 1
       versionName "1.0.0"
             //Código abaixo omitido...
    }
Aqui nós podemos ver duas configurações relacionadas a versão do app e nós sempre precisamos definir valores pra ambos, versionCodee versionName . Mas o que esses valores querem dizer? E por que tem dois? 
Version Code
Um número positivo que usamos pra definir se uma versão é maior que outra versão. Quanto maior o número, mais recente é a versão. Esse número não é mostrado (e nem deveria ser) para os usuários. Nós definimos ele usando o versionCode . Você é livre pra definir qualquer valor pra ele, desde que o número seja maior que a versão antecessora. Você não consegue instalar uma versão menor do que a que já estiver no dispositivo e também não pode fazer upload pra Play Store de uma versão que já tenha sido usada.
Version Name
A versionName é a versão que é mostrada aos usuários. Pode ser tanto uma uma string diretamente ou uma referência pra uma string. Esse atributo não tem outra função que não seja ser mostrada para o usuário. Uma recomendação é o uso do versionamento semântico.
Bônus: Play Console version
Ao fazermos upload de uma nova versão no Google Play Console, também é necessário informar um nome pra versão. Esse nome não é mostrado para os usuários. Apenas é usado dentro da própria plataforma. Com essa versão,  fica mais fácil de identificar em qual passo essa versão está (teste interno, teste aberto, produção, etc). Uma recomendação é que você use o mesmo valor que foi usado no versionName.
Referências:

    
Top comments (0)