Quiero desarrollar una aplicación de Android que ofrezca contenido a diario. ¿Debo usar firebase o una API REST?

Firebase es una base de datos en tiempo real y la API REST es un protocolo, por lo que es difícil de comparar sin el contexto completo de sus requisitos (base de datos / servidor / arquitectura de software). Sin embargo, haré todo lo posible para enumerar los pros y los contras entre estas 2 tecnologías basadas en mi propia experiencia:

Firebase:

  • Pros:
    • Fácil de configurar, no es necesario alojar un servidor. En su caso, puede crear una aplicación de Android y un sitio web simple para que el administrador cargue los datos en Firebase.
    • Datos en tiempo real (uso esto para uno de mis juegos donde necesitamos colaboración en tiempo real)
    • Bueno para MVP o prototipo de software
  • Contras:
    • Estás arreglado con Firebase. En caso de que necesite cambiar la lógica para consultar datos, debe actualizar su aplicación.
    • Firebase usando NoSQL, si luego descubrió que necesita cambiar a la relación DB, los datos de migración y la corrección de la lógica serán un infierno.

API REST

  • Pros:
    • Usted es flexible para elegir su idioma del lado del servidor (NodeJS, Django, Java, etc.) y la tecnología de la base de datos (NoSQL, base de datos relacional)
    • Su negocio y la capa de presentación están separados, es decir, puede crear fácilmente una nueva aplicación IOS o aplicación web
  • Contras:
    • Necesita alojar su servidor en algún lugar (heroku / AWS / Azure / etc.) y también costará dinero
    • Necesita más tiempo / esfuerzo de desarrollo
    • Necesita más experiencia en desarrollo de software

En conclusión, todo se reduce a su nivel de experiencia, tiempo de comercialización y, lo que es más importante, cuál es el objetivo de su aplicación.

Si desea hacer un mvp de su aplicación y no está seguro de si será un éxito, le recomiendo que use Firebase . Esa es la forma más rápida de validar su idea e incluso si falla, fallará rápidamente.

Si está bastante seguro del potencial de su aplicación, debe elegir REST API . Ahorrará tiempo y dinero a largo plazo.

Para mí, parece que estás preguntando sobre la mejor manera de sincronizar datos entre tu servidor y tu aplicación, en lugar de preguntar qué back-end usar.

Para sincronizar datos, hay dos opciones.

  1. Usted sondea el servidor a ciertos intervalos para ver si los datos remotos han cambiado. Si es así, descárguelo usando la API REST. Esto es bueno cuando los datos cambian con poca frecuencia, es decir,> 15 minutos
  2. Su aplicación y el servidor mantienen una conexión bidireccional persistente para que el servidor pueda enviar datos al dispositivo en tiempo real. Esto es bueno cuando los datos cambian con mucha frecuencia, es decir, <1s

Firebase resuelve el problema descrito en la opción 2. Es una base de datos en tiempo real y su principal controlador de diseño es sincronizar la aplicación con el servidor lo más rápido posible. Esto es importante para juegos y aplicaciones de mensajería.

Este impulso hacia el tiempo real conduce a algunas compensaciones que hacen que Firebase sea menos adecuado para aplicaciones que requieren una gran cantidad de datos estructurados. Consultar datos es mucho más difícil con Firebase de lo que sería con un servidor basado en una base de datos relacional.

Parece que sus datos se actualizarán en su servidor con poca frecuencia, es decir, cada pocas horas en lugar de cada pocos segundos. Por esta razón, probablemente deberías usar una API REST.

Construir una API REST es mucho trabajo. Configure el entorno, la base de datos, los esquemas de datos, las rutas, la seguridad, etc. Configurar Firebase es importar el SDK – hecho.

Si tuviera suficiente experiencia, no habría hecho esta pregunta. Es decir, debe usar Firebase, ya que es la forma más rápida de hacer las cosas. Resuelva el problema, envíe su aplicación. Producto mínimo viable, tiempo mínimo de comercialización.

Firebase será apto para esto si desea agregar contenido manualmente. También puede crear una aplicación o página para agregar contenido. Pero tendrá dificultades para ajustar el contenido en función del usuario.

Firebase es definitivamente más rápido. REST también necesitará más configuración que Firebase, ya que tendrá que configurar una base de datos local o usar un tercero como Realm. Pero Firebase viene todo en uno, por lo que sugeriría usar Firebase.

El uso de firebase definitivamente le daría un comienzo mejorado, porque lo ayudará a agregar funcionalidades básicas con solo un clic del mouse.

No hace falta decir que si eres geek, hazlo todo solo para tener el control total.

¡Firebase es definitivamente tu mejor apuesta!

Firebase le ahorra todo el estrés de configurar una API REST.

More Interesting

Hice una aplicación de Android y sus descargas son más de 500 descargas y no recibí ningún anuncio hasta ahora, ¿es esto normal?

Quiero externalizar un proyecto de aplicación de Android a un profesional independiente. ¿Cuáles son las mejores herramientas (gratuitas) que puedo usar para asignar tareas y rastrear el trabajo?

Estoy interesado en el desarrollo de Android. El estudio de Android necesita 2 GB de RAM, mientras que solo tengo 984 MB y no puedo permitirme aumentarlo. ¿Como lo instalo?

Recibo entre 60 y 80 descargas al día con mi nueva aplicación en la categoría Casino. Solo EE. UU. ¿Es bueno o promedio para una nueva aplicación?

Estoy desarrollando una aplicación para iOS que debería mostrar los bancos de sangre cercanos en un mapa basado en mi ubicación. ¿Cómo logro esto?

Tengo ideas para aplicaciones, ¿a dónde puedo ir para aprender el desarrollo de aplicaciones de Android?

He aprendido el núcleo de Java. Han pasado tres meses y ni siquiera estoy cerca de hacer una aplicación. ¿Cómo aprendo a desarrollar aplicaciones para Android?

Acabo de ser contratado como ingeniero de control de calidad, pero tengo interés en el desarrollo de aplicaciones de Android, ¿qué debo hacer?

He comprado un teléfono inteligente Android. ¿Cuáles son las mejores aplicaciones para ello? Soy médico, ¿me sugiere aplicaciones en consecuencia?

Mi teléfono Android se ha vuelto lento. ¿Que puedo hacer?

Estoy haciendo un BE en informática y tengo que hacer una aplicación de Android que aún no se ha hecho. ¿Cuáles son las nuevas ideas para las aplicaciones de Android?

Estoy pensando en desarrollar una aplicación de juegos para Android. ¿Qué sugerencias sobre los motores de juego son mejores que Unity?

Quiero aprender sobre el desarrollo de juegos de Android. ¿Qué cosas básicas debo saber para comenzar a aprender?

Estoy lanzando una aplicación gratuita. ¿Cómo puedo agregar atractivo para tener más usuarios?

Estoy buscando distribuir una aplicación de Android. ¿Qué empresas me pueden ayudar?