A criação de aplicativos móveis já é bastante difícil. Adicionar até mesmo uma biblioteca ao seu kit de ferramentas pode aumentar o tempo do processo de desenvolvimento. Então, o que é o MobileSync e por que você deve dedicar tempo a ele? A resposta curta: a sincronização fornece acesso a dados distribuídos sem o ônus habitual da programação de rede em cada etapa do caminho. Se o seu aplicativo estiver fazendo chamadas de rede para obter e salvar dados do usuário, usar uma biblioteca de sincronização como a Couchbase Lite pode reduzir o tempo de desenvolvimento e a frustração, além de oferecer benefícios adicionais, como uma interface de usuário mais ágil e confiável.

A sincronização tem significados diferentes para pessoas diferentes. Provavelmente, o sistema de sincronização mais conhecido é o serviço de nuvem Dropbox, que é usado para sincronizar e compartilhar arquivos em vários computadores. Desde que você tenha espaço suficiente para acompanhar o Dropbox, essa é uma ótima maneira de compartilhar arquivos com uma equipe.

A diferença entre a sincronização e o armazenamento de dados em nuvem comum é que a sincronização traz os dados para o dispositivo de forma proativa, enquanto o armazenamento em nuvem é normalmente acessado com base em solicitações. No Dropbox, você pode editar e criar novos arquivos, mesmo quando estiver off-line. Quando você se reconectar, todas as alterações feitas serão sincronizadas com a nuvem e todos os novos arquivos serão baixados. Isso significa que o usuário (e o programador do aplicativo) nunca precisa se preocupar com o status atual da conexão de rede.

Com a sincronização de banco de dados (como o Couchbase Lite), os desenvolvedores de aplicativos móveis podem contar com dados estruturados disponíveis localmente, em vez de ter que fazer solicitações de rede individuais acionadas por cada ação de entrada do usuário. Assim, os desenvolvedores podem se concentrar na lógica de negócios, não nas APIs de rede.

O principal benefício da sincronização é essa abstração sobre a camada de rede, permitindo que os desenvolvedores de aplicativos interajam com os dados independentemente do status da conexão de rede. Se esse é o grande benefício, que tipo de aplicativos devem usar a sincronização?

* Quando os dados do usuário (conteúdo escrito, desenhos, dados de jogos etc.) precisam estar disponíveis em todos os dispositivos e sistemas operacionais, com um mínimo de codificação no lado do servidor.

* Os usuários querem editar dados quando estão desconectados e reconciliá-los com o sistema de registro quando se reconectarem. (Pilotos de companhias aéreas, extração de recursos, entrega, assistência médica etc.)

* Aplicativos com tipos de dados complexos (e fluxos de dados simples). Se você estiver fazendo um jogo de palavras baseado em turnos com mensagens integradas e várias análises no jogo, a sincronização pode simplificar as coisas. Esperamos ter um aplicativo de exemplo para esse caso de uso em breve.

* Fornecimento de conteúdo, como revistas etc. Se você estiver fornecendo algo como uma revista interativa em HTML5, o sync pode facilitar a adição de conteúdo interativo.

Se você criar aplicativos como esse e quiser usar a sincronização, precisará fazer uma pergunta a si mesmo: "Posso prever quais dados são importantes para cada usuário?"

Em alguns aplicativos, é muito fácil: em um aplicativo de jogos, é o estado dos jogos em que você está e os dados do perfil de usuário dos seus adversários; no compartilhamento de fotos, são as fotos recentes de cada um dos seus amigos; para um piloto, são os dados sobre os voos de hoje.

Outros aplicativos são mais difíceis de identificar: um aplicativo da Web existente que já usa um banco de dados relacional exigirá mais trabalho para estar pronto para a sincronização do que um aplicativo que já usa o armazenamento de documentos JSON. Ou, se o seu aplicativo precisar executar uma lógica de back-end complexa para validar cada solicitação, talvez não seja tão fácil ativar a sincronização. Da mesma forma, a sincronização não ajudará na consulta de pesquisa inicial de um usuário sobre um tópico. Mas se o seu aplicativo tiver pesquisas salvas, a sincronização pode ser uma boa maneira de atualizar os conjuntos de resultados de forma incremental.

Há uma grande comunidade que usa a tecnologia de sincronização do Couchbase. Participe de nossa lista de mala direta para nos conhecerou experimente este tutorial se você estiver pronto para começar.

Autor

Postado por J. Chris Anderson, cofundador e arquiteto de dispositivos móveis, Couchbase

2 Comentários

  1. O problema com o Sync é que, se eu usar um bucket, esse bucket inteiro não precisará ser sincronizado (os dados específicos do usuário mais todos os dados dos outros usuários)? O bucket por usuário parece improvável, pois quero ter um mínimo de 2.000 usuários... Não quero gerenciar isso e depois descobrir como dimensioná-los adequadamente... preciso investigar isso :)

    1. O gateway de sincronização permitirá que os clientes filtrem o que sincronizam. Os documentos no compartimento são marcados e atribuídos a "canais", e um cliente que faz uma conexão de sincronização especifica em quais canais ele está interessado no momento. Há também ACLs que controlam os canais que um usuário tem permissão para ver.

      Tudo isso está em desenvolvimento ativo e em fase pré-alfa, mas você pode ler uma visão geral no README do projeto:

      https://github.com/couchbasela

Deixar uma resposta