Duda app android

charl1

Buenas,

Estoy desarrollando una apk sencilla para ir aprendiendo y me gustaría recibir consejo de alguna persona experimentada o con otro punto de vista.

La aplicación sencilla consiste en mostrar el grupo de futbol en el que juego, para mostrar los datos de los equipos y los emparejamientos de las jornadas habia pensado en simples consultas sql o un archivo xml (que opinais?)

El problema lo tengo a la hora de mostrar los resultados y la clasificacion que se actualizaran semanalmente, habia pensado en un servidor php hacer un webservice que devolviera los datos, tambien otra opcion es realizar la consulta remota. Estoy abierto a escuchar opciones que no contemplo.

Que opcion contemplariais como experiencia para futuras apks, contemplando gestion de memoria, consumo de bateria o seguridad.

Gracias por aconsejarme

sasher

Lo que comentas del webservice es la manera correcta de hacerlo. Una conexión remota a la base de datos es muy poco segura, además de que muchos hosts no lo permiten.

Si crees que el tamaño del archivo de datos va a permanecer constante, usa XML. Si por el contrario piensas en terminos de futuro como escabilidad, tira de SQL:

1 respuesta
bLero

Un servidor sencillito con una base de datos y un servicio web REST que te devuelva la info.

Desde el cliente parseas y cargas los datos necesarios.

1 2 respuestas
charl1

#2, será un fichero constante y de poco peso, con lo que comprobaré el rendimiento tanto en xml como en SQL ya que por SQL se me hace mas familiar y claro.

#3 He visto ejemplos de REST , me documentaré es una opción muy interesante.

Gracias por la opinión, es importante ;)

1 respuesta
freskito24

#4

Para servidor te recomendaría python + django + framework rest: http://django-rest-framework.org/. Se monta rápido sobre un apache y necesitas muy poco código para hacerlo funcionar bien.

Para clientes simples en android, retrofit: http://square.github.io/retrofit/
Para algo mas complejo pero con opción de caché y gestión mas completa de errores y peticiones usa robospice: https://github.com/octo-online/robospice

Cuidado con la segunda opción, tienes que tener muy claro como quieres que funcione tu módulo de red si tienes intención de hacer que crezca porque los cambios son mucho más costosos que en la primera opción. Hay un módulo de retrofit para robospice.

Si decides pasar de la red y hacer las cosas en local no uses sqlite a pelo, se vuelve una locura en aplicaciones medianas / grandes. Usa un orm como ormlite. Super sencillo de usar y muy fácil de mantener: http://ormlite.com/

B

si en un futuro quieres alta disponibilidad y escalabilidad te recomiendo nodejs + express pues está orientado a eventos y no es bloqueante. Si se te queda corto siempre puedes escalrlo horizontalmente con un balanceador.

3 respuestas
elkaoD

#6 así que has entrado en la secta. Bienvenida.

1
ZaO

#6 una pregunta a que te refieres a "escalrlo horizontalmente con un balanceador"?

Puedes explicarlo un poco para gente mas novata :P

2 respuestas
B

#8 que si se te queda corto le añadas más nodos nodejs y listo. Escalar horizontalmente significa básicamente añadir más nodos o servidores. Un balanceador es un nodo que se dedica a repartir el tráfico entre nodos en base a la carga de cada uno.

zoeshadow

#8 En el escalado horizontal ( no es algo solo relativo a node ) la escalabilidad se soluciona añadiendo mas maquinas en las que cualquiera de ellas pueda realizar todos los trabajos, esto es algo ideal y difícil de conseguir, se suelen usar balanceadores de carga ( como puede ser un servidor Apache ) que elige el nodo, equipo o maquina virtual que esté mas libre en cada momento. ( hay distintos algoritmos a la hora de seleccionar cual es el nodo elegido )

En cambio en el escalado vertical, es un tipo de escalado implícito en la que se soluciona añadiendo mas potencia bruta al sistema, teniendo un limite finito a la hora de escalar.

charl1

#6 He probado nodejs, para hacer el proyecto del ciclo y realmente quede sorprendido con lo poco que usé.

Para esta apk, no me es necesario, pero si lo tengo en mente. Tiene un potencial interesante.

kraneok

#1 En PHP "si sabes", te resultará mucho mas fácil crear un webservice al que hacerle las peticiones.

1 respuesta
charl1

si #12, en PHP es en el que mas prácticas he hecho, también en JAVA pero copiando xD.

Gracias

R

Yo estoy haciendo algo parecido también para una app. Pero estoy usando PHP web service + SOAP-

#3 Por qué te decantas por REST en vez de SOAP? ¿Qué ventajas tiene?

Saludos.

1 respuesta
elkaoD

#14 "Por qué te decantas por REST en vez de SOAP? ¿Qué ventajas tiene?"

Principalmente: no apesta.

La pregunta es... ¿qué ventajas tiene SOAP para compensar lo complejo e inadecuado de implementar y sobre todo de testear?

Yo he tenido que trabajar contra una API SOAP y creo que ha sido el peor episodio de mi vida para testear, hacer mockups, etc. Con REST puedes hacer magia simplemente usando cURL.

Lo bueno de REST además es que refleja operaciones CRUD y a mí me parece más elegante el concepto de rutas a los documentos y operaciones sobre estos en lugar de la locura que hace SOAP... y encima evitas XML (bueno, técnicamente puedes usar XML en REST pero...)

1 respuesta
R

#15 te lo agradezco de verás, empezé ayer así que borraré todo y de vuelta a REST, alomejor me habéis ahorrado dolores de cabeza. jajaja

charl1

Buenas de nuevo, ya que está el post abierto, aprovecho para lanzar una pregunta que me inquieta más aun.

A la hora de realizar aplicaciones con gráficos, por ejemplo, un lienzo para dibujar, un juego de plataformeo o cualquier algo 3d que opciones conoceis?

Para 3D, conozco unity
Para 2D, conozco cocos2d-x
Y para el ejemplo de lo del lienzo de me ocurre hacerlo en javascript/html5 y convertirlo con phonegap mismo.

Que opciones más conocéis?

1 respuesta
B

#17 tienes cocos2d parar html5 http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Cocos2d-html5. Yo lo uso con websockets y nodejs.