Estimados amigos,
estoy haciendo mis primeros pinitos en desarrollo Android. Ya conozco bastante bien las apis en general, he hecho alguna aplicacion pequeña, pero ahora estoy dandole vueltas a una aplicacion mas ambiciosa, que creo que puede ser interesante para muchos usuarios potenciales.
Esta aplicacion guarda información util para el usuario, algo asi como una agenda especializada para cierta clase de profesional. Y se me plantean varias preguntas para las que aun no tengo respuesta.
Lo primero que se me ocurrió es almacenar dicha informacion de manera local, usando una bd sqlite, y proporcionando alguna manera de exportar/importar la informacion para cuando el usuario planea cambiar de terminal, etc.
Sin embargo, despues he pensado que muchos de nosotros no tenemos un unico terminal, sino que tenemos un movil, y ademas un tablet, y quizas nos interese acceder a los datos en ambos dispositivos, entonces el escenario cambia completamente.
Aqui ya tendriamos que almacenar los datos del usuario en la nube, en algun servidor, y la aplicacion accederia a ellos utilizando la tecnologia REST. Esto me complica un poco la vida, pues tengo que elegir la tecnología que hay que utilizar del lado del servidor. Por lo que he investigado, lo que mas se utiliza para desarrollar servicios web en Java es Apache Tomcat + Jersey, ¿es esto correcto?
Finalmente, y dandole una vuelta de tuerca mas al tema, en el supuesto de almacenar los datos en remoto y que la aplicacion acceda a ellos cuando tenga conexión, ¿que pasa cuando no hay conexion? Asi pues he pensado que la aplicacion tendria que tener una bd local en la que mantendría la informacion, y la sincronizaría cuando tenga conexion disponible con la bd remota, e incluso entre varios dispositivos, pero esto ya lo complica todo mucho mas...
Asi pues, mis preguntas son varias:
1.- de manera general, ¿como enfocais vosotros aplicaciones en este escenario?
2.- ¿La eleccion de Apache Tomcat + Jersey para hacer servicios web en Java es acertada?
3.- El tema de la sincronizacion entre dispositivos... ¿como gestionais cambios concurrentes? ¿Hay alguna metodologia al respecto?
un saludo y muchas gracias.