Advertisement
  1. Code
  2. Mobile Development

Backend como Servicio para Aplicaciones Móviles

by
Read Time:10 minsLanguages:

Spanish (Español) translation by Pablo Fidalgo (you can also view the original English article)

Si es un desarrollador móvil, usted se estará preguntando ¿cómo gestionar los datos del usuario en su próxima aplicación. ¿Debe usar una base de datos, un servidor dedicado, o tal vez usted puede tan sólo gestionarlo con un front-end? Este artículo le ayudará a tomar mejor una decisión.

1. ¿Qué es el Backend?

Antes de profundizar en los detalles del servicio disponible, vamos a hacernos con algo de terminología de contexto.

Para móviles y aplicaciones web, a menudo hablamos acerca de los front- y back-end. Mientras que el front-end define la interfaz de usuario, interacción con el usuario y presentación de información, el back-end se ocupa de la lógica de negocio, almacenamiento de datos y seguridad. El front-end es el navegador web o dispositivo móvil del usuario y el back-end es el servidor o servidores donde los datos son almacenados y compartidos.

Un número creciente de aplicaciones móviles se basan por lo menos en alguna de las características que requiere un back-end. Usuario y análisis de uso, notificaciones push, extendido de seguridad, comunicación de usuario a usuario (en partidas multijugador o aplicaciones de mensajería, por ejemplo) y monetización de la aplicación a través de anuncios son los ejemplos más comunes.

2. ¿Quién lo desarrolla?

Desde la perspectiva de un desarrollador móvil, el back-end parece ser otro mundo , poblado con bases de datos y servidores. Así que no sólo se espera de los desarrolladores que creen hermosas interfaces móviles de alto rendimiento, sino también deben estar bien informados acerca de la infraestructura de red tales como servidores web, base de datos de software de gestión, lenguajes de scripts de lado servidor y mucho más.

Además, se espera de ellos que sean  expertos en criptografía moderna y seguridad informática, grandes datos y minería de datos, redes de telecomunicaciones móviles (aplicaciones móviles funcionan sobre todo en teléfonos inteligentes conectados a una red de telefonía móvil) y una lista creciente de tecnologías adicionales.

Naturalmente, se desprende que, incluso para desarrollar una aplicación móvil sencilla con un back-end, el desarrollador tiene que dominar varias herramientas y lenguajes que están fuera del ámbito de desarrollo de aplicaciones comunes. Seguramente, esta situación desalienta a muchos de los desarrolladores de integrar un back-end de sus aplicaciones.

3. Back-End como un servicio (BaaS) al rescate

Con cloud computing absorbido en la corriente principal, XaaS (significado BaaS, SaaS, PaaS, etc. — Back-End como servicio, Software como servicio o plataforma como servicio) ya ha comenzado a redefinir la forma en que el software es desarrollado, publicado y consumido.

La idea básica es similar a tener su desarrollo, mantenimiento y gestión externalizada en otra parte. En otras palabras, el back-end está disponible para los desarrolladores como un servicio web.

Mientras que diferentes proveedores BaaS ofrecen diversas características a través de una gran variedad de modelos de precios, la mayoría de ellos utiliza algún tipo de modelo "freemium". Se trata de características tales como almacenamiento de datos, análisis de uso de usuario, notificaciones push y autenticación que se proveen gratuitamente hasta un cierto límite de uso. Cuando el uso excede ese límite o se solicitan características adicionales , se cobra una tarifa. Esto facilita crear y lanzar una aplicación en el nivel de uso gratuito y luego a escala hasta un nivel de pago a medida que consigue clientes.

Normalmente el desarrollador tiene que usar el SDK y API del proveedor del BaaS para conectar su aplicación back-end.

4. Pros y contras de BaaS

La mayor ventaja de BaaS es que libera a los desarrolladores de la carga de construcción y gestión de back-end de sí mismos. Esto permite al desarrollador concentrarse en cosas más importantes, como el diseño de una experiencia de usuario atractiva, que será un factor determinante en éxito de la aplicación. También, ayuda a los desarrolladores evitar curvas de aprendizaje pronunciadas típicamente asociadas con las tecnologías de back-end. Por tanto recorta el coste y el tiempo de desarrollo. También proporciona una forma barata de experimentar con ideas de aplicación y ver cómo funcionan en el mundo real.

