Sincronización con Dropbox Core API

Estoy intentando implementar la synchronization del directory de documentos de mi aplicación iOS con Dropbox, con Core API. Solo necesito una funcionalidad de synchronization muy básica, manteniendo el directory de Documentos del mismo modo que el directory de Dropbox de la aplicación.

Sin embargo, me encuentro teniendo que pensar en problemas de synchronization inmediata, como verificar las diferencias en los files, averiguar cómo determinar si un directory local necesita actualizarse, permitir cambios externos, etc. eso es bastante avanzado y cosas que pensé que el SDK de Dropbox se abstraería.

Parece que estoy resolviendo problemas de synchronization y reinventando la rueda en lugar de enfocarme en mi aplicación.

Parece que lo que realmente necesito es Sync API, pero está en desuso.

¿Existe una guía para implementar el comportamiento Sync con Core API o, en su defecto, existe una guía general para implementar synchronization con un service en la nube?

Esta es una pregunta relativamente amplia, y los detalles dependerán mucho de cada aplicación. Dropbox no ofrece una guía general para implementar la synchronization como esta, pero intentaré señalar algunos resources útiles.

Primero, probablemente querrás usar iOS Core SDK ( descarga , tutorial ). Alternativamente, puede desarrollarse directamente contra los puntos extremos HTTP de Core API .

Cuando algo cambia localmente en tu aplicación, deberás cargar las nuevas versiones de los files relevantes. Los puntos finales de la API de Dropbox para cargar ofrecen algunos parameters que le permiten controlar los comportamientos de sobrescritura / conflicto:

https://www.dropbox.com/developers/core/docs#files_put

Recomendamos usar parent_rev , para evitar sobrescribir accidentalmente y eventualmente perder datos.

Para saber qué cambios suceden remotamente, puede usar / delta ( loadDelta en el iOS Core SDK):

https://blogs.dropbox.com/developers/2013/12/efficiently-enumerating-dropbox-with-delta/

Para las aplicaciones del lado del cliente, usar / longpoll_delta es una buena manera de saber cuándo cambian las cosas (es decir, para saber cuándo llamar / delta):

https://blogs.dropbox.com/developers/2013/11/low-latency-notification-of-dropbox-file-changes/

Sin embargo, ese punto final no se implementa en iOS Core SDK, pero el SDK es de código abierto, por lo que puede modificarlo si es necesario.