¿Alguna idea sobre cómo construir una sincronización fuera de línea para la aplicación de Android cuyo backend es Django y PostgreSQL?

No tengo idea sobre Django y PostgreSQL, pero puedo describir una lógica para lo mismo.

Hay dos tipos de sincronización. Sincronizaciones mono direccionales y bidireccionales.

Sincronización direccional mono:

Básicamente, debe crear un caché fuera de línea del modelo de datos de su servidor que desea sincronizar cuando el usuario se conecta. Puede agregar algunas banderas a este conjunto de datos fuera de línea;

Ejemplo : la aplicación Contactos usa una dirty en su base de datos para los contactos recién agregados / eliminados / modificados mientras el usuario está desconectado y cuando el usuario se conecta, intenta enviar estos datos dirty al servidor. Hasta que el servidor devuelva el indicador de respuesta afirmativa no se elimina.

En el backend, la API de contact/ update debe actualizar estos datos de contacto dirty y dar una respuesta afirmativa a la persona que llama.

Sincronización bidireccional:

Este tipo casi funciona de manera similar a Mono Directional. Pero en esta sincronización, necesitará un parámetro más importante que decida la precedencia de los datos, por ejemplo, el tiempo de cambio. Dependiendo de este parámetro, actualice los datos dirty enviados al servidor y devuelva afirmativamente o envíe los datos actualizados precedentes desde el backend a través de la misma API.

PD: En realidad, la aplicación de contactos usa diferentes tecnologías en el backend de las que estás usando actualmente, pero el lenguaje y los marcos no importan en la lógica.

Couchbase Mobile ofrece esta funcionalidad lista para usar. Puede escribir una API de envoltura alrededor de Couchbase Mobile usando Django REST Framework y listo.

Sin embargo, si está buscando construir su propio pensamiento sobre:

  1. Mantener el mismo esquema en el cliente {aplicación Android / iOS} y el servidor {Django}
  2. Escribir API que sincronizará periódicamente los datos entre el Cliente y el Servidor
  3. Descubra el mecanismo de extracción / inserción para que el cliente busque actualizaciones

Más punteros en la publicación Stack Overflow: Sincronice datos entre la aplicación de Android y el servidor web