Cómo construir un servidor de fondo para una aplicación móvil

El quid de esta decisión se reduce a dónde va a vivir la lógica de su aplicación. Algunas aplicaciones mantienen prácticamente toda su lógica en el dispositivo móvil: piense en juegos o herramientas simples de productividad. Pero algunas aplicaciones necesitan compartir la lógica entre los usuarios, y en ese caso es necesario construir mucha lógica “en la nube”. Piense en Twitter: la mayor parte de su lógica vive en el backend.

Si la mayor parte de su lógica vivirá en el dispositivo, entonces puede salirse con la suya con un simple servicio MBaaS como Parse o Firebase. Estos servicios ofrecen una ruta simple para almacenar datos persistentes en la nube. Simplemente inserta su SDK en su aplicación móvil y maneja los detalles de hablar con su API REST. Pero estos servicios no están diseñados para alojar mucha lógica empresarial.

Si necesita una lógica de aplicación significativa en la nube, entonces probablemente quiera crear su propio nivel web con una API. Puede hacerlo en casi cualquier lenguaje y marco, pero creo que Node.js es la forma más fácil de comenzar. Eche un vistazo al marco Express y vea cómo las personas crean API simples con él. Puede ejecutar su aplicación Node en sus propios servidores, o en cualquier IaaS o PaaS.

Llego un poco tarde al juego aquí, pero pensé en tirar mis dos centavos.

Lo primero en lo que debe concentrarse es en hacer que todo sea lo más apátrida posible. En la actualidad, debe poder escalar sus componentes con solo hacer clic en un botón (o mejor aún, automáticamente). Lo que evita que esto suceda es cualquier tipo de estado que pueda mantener en la memoria para resolver problemas … tenga esto en cuenta que le ahorrará algunos dolores de cabeza más adelante.

Más allá de la arquitectura, hay muchas formas de crear su backend, si es algo muy simple y solo necesita almacenamiento persistente, entonces las cosas mencionadas por otros como Parse y FireBase se ajustarán a la factura.

El problema es que si necesita algo más complejo, entonces necesita aprender un nuevo lenguaje y sistema de administración: hay muchas opciones: NodeJS, Python, Ruby, etc. Una cosa que recomendaría es exis. Esta es una plataforma que le permite escribir su código de back-end en el mismo idioma que su código de interfaz móvil. Entonces, si te gusta desarrollar para Swift de Apple y no conoces Javascript, Python o Ruby, entonces no tienes que aprenderlos. Quédate con Swift y escribe tu lógica de back-end, luego ejecútala usando exis. En total divulgación, soy el CEO de exis, pero espero que encuentre útil esta información incluso si no nos visita :).

Piense en escribir un backend como manejar un banco. La base de datos es la bóveda del banco, el servidor de la aplicación es el personal de servicio al cliente, y los clientes de la aplicación son, por supuesto, los clientes del banco.

¡Obviamente, los clientes nunca deberían tener acceso directo a la bóveda del banco! Eso sería una violación de seguridad masiva. Todo lo que hacen es a través de solicitudes al personal del banco. Del mismo modo, sus clientes iOS / Web / Android nunca deberían tener acceso directo a la base de datos. Solo deben hacer solicitudes a su servidor de aplicaciones.

Al igual que administrar un banco, no existe una forma correcta de Right Way (TM) para escribir un back-end. Pero ciertamente hay temas comunes que verá prácticamente en todas partes.

Las bóvedas populares incluyen MySQL, Postgres, MongoDB y Redis. Hay ventajas y desventajas para cada uno, y las personas defenderán celosamente su elección preferida con el mismo entusiasmo que los usuarios de teléfonos inteligentes defienden Android o iOS. Las bases de datos como MySQL y Postgres requieren que organice sus datos en tablas previamente especificadas, mientras que algo como Redis le da un poco más de libertad (¡y responsabilidad!)

El “lenguaje” más común para comunicarse entre clientes iOS / Web / Android y el servidor de aplicaciones es JSON a través de HTTP. Todo, desde Facebook, Twitter y Github, habla este dialecto, por lo que, a diferencia de su elección de base de datos, aquí no hay mucha discusión. Simplemente aprenda cómo manejar las solicitudes HTTP y hacer respuestas JSON, realmente no puede equivocarse aquí.

