Introducción
En este tutorial, usted aprenderá cómo utilizar Sync Gateway y Couchbase Lite para sincronizar las últimas historias de Hacker News a
una aplicación para iOS.
Nos centraremos específicamente en la función Background Fetch añadida en iOS 7: ahora las aplicaciones pueden realizar pequeñas operaciones en segundo plano para obtener los datos más recientes del servidor. Si tu aplicación se ha registrado para Background Fetch, el sistema operativo despertará periódicamente tu aplicación para realizar una actualización y el tiempo máximo asignado en un Background Fetch es de 30 segundos.
Es un caso perfecto para una replicación pull de una sola vez. Así que empecemos.
El código fuente de este tutorial se encuentra en GitHub.
Trabajar con Sync Gateway
El primer paso es configurar Sync Gateway. Descargue la última edición comunitaria aquí. Utilicemos un
configuración sencilla para este ejemplo. En un nuevo archivo llamado config.json pega lo siguiente:
El punto importante a tener en cuenta es que estamos utilizando la función morsa base de datos que guarda los documentos en la memoria. Con morsalos documentos no se conservan cuando
reiniciando Sync Gateway. En segundo lugar, hemos habilitado el INVITADO y darle acceso a todos los canales. Puede añadir el control de acceso
y la lógica de gestión de usuarios, pero para este ejemplo desarrollaremos sin restricciones, lo que suele ser una buena forma de crear prototipos.
Ahora vamos a iniciarlo desde la línea de comandos con este archivo de configuración:
Iniciar la aplicación iOS
He configurado el proyecto Xcode con Cocoapods para gestionar las dependencias, ejecutar instalar pod para asegurarse de tener la CouchbaseLite
vinculado al proyecto. Abrir HackerNewsSync+BackgroundFetch.xcworkspace en Xcode y ejecuta la aplicación en el simulador.
Debería ver una vista de tabla vacía:

De hecho, primero debemos añadir algunas historias de Hacker News a Sync Gateway.
Noticias Hacker
Utilicemos el script NodeJS en worker.js para obtener las mejores historias de la API de Hacker News. Utilizaremos Mashape
para eso. Consigue una llave Mashape en aquí
y péguelo en el campo worker.js en lugar de XXXX-XXXX-XXXX-XXXX.
Instale las dependencias ejecutando npm instalar y poner en marcha el trabajador:
$ node worker.js
Obtendrá las historias principales de la API de Hacker News y guardará 5 de ellas en Sync Gateway. No es necesario procesar los datos, simplemente enviamos la respuesta directamente al puerto de administración de Sync Gateway, que creará un nuevo documento para cada historia principal.
Activar una búsqueda en segundo plano
Para activar una búsqueda en segundo plano, podemos utilizar la función Depurar > Simular búsqueda en segundo plano en Xcode:

Esto enviará tu aplicación a un segundo plano y llamará a la función aplicación:performFetchWithCompletionHandler:
observe que iniciamos una replicación pull y registramos un receptor de eventos de cambio para cerrar la operación de obtención en segundo plano cuando el método
estado de la replicación ha finalizado (kCBLReplicationStopped). Abra la aplicación y verá la vista de tabla ya rellenada:
Utilizar background fetch en tu aplicación puede mejorar enormemente la experiencia de usuario y la velocidad percibida por los usuarios.
@james Es un buen artículo. Pero no se ejecuta en Xcode10.0
¿Puede facilitarnos el código de la versión swift con la última CBL?