2011-12-09 14 views
20

Así que he estado escribiendo pequeñas aplicaciones de Android y quiero comenzar a escribir aplicaciones más grandes que permiten a los usuarios crear cuentas, me permiten almacenar sus datos de cuenta en línea en algún tipo de base de datos y realmente solo agrega algún tipo de funcionalidad que requeriría algún tipo de back-end.Agregar una base de datos/backend a aplicaciones de Android

Soy nuevo en la programación y estoy comenzando con Java/Android. ¿Dónde debería empezar a aprender sobre esto? ¿Esta sería una base de datos que necesitaría? ¿Qué tipo (s) son populares o buenos para aprender/usar?

He leído acerca de https://www.parse.com y parece interesante y fácil de usar, pero no quiero aprender algo que no es un estándar o que solo podría utilizar con su cliente.

+0

Quizás quiera echar un vistazo a algunas alternativas más, que se explican en esta pregunta: http://stackoverflow.com/questions/7912570/ready-to-use-backend-for-mobile-applications/10235975# 10235975 – Andreas

Respuesta

28

Nunca antes había usado Parse, pero parece una manera fácil para que usted no se preocupe por escribir todo el código del lado del servidor, el inconveniente es: cuesta más dinero cuanto más quiere usarlo y está también relacionado con su API y su forma de hacer las cosas. Si usa Parse, solo tendrá que preocuparse por escribir código para que su aplicación Android interactúe con Parse. Puede ver su documentación para detalles sobre eso.

La ruta más económica implica un poco más de trabajo. Usted necesitará un servidor

  • para acoger el backend

  • lenguaje del lado del servidor (es decir, Java, PHP, Python .. lista sigue) para controlar las peticiones/manija de su aplicación Android.

  • Una base de datos (MySQL, PostgreSQL, Oracle, etc.) Ajustes con los esquemas que desee (es decir, una tabla de usuario)

El flujo general es: su aplicación Droid haría una petición a http://yourserver.com/BackendFunction con parámetros para esa función. Su lenguaje de scripting del lado del servidor haría el trabajo back-end (es decir, agregar un usuario a la base de datos). El servidor responde a su aplicación con cierta información (generalmente JSON o XML, lo que elija) con información relevante, y su aplicación muestra una buena vista de esa información.

Deberá investigar cómo consultar las bases de datos con cualquier idioma del lado del servidor & de la base de datos que está utilizando y cómo enviar/gestionar las solicitudes HTTP & responses.

+0

¡Gracias! Eso era básicamente lo que quería saber, ¿alguna sugerencia sobre tutoriales o realmente cualquier cosa para empezar a aprender sobre esto? Supongo que usar el lado del servidor Java sería mi mejor apuesta, ya que sé un poco, pero estaba pensando en aprender Python. – Peter

+2

Aquí hay una [lista de frameworks web de Python] (http://wiki.python.org/moin/WebFrameworks) y [frameworks Java] (http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java). Hay mucho que debes aprender, este es un tema profundo. Algunos frameworks web siguen un diseño de modelo-vista-controlador. Puede ignorar la creación de vistas en su servidor para su aplicación y simplemente codificar el modelo (objetos de base de datos) y el controlador (manejando la obtención de esos objetos de base de datos para su aplicación). Lea la documentación de un marco: vea si puede crear una URL, enviar algunos datos y hacer que devuelva datos. – JMoy

+0

Incluso estaba buscando la misma respuesta. ¿Hay algún recurso en línea que pueda guiarme en esto de principio a fin? ¡Creo que eres el único que entendió la pregunta correctamente! –

5

Tiene razón de que necesitará algún tipo de almacén de datos en el lado del servidor para almacenar sus datos. Podría ser una base de datos RDBMS tradicional (mysql o postgresql), o algo más nuevo como una solución no SQL (mongodb, riak, couchdb). Parse se ve genial, pero nunca lo he intentado.

Para mi proyecto reciente de Android, he estado usando las bibliotecas de Android de Couchbase (http://www.couchbase.org) con ektorp (http://www.ektorp.org) que me permiten replicar a una instancia de CouchDB del lado del servidor.Ha sido genial para un número de razones:

  • utiliza HTTP para enviar datos de forma predeterminada
  • envía los datos en un formato JSON (sin conversión -/serialización de unión)
  • sencilla 'replicar' comando en EKTORP para extraer datos/PUSH entre cliente y servidor

también, basado en el almacén de datos que elija, usted todavía tendrá que decidir sobre un par de cosas:

  • ¿Qué formato enviará la información al servidor? Yo recomendaría JSON. Otras opciones son XML o YML.
  • ¿Cómo convertirás esos datos en el cliente para el transporte? La biblioteca de jackson-json es increíble si elige JSON.
  • ¿Necesita un nivel intermedio para proteger y/o traducir el formato de datos elegido? Es posible que desee comprobar Spring MVC para construir servicios web basados ​​en la tranquilidad si necesita un nivel medio.

Puede parecer desalentador (las cosas del lado del servidor tienden a sentirse de esa manera a veces), pero ¡sigue así y lo conseguirás!

Cuestiones relacionadas