La parte más difícil es escribir el “cerebro” de su servidor de aplicaciones. Necesita aceptar solicitudes de clientes, hablar con la base de datos y devolver una respuesta a los clientes. Cómo hacer exactamente esto es, nuevamente, controvertido: las opciones populares de lenguajes de programación incluyen NodeJS, C # y Ruby. Cada comunidad lingüística tendrá sus propios marcos, como Express para NodeJS o Ruby on Rails para Ruby.

A pesar de la aparente variedad explosiva de elección, la mayoría de estos lenguajes y marcos son en realidad bastante similares: Sinatra / Ruby, Express / NodeJS, Martini / Go, Flask / Python, etc., son en gran medida la misma cosa; tomará un tiempo aprender su primer marco e idioma, pero después de haberlo hecho una vez, aprender a otros en la misma familia es bastante sencillo.

Por primera vez, recomendaría MySQL y Express / NodeJS. Ambos están bien documentados y son ampliamente utilizados, e incluso si refina sus gustos más tarde, gran parte de lo que aprendió seguirá siendo aplicable.

¡Buena suerte!

Juri, CTO de la Agencia de Diseño Digital Ramotion

Si está creando una aplicación móvil, necesitará un back-end para almacenar información o administrar contenido. Hay muy pocas aplicaciones que no requieren un back-end en estos días. Puede considerar las siguientes opciones para desarrollar un backend.

Servidor personalizado

Configure su propio servidor y aloje el backend en él. Su propio servidor proporcionará un control completo sobre el servidor y es posible personalizarlo según los requisitos específicos. Pero si no tiene mucho tiempo para monitorear su propio servidor, un servidor en la nube sería la mejor opción para usted.

Servidores en la nube

La mejor opción para todo tipo de requisitos de aplicaciones son los servidores en la nube. Los servidores en la nube ofrecen soluciones económicas para la mayoría de las aplicaciones. Esa es la razón, cientos de miles de desarrolladores usan servidores en la nube para sus aplicaciones. Amazon AWS , Google App Engine, Windows Azure , etc., son algunas opciones populares de servidor en la nube que puede considerar.

Backend móvil como servicio (MBaaS)

Si no quieres escribir tu propio backend, MbaaS definitivamente será una gran opción para ti. MbaaS ofrece API y SDK que permiten una fácil conexión a servidores en la nube y tienen funcionalidades como autenticación de usuario, administración y notificaciones push. Algunas startups confiables que ofrecen MBaaS son StackMob, Kinvey, Parse , Appcelerator .

Aquí hay un método simple, creo que te ayudará.

Una herramienta que le permite escribir un pequeño servicio web que podría usarse en una aplicación móvil en poco tiempo. Basado en las siguientes herramientas: Python (como lenguaje principal de desarrollo), Django (como plataforma base) y el marco Tastypie (representado como un marco para crear la API de servicios web). Entonces empecemos.

Crea una plantilla de aplicación Django.

En la configuración del archivo de configuración, anotamos la configuración necesaria para la base de datos, la localización y la hora. Instale el paquete tastypie.

Tenga en cuenta que requiere Python2.6 + y Django 1.5+. Debido a la ignorancia de este hecho, tuve que pasar un poco más de tiempo, porque el marco se negó a funcionar. Además, debe instalar el paquete python-mimeparse de la misma manera.

A continuación, en el archivo de configuración, escribimos:

INSTALLED_APPS + = [‘tastypie’]

o agregue la aplicación ‘tastypie’ ya existente.

Ahora describamos los modelos de nuestra área temática:

# – * – codificación: utf-8 – * –

de los modelos de importación django.db

Clase Altavoz (modelos.Modelo):

name = models.CharField (max_length = 32) company = models.CharField (max_length = 32) photo = models.ImageField (upload_to = ‘photos’, blank = True, null = True)

def __unicode __ (self):

volver volver yo. nombre + ‘(‘ + self.company + ‘)’

Evento de clase (modelos.Modelo):

title = models.CharField (max_length = 64)

altavoz = modelos.ForeignKey (altavoz, en blanco = falso, nulo = falso)

start_time = models.TimeField ()

end_time = models.TimeField ()

