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

No puedo iniciar mi emulador en un estudio de Android en Ubuntu 32 bits. ¿Cómo debo arreglarlo?

Quiero hacer una pequeña aplicación de juegos en Android. No tengo ninguna experiencia en codificación. Por eso quiero contratar a alguien en Freelancer. ¿Debo hacerlo o no?

Probé una aplicación llamada Who Has a Secret Crush on You y los resultados estaban en blanco. ¿Qué hizo que la aplicación dejara de funcionar?

Quiero desarrollar una aplicación de Android. ¿Cuál es la forma más fácil y que ahorra más tiempo para desarrollar e implementar uno en Google Play?

Tengo 16 años y sé algunos conceptos básicos de HTML, Java y C ++. Quiero desarrollar aplicaciones para Android y trabajar en Google. ¿Qué debería aprender a continuación? ¿De dónde debería aprender?

Sé WordPress pero no las cosas de programación. ¿Cómo debo desarrollar el sitio web de mis sueños y cómo puedo hacer una aplicación para Android o Apple para manejar mi negocio?

Si hago un juego para Android, ¿las universidades lo verán como algo grande? ¿Se considerará una buena actividad extra curricular?

Soy un novato en Android. Quiero crear una página de inicio / cierre de sesión en una aplicación de Android. ¿Cómo funcionan los inicios y cierres de sesión? ¿Van a un servidor o un sitio web para su validación, obtienen los datos de una base de datos y luego se autentican?

Quiero empezar a desarrollar ¿Es fácil comenzar a desarrollar para dispositivos móviles (Android) o para la web?

Estoy en H1B con un trabajo. ¿Puedo desarrollar aplicaciones para Android o iOS de forma independiente y luego ganar dinero con los anuncios?

Soy un chico de 16 años y me encanta desarrollar juegos y aplicaciones para Android. Pero ahora estoy pensando en promocionarlo, pero a un costo cero o con un bajo presupuesto. ¿Cómo?

He visto a Belkin Wemo donde los interruptores eléctricos se controlan a través del teléfono inteligente. ¿Cómo puedo hacer esto como mi proyecto M Tech?

Necesito un desarrollador de Android que trabaje conmigo para crear una aplicación que tenga un 99% de posibilidades de adquisición. El desarrollador obtendrá el 30% del monto de la adquisición. ¿Puede usted ayudarme a encontrar uno?

Estoy comenzando una aplicación de Android. No estoy seguro de cómo empezar. ¿Tengo que crear diferentes archivos PSD para varias resoluciones de pantalla? Si es posible, ¿podría tener una buena referencia para seguir?

Tengo 18 años y soy de la India. ¿Qué problemas legales, si los hay, tendré que enfrentar si desarrollo y publico una aplicación de Android simple en Play Store?