Nociones Básicas de Arquitectura

88 views
Skip to first unread message

Roco Escalera Tapias

unread,
Apr 18, 2012, 10:44:54 AM4/18/12
to galicia-mobi...@googlegroups.com
Hola a todos,

me he propuesto terminar mi primera app y me encuentro con miles de dudas básicas de programación. 
La app es un juego basado en el programa de tv "Password" y con un funcionamiento similar al Draw Something. 

He leido y releido sobre UI, Activities, Services, IPC, AIDL.....pero no se como abordar el asunto de enviar y recibir DATA. Me hace falta un Web Service? Hay otra alternativa mas sencilla propia del SDK de Android?

Alguien me podría orientar esbozándome como suele ser la arquitectura de este tipo de apps?

Siento las dudas de novato. :)

Muchas gracias.

Adrián Moreno Peña

unread,
Apr 18, 2012, 10:52:58 AM4/18/12
to galicia-mobi...@googlegroups.com
Si entiendo bien lo que quieres montar, un juego multijugador, en ese tipo de aplicaciones, la app móvil ejerce de cliente de una aplicación que se ejecuta en un servidor, accesible por internet.

Entre la app y el servidor vas a tener que intercambiar datos a través de la tecnología que elijas, normalmente un servicio REST con datos en JSON o XML. Por otro lado, en el servidor, la arquitectura puede ser la que tu elijas (con un framework MVC, por ejemplo), así como la tecnología (J2EE, .NET, PHP... cualquier framework...). 

Lo importante es que vas a tener un servidor que ejerce de "cerebro", para que las apps sean lo más ligeras (y tontas) posibles, ahorrando consumo de batería (y en la medida de lo posible, datos).



——
Adrián Moreno Peña




2012/4/18 Roco Escalera Tapias <sca...@gmail.com>

Roco Escalera Tapias

unread,
Apr 18, 2012, 12:53:12 PM4/18/12
to galicia-mobi...@googlegroups.com
Perfecto! Muchísimas gracias Adrián!

Parece que la cercanía de alguna manera influye en la claridad de explicaciones.  :)


Por lo tanto, tendre que empezar por implementar un servicio REST propio imagino. Estoy leyendo algo de REST....se podría decir que REST es un framework para implementar servicios web?

Entiendo que mi app entonces sera un cliente del Servicio REST, pero donde alojo el sevidor REST?  (No se si esta pregunta tiene mucho sentido)

Como ves las dudas son bastante básicas.

Muchas gracias de nuevo.





2012/4/18 Adrián Moreno Peña <zet...@gmail.com>

Adrián Moreno Peña

unread,
Apr 18, 2012, 12:59:52 PM4/18/12
to galicia-mobi...@googlegroups.com
Jaja, pero la aplicación no es la más sencilla que puedes hacer, no te creas que son tan básicas :-). La aplicación más básica sería "standalone", no necesitaría un servidor... o usaría uno ya programado. Por ejemplo, para empezar a probar podrías crear un cliente de la wikipedia, o alguno que haga uso de APIs públicas.

Los servicios REST (serán varios, para cuentas, partidas, jugadas, etc), estarán implementados en una aplicación, que tendrás que alojar en un servidor accesible desde internet. Un hosting, vamos, como lo que se puede alquilar en dinahosting, redcoruna, o cualquier proveedor que prefieras (digo esos dos porque son galegos!). Y luego desde la app, acceder a la URL pública de ese servidor (por ejemplo, laappderoco.com)

Roco Escalera Tapias

unread,
Apr 18, 2012, 1:07:12 PM4/18/12
to galicia-mobi...@googlegroups.com
Ok, algo asi me imaginaba... 

pero es que las standalone que se me ocurren y me motivan van mas orientadas a juegos con graficos etc....y eso lo veo ya harina de otro costal..jeje

Alguna parida standalone ya he hecho, pero quería algo que me motivase.

Se me ha ocurrido otra que haría uso de la API de Google Latitude. Para enviar un "te voy a buscar" y que el que acepte vea el tiempo que le queda para llegar a él. Pero tampoco me parecio facil usar las APIS de Latitude. :P

Any advise??

Alberto Alonso Ruibal

unread,
Apr 18, 2012, 1:07:22 PM4/18/12
to galicia-mobi...@googlegroups.com
En mi caso con Gasolineras España el servicio REST es un script PHP que recibe latitud y longitud y devuelve una respuesta JSON con el listado de gasolineras.

Desde Android me gusta consumir servicios JSON porque el parser está integrado en el sistema. Tienes un ejemplo en Wikiplaces que obtiene datos JSON desde un servicio: http://code.google.com/p/mobialia-wikiplaces/

El qué usar en la parte de servidor depende de con qué estés más familiarizado (PHP, RoR, Google App Engine...)

Pablo Formoso Estrada

unread,
Apr 18, 2012, 1:09:06 PM4/18/12
to galicia-mobi...@googlegroups.com
IMHO la forma más rápida de tener unos servicios montados es con Rails :P O con Sinatra mismo. Aun que ya hay muchos framework REST pocos tiene por defecto un respods_to :json que te lo genere de la forma más sencilla posible.

Después como todo hay que profundizar en el tema.

Rails For Zombies es un buen sitio para empezar ;)

Roco Escalera Tapias

unread,
Apr 18, 2012, 1:11:33 PM4/18/12
to galicia-mobi...@googlegroups.com
Gracias Alberto! Ese ejemplo me puede venir genial para trastear con apis. Voy a investigar un poco. Lo puedo importar directo a Eclipse?



2012/4/18 Pablo Formoso Estrada <pablo....@gmail.com>

