Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] [FLUTTER] Práticas corretas com versionamento e update de aplicativos

Eu tenho um aplicativo para uso interno na empresa que trabalho, e ele não está disponível em nenhuma app store. Normalmente quando eu produzo uma versão nova do aplicativo eu envio um alerta pelo whats com o APK para todos os usuários.

Essa prática resultou em algumas situações que eu gostaria de ajuda para compreender, já que quando pesquiso online a maioria dos resultados são voltados para quem usa uma app store:

1ª: Toda vez que eu faço uma alteração envolvendo SQflite ou armazenamento de dados locais, o usuário precisa limpar todos os dados do aplicativo (e até desinstalar a versão anterior em alguns casos) antes de instalar/atualizar a nova versão. Se ele não fizer isso, as tabelas locais entram em conflito e ele não consegue usar o aplicativo. Existe uma maneira do próprio aplicativo realizar essa verificação e reagir de acordo, ou talvez eu esteja usando o SQflite de maneira incorreta/incompleta?

2ª: Existe alguma forma de fazer com que o app atualize automaticamente sem o uso de uma AppStore? Minha ideia atual (ainda não testei) era de verificar a versão local comparada com a versão no banco de dados e então emitir um alerta pro usuário com o link para baixar a versão nova, porém ainda assim exige que o usuário ativamente baixe e instale o APK, sem contar o problema citado acima de ter que limpar cache e afins.

E no geral, se puderem me dar dicas e recomendações quanto a essa parte de versionamento, atualização de apks e afins, porque a documentação oficial nem sequer cita esse tipo de detalhe (pelo menos eu não achei nada que explicasse em detalhes isso, ou um tutorial sobre)

2 respostas
solução!

Olá Rayan!

Compreendo sua situação e acredito que posso ajudá-lo a entender melhor algumas práticas corretas com versionamento e atualização de aplicativos em Flutter.

1ª: Quando se trata de alterações que envolvem SQflite ou armazenamento de dados locais, é importante lembrar que cada versão do aplicativo possui uma versão do banco de dados. Quando você faz uma alteração no banco de dados, é necessário atualizar a versão do banco de dados no código do aplicativo e, em seguida, utilizar uma biblioteca de migração de banco de dados, como o package sqflite_migration_plan, para atualizar o banco de dados do usuário automaticamente. Dessa forma, o usuário não precisa limpar todos os dados do aplicativo ou desinstalar a versão anterior.

2ª: Infelizmente, não é possível atualizar automaticamente o aplicativo sem o uso de uma AppStore. A ideia que você teve de verificar a versão local comparada com a versão no banco de dados e, em seguida, emitir um alerta para o usuário com o link para baixar a versão nova é uma boa prática. No entanto, como você mencionou, ainda exige que o usuário ativamente baixe e instale o APK.

Espero ter ajudado e bons estudos!

Muito Obrigado pela resposta! Acredito que o package seja exatamente o que eu estava procurando e não conseguia encontrar.