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)