Roco Escalera Tapias

unread,
Apr 18, 2012, 1:12:50 PM4/18/12
to galicia-mobi...@googlegroups.com
Uff...Pablo, si me pongo a ver Rails tambien ahora igual me da un patatús. jeje... 

Adrián Moreno Peña

unread,
Apr 18, 2012, 1:13:06 PM4/18/12
to galicia-mobi...@googlegroups.com
Pablo cobra por cada evangelización de Ruby que lleva a cabo, seguro! :-)
Si estás familiarizado con Java, un framework que te puede interesar es Play! Framework. Pero vamos, que en general con cualquier cosa puedes genera rel JSON :-)

Alberto Alonso Ruibal

unread,
Apr 18, 2012, 1:14:04 PM4/18/12
to galicia-mobi...@googlegroups.com
Con el plugin de subversion deberías poder crear directamente el proyecto desde el repositorio, si no haces el SNC checkout y tienes tal cual la estructura del proyecto en Eclipse.

Alberto Alonso Ruibal

unread,
Apr 18, 2012, 1:17:09 PM4/18/12
to galicia-mobi...@googlegroups.com
Donde puse SNC quería decir SVN :D

Pablo, yo no es que sea muy defensor de PHP pero con http://pear.php.net/package/Services_JSON/

$json = new Services_JSON();
print($json->encode($out));

XD

Roco Escalera Tapias

unread,
Apr 18, 2012, 1:19:35 PM4/18/12
to galicia-mobi...@googlegroups.com
Perdona Alberto, este repositorio?

http://mobialia-wikiplaces.googlecode.com/svn/trunk/ mobialia-wikiplaces-read-only
  


Folder doesn't exist remotely.

También lo probe sin el espacio de  / mobialia-wikiplaces-read-only  y nada.


2012/4/18 Alberto Alonso Ruibal <alberto...@gmail.com>

Roco Escalera Tapias

unread,
Apr 18, 2012, 1:20:48 PM4/18/12
to galicia-mobi...@googlegroups.com

Ah, SVN, vale....ya estaba googleando SNC y pensando: "mas cosas que no se...." jjejejej

Alberto Alonso Ruibal

unread,
Apr 18, 2012, 1:21:18 PM4/18/12
to galicia-mobi...@googlegroups.com
Si, ese, tienes un guide-tru de la aplicación en http://www.mobialia.com/learning/labandroid/

Roco Escalera Tapias

unread,
Apr 18, 2012, 1:23:17 PM4/18/12
to galicia-mobi...@googlegroups.com
Ah, es verdad...habia llegado a ese slideshare esta mañana y me habia olvidado. 

Perfecto! Muy profesional..... :)

Gracias a todos.

Pablo Formoso Estrada

unread,
Apr 19, 2012, 1:11:28 PM4/19/12
to galicia-mobi...@googlegroups.com
xDDD Alberto son menos lineas hacer un @places.to_json ;)

Un día en las quedadas tenemos que poner estos temas sobre la mesa. En una lista que tenemos los Rubystas hemos estado hablando esta semana de temas como la muerte de PHP :P, JS como el futuro cubrir varias capas y las tecnologías que están naciendo y madurando a su alrededor como Node.js, Backbone, Express Framework, Meteor (la más reciente) con los cambios que están insertando en el paradigma de la web. En peepcode hay muy buenos recursos para ver todos estos temas y empezar a cacharrear. 

Me encanta todo lo que tenga que ver con arquitectura de software, diseño, modelado, y sobre todo, escapar de los cabestros que montan CPDs con 100 maquinas para tener su SAP come recursos por vivir en el pasado, el otro día lo habla con Artur Monteiro

Adrián Moreno Peña

unread,
Apr 19, 2012, 1:21:02 PM4/19/12
to galicia-mobi...@googlegroups.com
Para matar PHP vas a tener que buscar reemplazos de Wordpress, Drupal, Wikimedia, Joomla, y tantas aplicaciones escritas en PHP que van bien... El problema no es de los lenguajes en sí, sino como siempre, de cómo se usan. Si Ruby fuese el lenguaje "por excelencia" de los programadores primerizos, supongo que se verían las mismas cafradas que en PHP.

Que no es lo mismo hacer una aplicación sin separación de capas (como hay mil chapuzas hechas en PHP), que usar Symfony, Zend, CakePHP, o algún framework propio o no que organice el código con algo de lógica!


2012/4/19 Pablo Formoso Estrada <pablo....@gmail.com>

Alberto Alonso Ruibal

unread,
Apr 19, 2012, 1:27:36 PM4/19/12
to galicia-mobi...@googlegroups.com
Tengo pendiente de ver RoR, que me tiene muy buena pinta, pero el problema que veo yo, en adición a lo que comenta Adrián es el de hosting, que te suele forzar a usar VPSs

Pablo Formoso Estrada

unread,
Apr 19, 2012, 1:41:27 PM4/19/12
to galicia-mobi...@googlegroups.com
Heroku en el plan free llega para hacer una aplicación sencillita, y a día de hoy MediaTemple, DreamHost y muchos provedores de hosting te permiten crear un contexto light para RoR. Pero Sinatra es mucho más ligero y tiene todas las bondades de RoR.

Cuando hablamos de matar a PHP siempre lo hacemos pensando en los scripts que se hacen y no en WP, o en aplicación que están muy bien hechas (después de unos cambios de arquitectura xD). Montar en en un server que tengas por casa con app en Rack con Ruby que te de un servicio ca de lujo, pero la tendencia se está yendo a JS http://www.meteor.com/screencast
Reply all
Reply to author
Forward
0 new messages