Como funciona o acesso offline para aplicações móveis?
O suporte móvel em um aplicativo móvel é um tópico complexo. Ele pode trazer valor de negócio em certos cenários, mas também complica o desenvolvimento e aumenta significativamente os custos para todas as funcionalidades futuras. Os mesmos problemas ocorrem com o suporte mobile offline. Os principais problemas são a sincronização e duplicação da lógica comercial.
O processo básico é que, quando o aplicativo está online, ele interage com o servidor via chamadas de API e depois armazena as informações em um banco de dados local.
Existem duas opções para o banco de dados local no caso do iOS - native Core Data (que depende do SQLite) e outros bancos de dados de terceiros como o Couchbase. Uma vez os dados salvos, se o dispositivo ficar offline, os seguintes problemas acontecem:
- qualquer alteração feita nos dados locais deve ser rastreada para que, quando o dispositivo voltar online, ele possa ser enviado ao servidor;
- porque não há conexão com a internet, o aplicativo não pode mais chegar ao servidor para determinar como agir em determinadas condições; portanto, o aplicativo deve ser capaz de responder offline a perguntas como "o usuário tem permissão para excluir este contato"?
- isto significa que a lógica de negócio - as regras que o sistema deve respeitar - deve agora ser codificada no servidor, bem como no cliente.
Agora imagine um grande número de dispositivos operando com conexão intermitente ao servidor; um usuário pode alterar um contato em sua aplicação, enquanto outro apaga esse contato. Ambos estão offline; quando eles vêm online (a ordem não pode ser prevista), o algoritmo deve saber como lidar com situações "conflitantes" como tentar apagar um contato que não existe mais.
Existem estratégias diferentes para lidar com este problema mas, basicamente, todos eles têm vantagens e desvantagens. Duas soluções possíveis seriam as seguintes:
(A) trazer lógica de negócios para o dispositivo; rolar sua própria solução armazenando dados nos dados centrais e implementando seu próprio algoritmo de sincronização
(B) trabalhar com um banco de dados de terceiros que gerencie o processo de sincronização para você; as duas opções possíveis aqui seriam Couchbase Lite com Coucbase Sync Gateway ou Firebase.
Artigos semelhantes
- Como funciona um GPS offline como os mapas offline do Google?
- O que é mais difícil, o desenvolvimento de aplicações web ou móveis? O que é mais difícil, web ou desenvolvimento de aplicações móveis?
- O que são bons aplicativos/jogos offline para passar o tempo quando não há acesso à Internet?
- Porque é que a minha Xbox One não me deixa jogar os meus jogos offline quando já os joguei offline antes?