Verificando versão do app com Xamarin.Essentials

Fala galera. Neste primeiro post do ano vou falar de algo que preciso fazer em quase todos os apps que trabalho e acredito que muitos outros devs também, que é identificar se o usuário está abrindo o app pela primeira vez ou se está abrindo o app pela primeira vez em uma determinada versão.

Como eu vinha fazendo isso? Bom é bem simples, eu mantinha um registro nas preferências do app informando se ele tinha sido executado alguma vez. Assim quando o usuário abria o app pela primeira vez esse registro estaria informando isto, então o app executava o que precisava que fosse feito no primeiro acesso e alterava o valor do registro para informar que não era mais o primeiro acesso. O mesmo valia para quando precisa verificar se o usuário estava executando alguma nova versão pela primeira vez.

E mais uma vez o pacote nuget do Xamarin.Essentials fornece recursos para facilitar a nossa vida com a classe Version Tracking. Essa classe nos permite fazer diversas verificações, como já citado de primeira execução, primeira execução na versão, versão atual, versão anterior, entre outras.

Bom vamos para a implementação, a primeira coisa a fazer é adicionar o pacote nuget Xamarin.Essentials nos nossos projetos. Feito isto vamos inicializar o monitoramento de versã0 no construtor da classe App.

Com a VersionTracking devidamente inicializada, vamos criar uma Page e um ViewModel para visualizar os os dados fornecidos por ela.

Tendo implementado a Page e a ViewModel vamos executar o app parar e executar novamente para comparar os resultados.

Imagem contém o comparativo das duas execuções do app. No primeiro mostra que está sendo o primeiro acesso e no segundo não. Em ambas a versão e build atual estão com 1.0 e versão e build anterior estão vazias.
Comparativo das duas execuções.

Como podemos ver na primeira vez que o app é executado ficou marcado como Yes e na segunda vez ficou como No como esperado. Se executar novamente continuará como No. Para ter o retorno Yes novamente o app precisar ser removido do device.

Outra coisa que pode ser visto é que o campo Previous Version e Previous Build estão vazios. Isso se deve a ter sido executado somente uma versão do app neste device.

A propriedade Version (Current e Previous) corresponde a propriedade Version do Info.plist do iOS e a propriedade Version Name no manifest do Android. Já a propriedade Build (Current e Previous) corresponde a propriedade Build do Info.plist do iOS e a propriedade Version Code no manifest do Android.

Vamos alterar essas propriedades para ver como fica. No version vamos colocar o valor 1.1 e no build vamos colocar o valor 2. Sim eu sei que no iOS podemos utilizar o build como string colocando 1.1 também, mas por padronização vou utilizar o valor 2 para ambas as plataformas no campo build.

Realizando as alterações e executando o app teremos o seguinte resultado.

Imagem com os resultados da execução do app após o incremento do número da versão e build. Nela podemos ver que temos os novos valores e os valores anteriores.
Resultado da execução após o incremento da versão e build

Podemos ver que a versão e build atual foram incrementados e que agora temos os valores de versão e build anteriores.

Bom galera o post de hoje ficou um pouco extenso então vamos ficando por aqui Se quiser conferir o projeto utilizado para exemplo ele está no meu github. Espero ter ajudado e até a próxima.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.