def __unicode __ (self): return

return self.title + ‘(‘ + self. altavoz. nombre + ‘)’

Escribimos un modelo de altavoz y un modelo de evento. Cada discurso debe tener un orador. Ahora, hagámoslo para que podamos trabajar completamente con nuestros modelos como con los recursos a través del protocolo REST.

Cree un paquete de API y recursos en nuestra aplicación (o puede crearlo en el paquete principal).

from tastypie.resources import ModelResource

de EventApp.models import Speaker, Event

clase SpeakerResource (ModelResource):

clase Meta:

queryset = Speaker.objects.all ()

resource_name = ‘altavoz’

clase EventResource (ModelResource):

altavoz = fields.ForeignKey (SpeakerResources, ‘speaker’, blank = True, null = True) clase Meta:

queryset = Event.objects.all ()

resource_name = ‘evento’

En este archivo creamos clases de los llamados recursos, los objetos principales en nuestro servicio REST. Estos son exactamente los recursos a los que nos dirigiremos. Cada clase contiene una referencia al modelo que representa. El campo de conjunto de consultas devuelve un conjunto de objetos recibidos de la base de datos al acceder al recurso. El campo resource_name es opcional y nos permite especificar además el nombre del recurso por el cual estará disponible para nosotros.

Una cosa más, en la clase EventResources, especificamos un campo de altavoz separado, que indica que el recurso de evento se refiere al recurso de altavoz.

Ahora solo queda escribir en el archivo de URL las llamadas a nuestro servicio. Esto lo hace muy simple.

de django.conf.urls.defaults import *

de tastypie.api import Api

de api.resources import EventResource, SpeakerResource

v1_api = Api (api_name = ‘v1’)

v1_api.register (SpeakerResource ())

v1_api.register (EventResource ())

urlpatterns = patrones (”,

(r ‘^ api /’, include (v1_api.urls)),)

Ahora comienza nuestro proyecto.

Sé que esta pregunta es antigua, pero aún aparece en la primera página de los resultados de Google cuando se busca cómo escribir un back-end de juegos móviles, y creo que las respuestas aquí, aunque bien intencionadas, generalmente no son tan útiles. ¡Llevaría toda una vida explorar todas las diferentes opciones tecnológicas mencionadas!

Desde la perspectiva de Tag Games, la respuesta corta es que no. En Tag utilizamos ChilliConnect, un juego de back-end como servicio (Game Baas). En nuestros primeros días de desarrollo de juegos móviles, descubrimos que escribir código de servicio de fondo era realmente difícil, por varias razones:

  1. Los juegos móviles tienen una curva de crecimiento no típica, con un aumento repentino del tráfico en el lanzamiento seguido de una fuerte disminución con una larga cola. Aprender a administrar servidores fue bastante difícil por sí solo, pero tratar de ajustar constantemente la capacidad del servidor hacia arriba y hacia abajo para manejar el tráfico de una manera rentable fue como platos rotativos y una gran pérdida de tiempo.
  2. El código del servidor en términos de mejores prácticas y consideraciones de rendimiento es completamente diferente al código del cliente y al desarrollo del juego en particular. ¡Descubrimos que pasábamos demasiado tiempo resolviendo problemas técnicos y preocupándonos por hacer las cosas “de la manera correcta” en lugar de enfocar nuestra energía creativa en nuestro juego!
  3. También descubrimos que escribir algo realmente rápido para un solo juego estaba muy bien, pero cuando llegamos a crear nuestro próximo juego, estaríamos duplicando todo ese esfuerzo. Escribir una “plataforma” sería aún más agotador para nuestro tiempo y nos distraería aún más de hacer que nuestro juego sea lo mejor posible. Fue un poco un Catch-22 en ese sentido.

Es por eso que contratamos a un equipo de servidores dedicado y experimentado para crear nuestra plataforma ChilliConnect. ChilliConnect proporciona todas las características que necesitamos para desarrollar nuestros juegos de forma inmediata, y es lo suficientemente flexible como para personalizarse cuando sea necesario a través de la función Cloud Code. Ahora usamos ChilliConnect en todos nuestros juegos y nunca tenemos que tocar una sola línea de código de servidor. Esto nos permite centrarnos completamente en hacer grandes juegos.

