Tema: crear app
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/02/2015, 02:18
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: crear app

¿Qué experiencia tienes sobre temas de programación?

Para llevar a cabo este proyecto de forma satisfactoria es necesario que tu nivel sea medio tirando a alto. Básicamente porque requiere el uso de varias librerías y sistemas operativos y eso complica el desarrollo.

Quizás sería más productivo montar primero una infraestructuva web, basada por ejemplo en PHP y MySQL (hay instaladores que te montan todo el sistema con dos clicks). La ventaja de este sistema es que puedes empezar a ver algo funcionando casi desde el minuto 1. La desventaja es que hay que conectarse a la web para poder acceder a los contenidos.

Si aun así decides seguir adelante con tu idea original, entonces tienes que decidir si la arquitectura de la aplicación pasa por el uso de un servidor central (más seguro) o si, por contra, cada aplicación móvil es capaz de comunicarse directamente con la base de datos. La primera opción es, de lejos, la más recomendada, ya que si no dejas la puerta abierta para que cualquier alumno listo modifique la información de la base de datos a su antojo.

Partiendo de la base que optas por la primera opción necesitarás:

Para el servidor:
* Servidor MySql
* Entorno de desarrollo
* Librería para comunicarse con mysql
* Librería para comunicación con clientes (recomendado): la idea es usar algún protocolo de comunicación que se encargue de ocultar las características de cada arquitectura. Ejemplos: protocol-buffers, JSon, XDR, ASN.1

Para los dispositivos móviles:
* Entorno de desarrollo para Android
* Entorno de desarrollo para IPhone
* Entorno de desarrollo para Windows Phone
* Librería para comunicación con el servidor: el protocolo empleado debe ser el mismo para todos los dispositivos

La idea entonces pasa por tener un servidor, que recibe peticiones por un puerto TCP conocido (TCP es más pesado que UDP, pero es más sencillo de utilizar porque garantiza la entrega de los mensajes en red).

Entonces los clientes móviles se conectan al servidor facilitando, en primer lugar, un usuario y contraseña. El servidor comprueba si los datos de acceso son correctos y aprueba o deniega el acceso... y a partir de ahí a despachar todas las peticiones que haga el cliente hasta su desconexión.

Es bastante código como para poner un ejemplo... yo quizás empezaría por una primera versión en la que el servidor sea capaz de comunicarse con la base de datos para recuperar datos y mostrarlos por consola... después intentaría desarrollar la aplicación para una de las plataformas móviles y, una vez esta aplicación empiece a funcionar, aprobaría el desarrollo para el resto de móviles.

Eso sí, remarco que es mi opinión personal.

Un saludo.

---EDITADO---

Se me había olvidado añadir una cosa:

Programar no es ni fácil ni barato. Programar es una labor casi de artesanía, en la que todos los elementos que componen la aplicación tienen que funcionar en perfecta sincronía para que el programa cumpla su función. Si estás al lado de alguien que programa muy bien y lo hace de tal forma que parece fácil, no es porque "sea fácil", sino porque esa persona tiene varios años de dedicación a sus espaldas. No solo hay que conocer bastante bien el lenguaje en el que te mueves, también tienes que tener conocimientos de todas las APIS que estás utilizando y de las peculiaridades del sistema operativo por si acaso afectan a tu trabajo... programar puede ser cualquier cosa menos fácil.

Dar a entender que la programación es algo sencillísimo y fácil de hacer únicamente sirve para que cada vez se pague menos a la gente que se dedica a ello... total, si tan fácil es que cualquiera puede hacerlo... Tu vete un día al taller porque el motor hace un ruido raro... puede que el problema se solucione cambiando únicamente un tornillo y la factura será de 200€. ¿200€ por un tornillo? no, 20 céntimos por el tornillo, 30€ por la mano de obra y 169.80 € por saber qué había que cambiar.

Vamos, que montar la aplicación que pretendes no es algo en plan "venga chicos, coged cada uno un ordenador y a picar código, que en 2 horas lo tenemos funcionando..."

No intento desmoralizarte, pero quiero que entiendas que lo que pretendes hacer solo será fácil de hacer para alguien con la suficiente experiencia... y de rápido olvídate, la cantidad de bugs en una aplicación crece de forma exponencial con el número de líneas de código... más aún si no se tiene la experiencia necesaria y si no se aplican chequeos rutinarios como los test unitarios (por poner un ejemplo).

Un saludo.

Última edición por eferion; 18/02/2015 a las 09:32