Como con cualquier otra cosa, BaaS tiene algunas desventajas. La desventaja más grande es el peligro de que su proveedor de BaaS pronto podría salir de negocio y cerrar el servicio. En tal escenario, incluso si cambia a otro proveedor, puede que necesite rediseñar sustancialmente y recodificar su aplicación, porque el nuevo servicio podría tener una API completamente diferente. En realidad, uno de los más populares proveedores de BaaS, Parse, cerró recientemente, lo que ha afectado a muchos de los desarrolladores (aunque la infraestructura de análisis fue liberada bajo una licencia de código abierto, y han surgido nuevos vendedores para proporcionar un análisis compatible con BaaS).

Otra desventaja es que la personalización de la infraestructura de back-end en un BaaS es a menudo limitada. Eso podría significar que parte de la funcionalidad que desee para su aplicación no está disponible.

5. ¿Cómo elegir un proveedor de BaaS?

Hay varias preguntas que necesita hacerse sobre cada proveedor de BaaS, antes de seleccionar uno para su aplicación móvil.

La primera pregunta es si el proveedor puede satisfacer las necesidades de su aplicación. Cabe mencionar que a veces, redefinir el alcance de su aplicación para que coincida con las características ofrecidas por un proveedor de BaaS puede dar resultados realmente sorprendentes. Pero no renuncies a las características que le dan a tu aplicación su singularidad y atractivo!

La mayoría de los proveedores BaaS ofrece sus servicios, gratuitamente, sólo hasta cierto punto. Este punto limite está generalmente definido por algo así como el número de llamadas de API, número de usuarios activos o un parámetro similar. A veces, puede ser muy difícil para el desarrollador prever la cantidad de uso o el número de usuarios de la aplicación. Así que es posible acabar con una plataforma que no es rentable para el desarrollador.

Compruebe de antemano mediante la proyección de los costos y los ingresos para una gama de valores posibles que corresponden al uso o el número de usuarios. A continuación, puedes ver cuánto de los ingresos de la app iría a las cuotas del BaaS  y ajustar su modelo de ingresos si es necesario. Por otra parte, el desarrollador puede buscar un proveedor de BaaS cuyo modelo se ajuste mejor con el modelo de ingresos de la app.

Debido a que hay límites a la personalización, algunas aplicaciones pueden ser difícil o imposible desarrollar con algunas de las ofertas estándares de BaaS. Curiosamente, algunos proveedores de BaaS ofrecen características más especializadas dirigidas a un tipo específico de aplicación, tales como juegos. Si su aplicación cae en esta categoría, hay una mayor posibilidad de que la función requerida sea provista por determinado proveedor. Tienes que hacer un poco de investigación acerca de qué proveedores de BaaS ofrecen  las características específicas de tu  aplicación objetivo.

El desarrollador también debe tener en cuenta el ciclo de vida de la aplicación. Cuanto mas larga la vida de la aplicación, mayor será el costo de desarrollar con el proveedor de BaaS. Para una aplicación que vaya a funcionar a largo plazo podría merecer la pena desarrollar un back-end propio.

6. Proveedores populares de  BaaS

Ahora que ya tenemos algunas ideas de BaaS desde el punto de vista de un desarrollador y un fundador de una startup de la aplicación, vamos a ver algunos de los populares paquetes de BaaS y sus características. Mientras que la industria está dominada por los proveedores comerciales, un conjunto de aspirantes a los proveedores de código abierto también parecen estar alzándose.

Firebase

La plataforma de Google BaaS, Firebase, ofrece una extensa lista de características que se clasifican en tres etapas, a saber, desarrollar, ganar y crecer. La etapa Desarrollo consiste en bases de datos en tiempo real, autenticación, mensajería, almacenamiento, cloud hosting, laboratorio de pruebas(para probar aplicaciones en un dispositivo) e informes de ruptura. Al ser un proveedor comercial, también ha integrado su plataforma de AdMob para monetizar su aplicación. Más en la senda del crecimiento, usted encontrará las características tales como indexación de App, AdWords, notificaciones y mucho más.