TL; DR: no escriba su propio servidor de fondo si es un desarrollador de aplicaciones móviles, y especialmente si está creando juegos móviles. Será una gran pérdida de recursos, le costará mucho tiempo y dinero, y es un desperdicio de su energía creativa. Use un Back-end-as-a-service (Baas) existente. Para los desarrolladores de juegos, recomendamos echar un vistazo a la plataforma ChilliConnect creada por Tag Games.

Un par de maneras,
1. Utilice bibliotecas / plataformas de terceros. Hay toneladas de ellos que hacen esto por una fracción del costo. La ventaja es que no tiene que ocuparse de la seguridad, repetitivo, lógica, procesamiento e IO. La desventaja es que puede tener lo que le da el proveedor de servicios. Esto significa que rara vez se proporcionarán casos de uso muy específicos.
2. Cree su propio backend e implemente usando plataformas como Google Cloud Engine, AWS, Heroku, Openshift. La ventaja es que puede soportar todos sus casos de uso. La desventaja es que debes ocuparte de todo y quiero decir “todo” …

Claramente hay muchas opciones. Y ya hay muchas buenas respuestas aquí. Además, es importante tener en cuenta que la pregunta es muy vaga. Probablemente podrías escribir un libro que cubra todos los escenarios posibles que podrías enfrentar.

Normalmente evito responder preguntas demasiado vagas, pero creo que tengo algo que agregar aquí. REST es generalmente una buena forma de comunicarse entre un dispositivo móvil y un servidor, ya que está ampliamente disponible y comprendido, es fácil de implementar, fácil de depurar y no es horriblemente detallado. Pero la verdadera pregunta es, ¿cuál es la mejor manera de lograr eso en el servidor?

Si sus necesidades son bastante limitadas, es posible que pueda juntar algo usando CouchDB. Couch es una base de datos NoSQL. Pero la parte importante aquí es que le hablas por REST a través de HTTP. Es decir, si sus necesidades son bastante simples, puede crear un par de vistas y BAM, insta-back end. Para algunos espacios problemáticos de todos modos. Puede que quieras averiguar eso.

Por otro lado, si tiene transacciones complicadas que le gustaría realizar, mire Apache Thrift. Usted define la interfaz usando un IDL que es Java-ish, pero luego usa sus herramientas para generar código tanto para los clientes como para el servidor. Entonces, si tiene un cliente Objective-C, un cliente Java y un cliente C #, y el servidor es PHP, esta herramienta básicamente escribirá toda la tubería por usted. Lo loco es que simplemente funciona. La primera vez que lo usé, tuve que escribir un Android Transport para Bluetooth porque no viene con uno. Todavía trabajó el primer intento, codificado en menos de una hora. Es muy lindo.

En polljoy usamos PHP / MySQL, JSON y REST API para el backend. Todo se ejecuta en la plataforma en la nube (AWS). La API REST sirve todas las plataformas cruzadas (iOS, Android, Web, Unity) como una interfaz común.

La forma más genérica de crear un servidor back-end es a través de una API de descanso. Crea tus servicios de back-end y exponlos como API de descanso y luego tu aplicación móvil puede consumirlos. Hay muchos marcos disponibles para eso en casi todos los lenguajes de programación, Google Cloud Endpoints para Google App Engine Backend, Spring rest para Java, Ruby in rails, Node JS backend, etc.

Si está buscando más backends específicos para dispositivos móviles, puede consultar:
Analizar gramaticalmente
Backend móvil como servicio (MBaaS) para la empresa
El backend de código abierto para tu aplicación móvil
Nube móvil backend como servicio (MBaaS)

Solía ​​usar PHP y MySQL para el backend. No me gustó el rendimiento cuando intenté recopilar datos de Internet. Tal vez sea porque me he concentrado en el front-end (aplicaciones) y no pasé mucho tiempo sobre la arquitectura del back-end. Cada proceso tiene que estar terminado antes de que se maneje el siguiente proceso.

Después de un par de años, aprendí sobre Node.js y MongoDB y cambié a ellos. Me gusta mucho. La arquitectura me obliga a pensar en términos de E / S ansychronized y realmente me gusta el rendimiento y el nuevo entorno, probablemente una preferencia personal.

