Introdução
Neste tutorial, você aprenderá a usar o Sync Gateway e o Couchbase Lite para sincronizar as histórias mais recentes do Hacker News com o
um aplicativo iOS.
Vamos nos concentrar especificamente no recurso Background Fetch que foi adicionado ao iOS 7: os aplicativos agora podem executar pequenas operações em segundo plano para buscar os dados mais recentes do servidor. Se o seu aplicativo tiver se registrado para o Background Fetch, o sistema operacional despertará periodicamente o aplicativo para realizar uma atualização, e o tempo máximo alocado em um Background Fetch é de 30 segundos.
Esse é um caso de uso perfeito para uma replicação pull de uma única vez. Então, vamos começar!
O código-fonte deste tutorial está em GitHub.
Trabalhando com o Sync Gateway
A primeira etapa é configurar o Sync Gateway. Faça o download da edição mais recente da comunidade aqui. Vamos usar um exemplo muito
configuração simples para este exemplo. Em um novo arquivo chamado config.json cole o seguinte:
O ponto importante a ser observado é que estamos usando o morsa que salva os documentos na memória. Com morsaos documentos não são mantidos quando
reiniciando o Sync Gateway. Em segundo lugar, ativamos a função CONVIDADO e lhe deu acesso a todos os canais. Você pode adicionar o controle de acesso
e a lógica de gerenciamento de usuários, mas, neste exemplo, desenvolveremos sem restrições, o que geralmente é uma boa maneira de criar protótipos.
Agora, vamos iniciá-lo a partir da linha de comando com esse arquivo de configuração:
Iniciando o aplicativo iOS
Configurei o projeto Xcode com Cocoapods para gerenciar dependências, executar instalação do pod para ter certeza de ter o CouchbaseLite
vinculado ao projeto. Aberto HackerNewsSync+BackgroundFetch.xcworkspace em Xcode e execute o aplicativo no simulador.
Você deverá ver uma exibição de tabela vazia:
De fato, primeiro precisamos adicionar algumas histórias do Hacker News ao Sync Gateway.
Principais histórias do Hacker News
Vamos usar o script NodeJS em worker.js para obter as principais histórias da API do Hacker News. Usaremos o Mashape
para isso. Obtenha uma chave Mashape em aqui
e cole-o no campo worker.js no lugar do arquivo XXXX-XXXX-XXXX-XXXX.
Instale as dependências executando npm install e iniciar o trabalhador:
$ node worker.js
Ele buscará as principais histórias da API do Hacker News e salvará 5 delas no Sync Gateway. Não há necessidade de processar os dados, apenas canalizamos a resposta diretamente para a porta de administração do Sync Gateway, que criará um novo documento para cada história principal.
Acionar uma busca em segundo plano
Para acionar uma busca em segundo plano, podemos usar o Depurar > Simular busca em segundo plano no Xcode:
Isso enviará seu aplicativo para o segundo plano e chamará a função aplicativo:performFetchWithCompletionHandler:
observe que iniciamos uma replicação pull e registramos um ouvinte de evento de alteração para fechar a operação de busca em segundo plano quando o
o status da replicação foi concluído (kCBLReplicationStopped). Abra o aplicativo e você verá a exibição de tabela já preenchida:
O uso da busca em segundo plano no seu aplicativo pode melhorar muito a experiência do usuário e a velocidade percebida por ele.
@james É um bom artigo. Mas não está funcionando no Xcode10.0
Você pode fornecer um código de versão swift com o CBL mais recente?