Porque es de Google, el creador de Android, Firebase es generalmente visto como una plataforma de Android. Sin embargo, el SDK de Firebase también está disponible para iOS.

Aquí en Envato Tuts +, tenemos una serie de tutoriales y cursos para ayudarle a empezar con Firebase. ¡Échales un vistazo!

AWS 

Otro proveedor comercial, Amazon Web Services (AWS), fue uno de los primeros proveedores de PaaS. Cuenta con un completo conjunto de servicios en la nube y herramientas que lo acompaña, con control, si usted lo desea, sobre cada aspecto de sus servidores virtuales. De hecho, muchos otros proveedores de servicios cloud utilizan AWS de fondo.

Todo este potencial tiene sin embargo un coste, ya que — AWS tiene una curva de aprendizaje mucho más pronunciada que otros proveedores de BaaS. Incluye SDK móvil, correo electrónico y notificaciones de SMS, analytics app y la granja de dispositivo para probar su aplicación en diferentes dispositivos móviles.

Back4App (Parse SDK) 

Parse fue una plataforma popular de BaaS, pero lamentablemente Facebook ha decidido cerrarlo. Pero no te preocupes que el SDK de Parse se muera! Facebook retiró el servicio de alojamiento de parse.com en enero de 2017, pero el SDK de Parse ha pasado a ser de código abierto. El SDK de Parse tiene un montón de grandes desarrolladores que trabajan en él, y hay un número de nuevo sitios web que ofrecen hosting de back-end como servicio.

Uno de los mejores es Back4App. Tiene un nivel gratis con un generoso presupuesto para almacenamiento y peticiones, así como APIs de Android y iOS.

Mesosfer 

Presentamos su BaaS altamente elástico, Mesosfer es un proveedor comercial con interesantes características que soporta móviles, web y IoT incluso integrado aplicaciones.

BaasBox 

A diferencia de los anteriores miembros de esta lista, BaasBox es un proveedor de BaaS de código abierto. El desarrollador y las estadísticas de uso del API que se muestran en su sitio web sugieren un proveedor competitivo y capaz, comparable con los proveedores comerciales.

Apache Usergrid 

Otro BaaS de código abierto es Usergrid de Apache (del creador de la popular web server). Usergrid soporta ejecución en infraestructura de servidores tradicionales, permitiéndole implementar su propia plataforma de BaaS. Las características incluyen gestión de usuarios, archivo y almacenamiento de datos y recuperación.

Azure Mobile Services 

Microsoft ha añadido una plataforma BaaS a Azure, la popular suite de servicios en la nube. Azure Mobile Services tiene soporte para notificaciones push, sincronización de datos y autenticación. Para los desarrolladores que trabajan en el dominio de la empresa, Azure Mobile Services también tiene soporte para conectividad a redes corporativas, uso de tecnologías como VPN y Active Directory. Azure Mobile Services, demostrando la apuesta de Microsoft por el desarrollo multiplataforma, funciona en Android, iOS y por supuesto Windows Phone.

Apple CloudKit 

Apple presentó su framework CloudKit junto a iOS 8 en 2014. Mientras que su principal propósito era actuar como una base de datos para aplicaciones de iOS, CloudKit también ofrece muchas otras características, incluyendo las notificaciones push. Una de las mejores cosas de CloudKit para algunos desarrolladores es cuánto obtienes de forma gratuita. Por ejemplo, con CloudKit, hay no hay límite en el número de notificaciones push que puede enviar a sus usuarios.

Sin embargo, una desventaja de la que debes ser consciente es que cuando se utiliza CloudKit es que no está disponible actualmente en plataformas distintas de Apple. Eso significa que si usted quiere crear una versión de su aplicación para Android, CloudKit no funciona!

7. Conclusión

BaaS es una solución práctica y oportuna al problema de añadir un back-end para sus aplicaciones móviles. También ayuda al desarrollador a gestionar su limitado tiempo de la mejor manera posible. Hay un número creciente de proveedores de BaaS ahí afuera, y ahora usted sabe cómo hacer uso de ellos!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.