Utilizo REST API para solicitudes de clientes (aplicaciones). Es bastante fácil, toda la arquitectura es como a continuación. Esta es una versión corta del código para que pueda ver la idea. Puedes encontrar más tutoriales en línea.

enrutador var = express.Router ();
// rutas para API
router.route (‘/ getData’)
.post (función (req, res) {
// redactar consulta a MongoDB y procesar datos
res.json (respuesta); // responde la solicitud
})

// registrar rutas, con el prefijo / api
app.use (‘/ api’, enrutador);
// inicia el cliente MongoDB y el servidor API
MongoClient.connect (url, opción, función (err, db) {
app.listen (def.server_port);
})

Usar AWS es una buena idea en su caso.

Un rico conjunto de servicios en la nube

AWS ofrece un conjunto amplio y profundo de servicios altamente escalables y totalmente administrados para que pueda incluir lógica, almacenamiento, bases de datos, monitoreo, transmisión, entrega de contenido, almacenamiento de datos y aprendizaje automático en su aplicación sin tener que administrar ninguna infraestructura.

Las herramientas para ayudarlo a construir

AWS facilita agregar servicios en la nube a su aplicación móvil. Crea un backend móvil sin servidor. Administre la identidad del usuario y el inicio de sesión. Envíe notificaciones automáticas, realice un seguimiento de los patrones de uso y optimice su aplicación con análisis en la aplicación. Prueba contra una gran colección de dispositivos reales.

Si quisiera elegir una solución en la nube, sería Parse.
O bien, construyéndolo usted mismo, a partir de una visión general amplia, necesita un almacén de datos / base de datos (la elección nosql – sql está vinculada a su problema de dominio) y una API (descanso por nobrain, por supuesto). En el medio tienes que tener muchos ingredientes pero en resumen eso es todo. Solo para apretar un poco su cerebro, piense en el almacenamiento en caché, el escalado, las copias de seguridad, etc.

A menudo construyo backends móviles como complementos a medida para WordPress. Esta es una forma muy poderosa de construir servidores de aplicaciones: obtienes toda la administración de usuarios y la administración de contenido de WordPress de forma inmediata, pero tu complemento puede inyectar funcionalidad de la aplicación, métodos web JSON, nuevas tablas de bases de datos y formularios de administración en las páginas de WordPress.

Quora es generalmente un buen lugar para obtener respuestas que necesitan muchos detalles y consejos, pero su pregunta es demasiado vaga para que podamos ser de gran ayuda. ¿Qué necesita hacer la aplicación móvil con el backend? ¿Cuál es el tamaño esperado de su público objetivo? ¿Cuáles son sus expectativas de tiempo de actividad? ¿Estás haciendo esto en la nube o en un sitio alojado? ¿Cuál es su método preferido de interacción con el cliente? ¿Actuará como intermediario para la comunicación entre pares, como What’sApp?

En resumen, probablemente podamos ayudarlo un poco con su pregunta, pero hay muchos detalles que no podemos obtener de su pregunta.

¡Espero que esto ayude!

Mi firma Pupa Clic [1] es una firma de investigación y desarrollo que desarrolla, desarrolla y opera productos en aplicaciones web e IoT. Estamos subcontratando CTO para HungryForever.com, que tiene más de un millón de me gusta en Facebook y también incluye una receta de integración, por lo que obtengo sus requisitos con respecto a la funcionalidad principal de la aplicación.

Desarrollamos MVP listos para producción en un TAT de 45 días evaluando los conjuntos de características esenciales e implementando recursos expertos del mercado que están familiarizados con el desarrollo para construirlo a un ritmo extremadamente rápido.

Para construir el producto dentro de un período de 45 días a partir de los requisitos mencionados, el costo de desarrollo sería entre 4.5 y 6L INR (8,000 ~ 10,000 USD) para una implementación de 45 días en iOS / Android, dependiendo de los conjuntos de características en las maquetas que incluye pocos marcos de back-end en la web para controlar y monitorear las recetas y otros análisis basados ​​en datos.

Notas al pie

[1] Pupa Clic – Desarrollo de IoT de aplicaciones inteligentes web para dispositivos móviles – Grupo de trabajo

Ya sea que esté planeando el desarrollo de aplicaciones ios o el desarrollo de aplicaciones de Android, hay una serie de opciones para los respaldados para almacenar información.

La primera opción es el servidor personalizado. Puede configurar su propio servidor y alojar el respaldo en él. Sin embargo, este proceso lleva mucho tiempo, ya que lleva tiempo configurar un servidor dedicado y administrar el servidor si las cosas salen mal.

La segunda opción es el uso de servidores en la nube. Esta es la opción favorita para todo tipo de requisitos de aplicación. Estos servidores son flexibles y asequibles. Algunas de las aplicaciones populares en la nube son Amazon AWS, Google App Engine, Windows Azure.

Construir algo nuevo siempre es emocionante … pero, ¿tiene sentido pasar muchos meses en el proceso de I + D de algo que fue inventado muchas veces antes por otros …

Ahorre 10–100K en el desarrollo de backend y enfoque su tiempo en crear aplicaciones increíbles

Pruebe una solución nueva y súper innovadora de la compañía canadiense BlazeSoft.
http://www.blazesoft.ca
Es el back-end de juegos AZ con todas las características posibles que deseas administrar para tu juego:
Gestión de jugadores, gestión de niveles, integración con tiendas, comunicación por lotes o en tiempo real.
También tienen una vasta experiencia en los géneros más populares: tragamonedas, cartas, deportes, 3Match, rompecabezas, juegos de disparos.
Incluyendo mecanismos muy sofisticados como el cálculo de% RTP para juegos de tragamonedas, hojas PAR, integración con proveedores de datos deportivos y más.

Aquí hay algunas buenas respuestas, y no hay necesidad de elaborar más sobre el servidor. Existen bastantes diferencias al desarrollar una aplicación móvil frente a una aplicación web, una de ellas es qué tan dinámico es su código, es decir, si desea cambiar \ probar algo en su código, qué tan rápido puede transmitir esto a sus clientes.

Si está creando un servidor back-end para su aplicación móvil, le recomiendo que considere una infraestructura de configuración que le permitirá cambiar \ probar \ activar o desactivar diferentes funciones en su aplicación sin implementar una nueva versión. Puede obtener algunas ideas en nuestro blog: 5 consejos sobre configuración para desarrolladores de Mobile SDK | SafeDK.

Android no puede acceder al servidor de la base de datos directamente, sino que puede comunicarse con el servidor de aplicaciones como Apache, donde los scripts como php tienen la función de comunicarse con los servidores. Inicialmente, los lectores con buffer de usuario de Android, pero con la introducción de la biblioteca volley, se han reducido muchas tareas.

Estos contenidos pueden ayudarlo a:

http://codesapient.com/android-a

http://codesapient.com/android-v

More Interesting

¿Cuánto sería el costo total para desarrollar una aplicación de geolocalización usando html5 para la aplicación híbrida?

¿Cuáles son los marcos populares en HTML para el desarrollo de aplicaciones móviles para pequeñas empresas?

¿Por qué el desarrollo de aplicaciones móviles?

¿Cuáles son las características de los servicios de prueba de aplicaciones móviles?

¿Qué compañía desarrolladora de aplicaciones móviles desarrolló la aplicación BookMyShow?

Cómo ofrecer capacidades de enlace de tarjetas para una aplicación móvil

¿Quién es la mejor empresa de desarrollo de aplicaciones móviles con Android, iPhone y Windows?

¿Cuáles son las principales empresas de desarrollo de aplicaciones móviles en Hyderabad?

¿Cuánto debería tener una empresa de desarrollo de aplicaciones promedio empleada?

He comenzado una empresa de desarrollo de aplicaciones. ¿Cómo consigo clientes en India?

¿Cuáles son algunas de las soluciones de transferencia de archivos confiables, aptas para dispositivos móviles y confiables para el desarrollo de aplicaciones móviles?

¿Cuáles son todos los proveedores de API de SMS masivos (en todo el mundo)?

¿Cómo están ayudando las empresas de desarrollo de aplicaciones de iPhone en India a las empresas globales en el primer enfoque móvil?

¿Cuál es la mejor plataforma de desarrollo de aplicaciones móviles personalizadas?

Necesita un desarrollador de aplicaciones móviles genuino / auténtico. ¿Hay alguien aquí?