superroko2
21/11/12, 09:46:03
Buenas,
Voy a resumirlo rápido.
Ahora tengo una aplicación que trabaja sobre una BD en MySQL externa que tiene una tabla de usuarios y una tabla de establecimientos. La aplicación solo ejecutarse busca posición de GPS, cuando la obtiene deja de buscar (eso de background, digamos). Entonces, en pantalla el usuario se loguea (mediante un httpost que se envía a un php y lee el resultado en JSON).
Una vez ya está logueado, (se espera a tener localización, si es que no la tiene ya) y te muestra en Google Maps las 20 localizaciones más cercanas a ti.
Esto se hace mediante otro httpost que se envía a un PHP que hace la consulta a la BD y este devuelve los resultados mediante JSON. La aplicación recoge los resultados leídos del JSON y los dibuja en el Mapa.
Consideraciones:
1) Creéis que sería mejor si tuviera una BD interna, que se actualizara cada vez de la externa, de forma que mientras no haya localizaciones nuevas no deberá actualizarse, y las consultas supongo que serían muchísimo más rápido. Vale la pena hacerlo así?
·Aparte de optimizar la velocidad de las consultas, también te permitiría trabajar sin conexión a la red, y te consumiría menos datos móviles ya que una vez cargadas las localizaciones por primera vez ya no sería necesario hacerlo más veces.
2) En caso que lo implemente así, como debo hacerlo? Nunca he trabajado con las BD de Android (SQLite).
2.1) Como debo hacer para que la aplicación trabaje en base a una BD interna, y que no no cree una nueva en cada ejecución. Es decir como trabajo con datos que se mantienen en cada ejecución de la aplicación? Podría trabajar también con imágenes (para los locales)? En la misma BD interna, o los almacenaría y cargaría de otra forma? Hay algún ejemplo de esto?
2.2) Como podría hacer para que este sistema de datos interno se comprobara en cada ejecución si está actualizado. Podría por ejemplo tener un registro con fecha y hora, y que cada vez que se abriera la aplicación se comprobará (con httpost+json mismo) si es igual y sino se actualizara?
3) Si uso este tipo de datos internos (locales), ocupará mucho en el dispositivo? Una BD con un par de tablas de 1000-10000 registros y cuatro fotos por local?
4) Hay alguna forma de cargar datos dinámicamente? Por ejemplo, se ejecuta la aplicación, se loguea, etc y te muestra el Google Maps con las 20 localizaciones más cercanas. Hasta ahí bien. Pero podría hacer de alguna forma que si me voy desplazando por el mapa (API de Google eh, no me refiero a actualizar mi posición, sino desplazar el MapaView (mirar el resto del mapa, más allá de la zona que abarca mi alrededor, no sé si me explico:pensando:).
Un saludo y gracias ;)
Voy a resumirlo rápido.
Ahora tengo una aplicación que trabaja sobre una BD en MySQL externa que tiene una tabla de usuarios y una tabla de establecimientos. La aplicación solo ejecutarse busca posición de GPS, cuando la obtiene deja de buscar (eso de background, digamos). Entonces, en pantalla el usuario se loguea (mediante un httpost que se envía a un php y lee el resultado en JSON).
Una vez ya está logueado, (se espera a tener localización, si es que no la tiene ya) y te muestra en Google Maps las 20 localizaciones más cercanas a ti.
Esto se hace mediante otro httpost que se envía a un PHP que hace la consulta a la BD y este devuelve los resultados mediante JSON. La aplicación recoge los resultados leídos del JSON y los dibuja en el Mapa.
Consideraciones:
1) Creéis que sería mejor si tuviera una BD interna, que se actualizara cada vez de la externa, de forma que mientras no haya localizaciones nuevas no deberá actualizarse, y las consultas supongo que serían muchísimo más rápido. Vale la pena hacerlo así?
·Aparte de optimizar la velocidad de las consultas, también te permitiría trabajar sin conexión a la red, y te consumiría menos datos móviles ya que una vez cargadas las localizaciones por primera vez ya no sería necesario hacerlo más veces.
2) En caso que lo implemente así, como debo hacerlo? Nunca he trabajado con las BD de Android (SQLite).
2.1) Como debo hacer para que la aplicación trabaje en base a una BD interna, y que no no cree una nueva en cada ejecución. Es decir como trabajo con datos que se mantienen en cada ejecución de la aplicación? Podría trabajar también con imágenes (para los locales)? En la misma BD interna, o los almacenaría y cargaría de otra forma? Hay algún ejemplo de esto?
2.2) Como podría hacer para que este sistema de datos interno se comprobara en cada ejecución si está actualizado. Podría por ejemplo tener un registro con fecha y hora, y que cada vez que se abriera la aplicación se comprobará (con httpost+json mismo) si es igual y sino se actualizara?
3) Si uso este tipo de datos internos (locales), ocupará mucho en el dispositivo? Una BD con un par de tablas de 1000-10000 registros y cuatro fotos por local?
4) Hay alguna forma de cargar datos dinámicamente? Por ejemplo, se ejecuta la aplicación, se loguea, etc y te muestra el Google Maps con las 20 localizaciones más cercanas. Hasta ahí bien. Pero podría hacer de alguna forma que si me voy desplazando por el mapa (API de Google eh, no me refiero a actualizar mi posición, sino desplazar el MapaView (mirar el resto del mapa, más allá de la zona que abarca mi alrededor, no sé si me explico:pensando:).
Un saludo y gracias ;)