entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Sincronización android

Hola a todos,

Nos estan cambiando el layout del sitio, pero bueno no he venido a eso. Quisiera saber cual sería la mejor manera de sincronizar datos en android, he visto que algunos trabajan con una sincronización full, envian lo recolectado y luego eliminan lo que hay, para luego volver a consultar datos en la nube. Mi App es una encuesta por ende trabajo con muchos datos.

No, no hay codigo, quiero sus opiniones.

Slds.

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola @wroque,

si es una encuesta, enviá lo que cargue el usuario al servidor para almacenarlo, y al cliente Android devolvele solo los resultados de la encuesta.

Si las encuestas son muchas, podrías considerar irlas almacenando en local y solo actualizarlas, y devolver las últimas 3 encuestas y que el resto se cargue por demanda.

Así a simple vista, las encuestas son algo demasiado asimétrico (el cliente envía una encuesta pero recibe el resultado de miles) para que parezca que valga la pena tener todos los resultados cuardados en el cliente para procesarlos en local. Te diría que la asimetría es tan grande que esto es más candiaddo para una webapp que para una app nativa...

Podemos avanzar conociendo más detalles sobre las encuestas y sobre qué es lo que se tiene que ver en el cliente, pero así en general, no pierdas de vista la asimetría del problema.

Saludos cordiales!

0voto

wroque comentado

si es un candidato a app web, pero la conectividad es un problema.

El envio no me preocupa, sino la recepción y actualización de datos en la app nativa, las encuestas se generan en un portal web, la app descarga un esquema json (trabajo con REST), pero la encuesta puede ser editada, eliminada y eso necesito reflejar, pero no se cual sea la mejor solución. Me complica limpiar mi base datos SQLite, para hacer nuevos insert y actualizar los registro puede ser una tarea tediosa.

0voto

Leonardo-Tadei comentado

Sí, la conectividad es un problema... consideraste una webapp que use una cache local para trabajar desconectada http://www.genbetadev.com/desarrollo-web/trabaja-offline-gracias-a-la-api-de-cache-de-html5

Igual, te repito la idea central: lo que tenés que transmitir al cliente son solo los resultados de la encuesta, y esto podría pasar como respuesta a nu nuevo voto. Luego si en la app lo almacenás en una DB, solo deberías hacer INSERT si es neuva o UPDATE si ya existe, lo que se puede hacer todo en la misma query.

Al ver una encuesta lo mismo: si hay conexión la descargás e insertás/actualizás, si no, mostrás la almacenada.

Haciendo los insert/update con eventos minimizás el tráfico y nunca tenés que descargar todo para ver 1 resultado.

Saludos!

0voto

wroque comentado

no, una webapp no es una alternativa, aquí donde trabajo tuvieron muchos problemas con una así (problemas de sincronización, perdida de datos etc.), y es obvio que no lo volverían aceptar.

respecto a lo del insert/update, trabajo con objetos no realizo script directamente, tengo montada toda una estrutura en base a un DAO Generic y Beans.

Aunque lo que hago no esta fuera de lo que me recomiendas, hago una busqueda en la base datos SQLite sino esta es insert, si está, comparo las fechas de modificación del objeto survey (Sqlite) y del otro objecto survey (Rest). Esto porque cada vez que alguien edita la encuesta en la web, esta asigna un nuevo valor de modificación (Datetime), si son distintas es un update de lo contrario no se hace nada, que opinas ?

Te explico, en un website hay un usuario que solo crea encuestas, asignando las preguntas, no las responde.

En la app android descarga estas encuestas como un JSON, y luego lo parsea a objetos y va guardado la encuesta en la base de datos, luego este usuario puede visualizarlas y responder las encuestas, las veces que quiera (aunque esto lo configurare en el json para dejarlo con o sin limite).

mi duda pasaba que el usuario del website modifica algunas preguntas de la encuestas, inmediatamente el usuario app movil, si tiene conexión se le debería descargar estas modificaciones, bueno lo demás ya lo hemos conversado..

Slds.

0voto

Leonardo-Tadei comentado

Con toda la historia el proyecto y la forma de desarrollo, lo que estás haciendo parece lo más razonable.

Entiendo la reticencia a una webapp, pero es de veras una buena opción si está bien impementada... por lo que me contás, luego del fracaso anterior, es claro que no será algo fácil de aceptar, pero no śe hasta dónde el refrán "el que se quema con leche, ve una vaca y llora" se aplica a las decisiones de diseño.

Tal vez no sea el momento adecuado, pero una webapp con caché local es muy rápida de prototipar para hacer pruebas.

Saludos cordiales!

0voto

wroque comentado

La verdad, como programador me he vuelto a reencantar con java, llevo bastante avanzado en la app, de hecho he reestructurado el diseño, desde la primera vez que les hice esta misma pregunta.

Agradezco tu interés.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta