PDA

Ver la Versión Completa : [ ARTICULO ] Nueva app ChirinGuía


alfonsosj
12/08/12, 03:38:55
.
.
.

mocelet
12/08/12, 09:34:56
¿Qué tiene que solo funcione a partir de Android 2.3.3? Igual pierdes potenciales usuarios por eso, una 2.2 sería más universal.

Suerte con la app

metnim
12/08/12, 09:45:04
a mi se me cierra y da error en ics

Enviado desde mi HTC Desire usando Tapatalk 2

alfonsosj
12/08/12, 13:44:09
Gracias por vuestros comentarios, soy desarrollador novato, voy a intentar bajar a 2.2.
En ICS no tengo ni idea por que se cierra... ¿Alguna sugerencia?

mocelet
12/08/12, 15:00:00
Gracias por vuestros comentarios, soy desarrollador novato, voy a intentar bajar a 2.2.
En ICS no tengo ni idea por que se cierra... ¿Alguna sugerencia?

No lo has probado con el emulador de ICS :)

Desde Android 3.2, si intentas abrir una conexión de red desde el hilo principal (UI Thread), salta una excepción (http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html)

Como parche rápido, puedes bajar el targetsdk a 10 (gingerbread), porque entonces no hace esa comprobación y funcionará igual que en Android 2.x. Lo suyo para futuras versiones es que hagas esa conexión en una asynctask, en un servicio o en cualquier cosa que sea otro hilo y no el de la interfaz gráfica.

alfonsosj
12/08/12, 16:04:05
No lo has probado con el emulador de ICS :)

Desde Android 3.2, si intentas abrir una conexión de red desde el hilo principal (UI Thread), salta una excepción (http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html)

Como parche rápido, puedes bajar el targetsdk a 10 (gingerbread), porque entonces no hace esa comprobación y funcionará igual que en Android 2.x. Lo suyo para futuras versiones es que hagas esa conexión en una asynctask, en un servicio o en cualquier cosa que sea otro hilo y no el de la interfaz gráfica.


Muchísimas gracias por vuestros consejos. Estoy en ello....

mocelet
12/08/12, 16:32:38
Otra sugerencia, si no hay foto para mostrar no muestres esa foto genérica que pone foto no disponible. Más que nada porque hay que hacer scroll para ver lo de que la foto esa no es del sitio...

Enviado desde mi Galaxy Nexus usando Tapatalk 2

alfonsosj
12/08/12, 17:07:16
Lo he puesto a minSdk 8 y targetSdk 10

Gracias.

mocelet
13/08/12, 00:52:20
Me sigue saliendo el forzar cierre por la excepción esa. Lo probaste en el emulador?

Uso Jelly Bean, no sé si tendrá que ver.

Igual lo del targetsdk no es suficiente, o será uno menor (en teoría ese valía). Busca por Google como solucionar esa excepción.

Enviado desde mi Galaxy Nexus usando Tapatalk 2

Celtium
13/08/12, 02:23:05
Me sigue saliendo el forzar cierre por la excepción esa. Lo probaste en el emulador?

Uso Jelly Bean, no sé si tendrá que ver.

Igual lo del targetsdk no es suficiente, o será uno menor (en teoría ese valía). Busca por Google como solucionar esa excepción.

Enviado desde mi Galaxy Nexus usando Tapatalk 2

No es suficiente con bajar la versión. Hay que sacar del hilo principal todo lo que ralentice o pueda dejar pillada la actividad. El asynctask es buena solución.

Lo de las fotos es por que ahora es obligatorio que haya los recursos para todos los formatos, antes si no había pues ponía la que encontrara, eso se termino. (creo que es esa la razón)

Suerte y alfonsosj enhorabuena por tu primera app ;)

mocelet
13/08/12, 09:22:47
En la documentación de Android pone explícitamente que si el targetsdk es anterior a Honeycomb no se aplica la restricción de conexiones de red en hilo principal.

Evidentemente, no era solución a largo plazo sino un parche. Pero supuesto que lo haya cambiado, igual los docs están mal.

alfonsosj
13/08/12, 13:25:40
El targetSdk en la última versión publicada 1.7 es 10.

En próxima actualización revisaré más a fondo este problema....

Celtium
13/08/12, 13:27:26
Pues yo tuve que sacar del hilo principal conexiones htlm en dos aplicaciones distintas. La versión objetivo de ellas es la 2.3.3

Lo cierto es que tienes razon pero en mi caso me rompían.

Suerte ;)

mocelet
13/08/12, 13:43:39
Es que el tema del StrictMode (que es el que no perdona hacer cosas en el hilo principal) lo introdujeron en el API Level 9, así que es posible que el target para evitarlo temporalmente sea el 8, no "anteriores a Honeycomb" como dicen en la doc oficial.

En cualquier caso, es buena práctica no bloquear el hilo principal.

jorge_kai
13/08/12, 15:33:33
si quieres que lo pongamos en el portal has de dar más información compañero, se ve un post algo pobre... sube más datos sobre el programa, pantallazos, videos... no sé, adórnalo algo.

alfonsosj
14/08/12, 01:39:09
Una pregunta, ¿se puede hacer en un asynctask la carga de un conjunto de markers de un mapview en el doinbackground y añadirlos a una capa para añadirla al mapa en el postexecute? Creo que el error de cierre viene por descargar los markers de mi base de datos en internet, por lo que quiero cargarlos en otro hilo distinto al principal, pero al añadir el overlayitem en el doinback casca.

Enviado desde mi GT-I9000 usando Tapatalk

mocelet
14/08/12, 02:09:16
El código que toque elementos de la vista, como supongo que será añadir marcadores al mapa, hay que hacerlo desde el hilo principal. Es decir, desde el progressupdate o desde el postexecute. No debería darte problemas si lo descargas en el doinbackground y los usas en los otros dos métodos.

Enviado desde mi Galaxy Nexus usando Tapatalk 2

alfonsosj
14/08/12, 02:17:01
Para un sólo marcador sí, pero cómo recorro el while de mi query y añado un marker en cada pasada no puedo, y la idea era añadirlos todos a la capa y en el postexecute añadir la capa al mapa.

Enviado desde mi GT-I9000 usando Tapatalk

mocelet
14/08/12, 10:53:26
El api del maps no la controlo mucho, no sé si habrá algo mejor. Supuesto que el problema sea ir uno por uno, tal vez puedas descargar los markers en una caché local (un array sin ir más lejos), y luego ya añadirlos todos en el postexecute.

alfonsosj
15/08/12, 16:34:52
He metido la conexión htttp en un handler en la versión 1.8 y en ICS se sigue cerrando . un handler y un asynctask no resuelven el mismo problema?

Enviado desde mi GT-I9000 usando Tapatalk

mocelet
15/08/12, 17:58:49
El handler que estés usando será el del hilo principal. Lo mejor es la asynctask, cualquier otra cosa va a ser replicar su funcionalidad.

Edito: De usar los handlers, sería para el código que actualiza el mapa, no para el http. Pero eso es casi lo mismo que hace la asynctask.

alfonsosj
15/08/12, 18:24:07
Actualizado el problema de visualización en pantallas pequeñas y grandes, y otros bugs de mapa. Gracias por vuestras opiniones y descargas.

alfonsosj
15/08/12, 21:26:35
Mi handler conecta con mi servicio web mediante json y hace la query. En el while de la query añado los markers al mapa, por tanto tanto la conexión http como la actualización de markers se hace dentro del handler.

Enviado desde mi GT-I9000 usando Tapatalk

mocelet
15/08/12, 21:54:28
Pues eso, el handler es para ejecutar cosas en el hilo principal (o para pasarse mensajes entre hilos, pero lo normal es lo anterior), sigues sin ejecutar la conexión en un hilo en background.

alfonsosj
15/08/12, 22:54:34
Con el asynctask me va todo perfecto menos al pinchar en un mis balloons. Cuando añado mis customsballoons a un customitemizedoverlay no me deja hacerlo desde dentro del thread en background, por lo que pierdo funcionalidad, me funciona todo, mientras recorro el while añado los markers, y si pincho en un marker me sale el balloon correcto, pero en cambio si pincho en un balloon me sale siempre la ficha del ultimo elemento del while, ya que el constructor de cada customitemizedoverlay no me deja meterlo en el doinbackground. He probado de todo, pero no me deja usar dicho constructor....

mocelet
15/08/12, 23:02:24
Primero te bajas los markers, luego en el postexecute ya haces todo lo que necesites con el mapa

alfonsosj
15/08/12, 23:04:03
es que me da rabia que solo por una linea tenga que recorrer dos veces los mismos elementos

alfonsosj
15/08/12, 23:28:54
esta es la linea maldita

itemizedOverlay = new CustomItemizedOverlay(drawable, mapa);

mocelet
15/08/12, 23:42:41
Seguro que al androide le da igual recorrerlo dos veces, y así separas mejor el código que descarga cosas del código que las presenta. Es más fácil de mantener y de probar.

alfonsosj
16/08/12, 00:34:17
si quieres que lo pongamos en el portal has de dar más información compañero, se ve un post algo pobre... sube más datos sobre el programa, pantallazos, videos... no sé, adórnalo algo.


Hola Jorge, ya he editado el primer post para la promoción. muchas gracias.

alfonsosj
18/08/12, 19:32:42
Desde la versión 2.0 ya están solucionados los problemas de ICS. y de localizazcion gps. entre otros bugs.

Gracias a todos y a meter chiringuitos nuevos jejeje!!!

mocelet
18/08/12, 19:47:07
Bien, ahora se ve el mapa, veo que ya hay unos cuantos chiringuitos.

De vez en cuando el mapa provoca un error y se cierra, es una excepción arrayindexoutofbounds, te he enviado el reporte de error, podrás verlo en la consola del desarrollador cuando google tenga a bien.

Idea de mejora: no hace poner "Nombre: " en las etiquetas del mapa. El iconito de android tampoco aporta nada. Y para aprovechar el espacio, si tienes acceso a la breve descripción al mostrar los marcadores, no quedaría mal añadirlo. Y ya si interesa ves el resto de datos.

alfonsosj
18/08/12, 19:50:32
El iconito de android que te refieres es la foto en miniatura antes de cargarla, he de controlar los pesos de las imagenes para que el tiempo de vision sea instantaneo.

Gracias de nuevo.

mocelet
18/08/12, 20:33:59
Al iconito me refiero al marcador, sale el androide, pero luego no sale ninguna imagen, y lo he dejado un rato largo por si acaso.

Añado: La he tenido que desinstalar, por algún motivo (¿algún servicio en background? ¿algo relacionado con Jelly Bean?) se come la batería porque está continuamente accediendo al GPS. Instalé la nueva versión hace un par de horas y resulta que lleva una hora usando el GPS, cuando realmente solo la he usado un par de minutos.

alfonsosj
18/08/12, 22:14:14
Apago el gps en todas las activity con la tecla atrás. Con la tecla home queda en segundo plano. Esa es la teoría de uso de dichas teclas no?

Enviado desde mi GT-I9000 usando Tapatalk

mocelet
18/08/12, 22:25:39
Las teclas dan igual, lo que importa es el ciclo de vida de la app: onPause, onStop, etc.

En el onPause y en el onStop hay que liberar los recursos que se usen. Lo del gps no sé cómo va de todas formas.

alfonsosj
24/08/12, 00:14:53
Que me recomendais para subir fotos desde mi aplicación a un server? Un servicio web o librería apache con FtpClient? U otra opción? La librería apache me da problemas... Gracias.

Enviado desde mi GT-I9000 usando Tapatalk

mocelet
24/08/12, 11:42:03
HTTP POST, lo de FTP es complicarse la vida de mala manera.

alfonsosj
30/08/12, 03:12:21
Varias pruebas con http post me fallan, tenéis un código fuente con su correspondiente php ??? Gracias.

Enviado desde mi GT-I9000 usando Tapatalk

alfonsosj
31/08/12, 02:25:26
Ya es 31 de Agosto compañeros, y os pido por favor vuestra colaboración añadiendo los chiringuitos de playa que hayáis conocido este verano y así completar ChirinGuia y que todos podamos disfrutar ahora en septiembre el que todavía pueda o el próximo verano de ese gran lugar, el chiringuito!!!. Muchas gracias.

mocelet
31/08/12, 21:53:54
Nunca me he puesto a subir ficheros con Android, pero el mecanismo habitual en internet para subir ficheros en la web ese el HTTP POST.

Hay algunas webs que comentan cómo hacerlo (en inglés): http://vikaskanani.wordpress.com/2011/01/11/android-upload-image-or-file-using-http-post-multi-part/

El servidor no tiene mucho misterio en PHP porque te deja el fichero en la variable $_FILES y ya es cuestión de comprobar que es válido y guardarlo donde sea. Otra referencia en inglés: http://www.w3schools.com/php/php_file_upload.asp

De añadir chiringuitos poco porque este verano todavía no he pisado la playa xD