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

3votos

base de datos offline y online

Buenos días, soy nuevo en la pagina, mi nombre es Erick y soy estudiante de ingeniera en sistemas.
Tengo una gran duda, como proyecto de una de mis ultimas clases de carrera, nos han dejado desarrollar una aplicación para tablet's o telefonos con android, la aplicación es realizar encuestas, el problema es el siguiente, se pide que la app pueda trabajar offline como online, no se si esto sea posible, se pide que en caso de estar offline, se almacenen los datos en la memoria del dispositivo y cuando hubiera conexión, esta envié los datos a un servidor remoto.
Me siento desorientado en cuanto a este problema, estaré muy agradecido con ustedes por sus aportes.
Saludos.

2 Respuestas

1voto

Leonardo-Tadei Puntos227320

Hola @erickgallardo89,

el problema que planteás es bastante habitual en el mundo de las app móbiles.

La idea es relativamente simple: primero, tu app tiene que detectar si tiene conexión o si no tiene conexión.

En caso de tener conexión, enviarás los datos de la encuesta a un servidor, que tendrá que tener alguna API o similar que acepte los datos y los guarde. Hasta acá es el funcionamiento de una app online.

En caso de no tener coexión, guardarás los datos de la encuesta en el dispositivo. Podría ser vía SQLite que está soportada en Android, podría ser en formato clave-valor si es una webapp usando WebStorage. A los datos guardados localmente les tenés que agregar una bandera que digan si se subieron al servidor en no.

Luego, cuando la app detecte que hay conexión, buscás todos los datos no enviados y los mandás al servidor con el mismo formato que envía el formulario.

En genral es así. Depende mucho de la arquitectura que elijas, la herramienta de desarrollo y de otros detalles la implementación.

Podrías empezar a construir la interfaz del usuario y el código del lado del servidor, y luego cuando te trabés ir haciendo preguntas específicas por acá.

Saludos cordiales!

2votos

Yuki Puntos610

Deberia crear algún tipo de algoritmo para que tu programa intente conectarse a la base de datos cada cierto tiempo, preferiblemente desde la inicialización de la aplicación.

Conectarse a la base de datos.
Si se conecto exitosamente, Enviar todos los votos.

Si no se conecto exitosamente, agregar voto a LA PILA (vease https://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)). y volver a intentar conectar.

Espero aver ayudado, saludos!

1voto

ItIsJAPO comentado

Me gusta la respuesta, tengo el mismo problema pero com una app de escritorio que se conecta a mi appweb que tiene la BD, me recomendarias guardar esa informacion en un archivo objeto y recuperarlo, puesto que si es pila, cuando se cierre la app se van a ir, o cual es tu sugerencia en este escenario.
PD. Hago aqui la pregunta por que es la misma duda pero con diferente escenario y puede complementar la respuesta. No creo necesario hacer la misma pregunta con otro escenario. Saludos.

1voto

Yuki comentado

Pues, como dijiste, lo mejor es almacenar los datos en un archivo objeto; debido a que el intervalo de tiempo en el que el usuario este sin conexión a internet es desconocido.

Saludos!

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