Firebase:Una plataforma integral para el desarrollo de aplicaciones Web y Móviles

Firebase:Una plataforma integral para el desarrollo de aplicaciones Web y Móviles

Álvaro Manjarres Merino, Senior Mobile Developer & Team Leader en SNGULAR

Álvaro Manjarres Merino

Senior Mobile Developer & Team Leader en SNGULAR

18 de septiembre de 2024

¿Qué es Firebase?

Firebase es una plataforma en la nube destinada al desarrollo de aplicaciones web y móviles que ayuda a simplificar el desarrollo de las mismas. Para ello proporciona un conjunto de herramientas destinadas a 4 objetivos principales: desarrollo, crecimiento, monetización y análisis de datos

Gracias a esta plataforma, los desarrolladores podremos dedicarle menos tiempo al backend de las aplicaciones, centrándonos así en la experiencia del usuario y en la innovación de características, lo que permite acelerar el ciclo de desarrollo y ofrecer productos de alta calidad de manera más rápida y eficiente. Todo esto difiere de la programación de software tradicional, donde normalmente implicaba desarrollar tanto la parte frontend como el backend.

Firebase1.webp Programación tradicional VS moderna con Firebase

Historia de Firebase

Fundación y adquisición de Google

Firebase fue creada en 2011 a partir de Envolve, una startup que proporcionaba a los desarrolladores una API para facilitar la integración de un chat online en sitios web, la cual fue fundada por James Tamplin y Andrew Lee.

Pronto, James y Andrew descubrieron que dicha API se estaba utilizando para sincronizar datos en tiempo real por parte de aplicaciones que no estaban ligadas al chat online. Fue en ese momento cuando decidieron separar el sistema de chat y la arquitectura en tiempo real que lo impulsaba, creando de esta forma Firebase en ese mismo 2011 y lanzándolo al público en abril del 2012 con Firebase Realtime Database como primer producto, permitiendo así la sincronización de datos en dispositivos móviles (Android e iOS) y web. 

En octubre de 2014 y tras el gran éxito de Firebase en la comunidad, ésta fue adquirida por la multinacional estadounidense Google, lo que marcó un hito histórico para la compañía. Un año después, Google adquirió Divshot, herramienta orientada a la creación de páginas web, la cual fusionaron con Firebase.

Transformación hacia una plataforma integral

Después de su adquisición por el gigante tecnológico, Firebase continuó evolucionando bajo el paraguas de Google. Fue así como en los próximos años se integró con otros servicios de Google, tales como Google Cloud Platform, Admob o Google Ads para ofrecer productos a mayor escala para los desarrolladores de software. 

Además, se fueron agregando nuevas funcionalidades con las que lograron aumentar considerablemente el número de usuarios: almacenamiento en la nube, autenticación de usuarios y notificaciones push. 

En 2016, la compañía de Google lanzó una nueva actualización con importantes cambios en su interfaz de usuario, lo que mejoró en gran medida la usabilidad, así como nuevas herramientas para el desarrollo de apps móviles y web. Asimismo, se anunciaron nuevas integraciones conocidas, entre ellas la de Google Analytics. Desde 2017 en adelante, Firebase fue consolidándose como una plataforma integral destinada al desarrollo de aplicaciones, donde proporcionaban diversos servicios desde el backend (almacenamiento en la nube, envío de notificaciones push, …), pasando por las analíticas hasta la parte de monetización. 

Desde el 2018 hasta el presente, son numerosas las actualizaciones y mejoras recibidas por parte de Firebase. En mayo de 2018 lanzaron Firebase ML Kit, librería con capacidades de aprendizaje automático (reconocimiento de texto, etiquetado de imágenes o detección de rostros, entre otras muchas) creada para los desarrolladores de aplicaciones móviles. Entre el 2019 y el 2022 se presentaron las Firebase extensions (soluciones empaquetadas diseñadas para aumentar la productividad y las funcionalidades de las aplicaciones) y App Check, producto de seguridad que se describe en los siguientes párrafos.

Asimismo, se introdujeron importantes mejoras en productos como Remote Config, A/B Testing o Crashlytics.

Desde el 2023 hasta la fecha, se han continuado optimizando herramientas de desarrollo, análisis y capacidades de machine learning, con un fuerte enfoque en la seguridad, el cumplimiento normativo y la personalización de la experiencia del usuario.

Ventajas del uso de Firebase

En el competitivo mundo del desarrollo de aplicaciones móviles y web, encontrar una plataforma integral que combine potencia, facilidad de uso y fiabilidad es fundamental para el éxito de cualquier proyecto. En este contexto, Firebase emerge como una solución destacada que ha transformado la forma en que los desarrolladores construyen y gestionan aplicaciones en línea, permitiendo crear soluciones de forma rápida y sin preocuparse por las complejidades técnicas existentes.

En este apartado, examinaremos las distintas ventajas que convierten a Firebase en la elección mayoritaria por los desarrolladores de software y cómo éstas pueden impulsar el éxito de los proyectos.

Facilidad de uso y rapidez de desarrollo

Firebase destaca por su facilidad de uso e integración en las aplicaciones. Su interfaz intuitiva y documentación detallada para todas las plataformas la convierten en una solución accesible a todo tipo de desarrolladores. 

Asimismo, podremos hacer uso de los distintos servicios de Firebase con muy pocas líneas de código, lo que acelera el proceso de desarrollo y reduce la curva de aprendizaje.

Capa gratuita y escalabilidad

Un aspecto importante de Firebase es que dispone de una capa gratuita que incluye un conjunto importante de servicios, lo que le convierte en una opción perfecta para todo tipo de proyectos, desde los más iniciales hasta avanzados. 

Entre estos servicios sin coste alguno se encuentran algunos como A/B Testing, Analytics, App Distribution, Cloud Messaging, Crashlytics o Remote Config, tal y como se menciona en la documentación oficial de Firebase

Otros como el Cloud Storage, Hosting o Realtime Database limitan su capacidad de uso en la capa sin coste. Sin embargo, Firebase está diseñado para escalar de forma automática según las necesidades de cada aplicación, por lo que se elimina la preocupación por la escalabilidad de la infraestructura. De esta forma, se permite a los equipos que se centren en la creación de productos de calidad. 

Asimismo y dado que Firebase cuenta con el respaldo de Google, garantiza un alto nivel de rendimiento y disponibilidad.

Multiplataforma

Firebase es compatible con aplicaciones móviles (Android e iOS), aplicaciones web (proporciona SDKs para JavaScript) y videojuegos (Unity y C++), pero además también dispone de soporte para Flutter. Por tanto, es una muy buena alternativa para cualquier tipo de aplicación a desarrollar.

Mejora contínua

Las constantes evoluciones y mejoras garantizan que los equipos siempre tengan acceso a las últimas tecnologías y herramientas para mantenerse al día con las últimas tendencias del mercado.

Integración con herramientas

Firebase nos permite sacarle más partido a sus herramientas gracias a las distintas integraciones posibles. Entre ellas se encuentran plataformas de Google como Google Cloud Platform, Google Analytics, Google Ads, Google App Campaign o Google Marketing Platform. Con todo ello se permite simplificar el análisis de los datos, promocionar las aplicaciones a través de medios como Google Play, Youtube, o los navegadores actuales, mostrar anuncios gratuitos para maximizar los ingresos e incluso ayudar a los especialistas en marketing a planificar, ejecutar, medir y optimizar sus campañas de marketing en línea.

Otras de las integraciones permitidas por Firebase son JIRA para la gestión de proyectos, Android Studio para el desarrollo de aplicaciones móviles Android, Slack orientado a la comunicación de equipos, BigQuery para análisis de datos a gran escala y Data Studio, herramienta destinada a la visualización de datos.

Comunidad

La comunidad de Firebase es otra de sus grandes ventajas, pues está compuesta por una amplia red de desarrolladores que comparten su experiencia a través de foros y redes sociales. De esta forma, lograremos resolver nuestras dudas con facilidad y disponer de una guía detallada para la integración de dicha plataforma. 

Asimismo, ésta ofrece oportunidades para establecer contactos y colaborar con otros desarrolladores que comparten intereses y objetivos similares. Esto puede llevar a asociaciones, proyectos conjuntos y oportunidades de crecimiento profesional.

De la misma manera, Firebase recopila información y comentarios de la comunidad de forma recurrente para así poder seguir mejorando y brindando una mejor experiencia a los programadores.

Productos de Firebase

Los distintos productos de Firebase pueden ser catalogados en dos grandes bloques, productos de compilación, centrados en ayudar a desarrollar y mejorar las aplicaciones, y productos de ejecución, los cuales están orientados a comprender y mejorar el rendimiento y la estabilidad de las aplicaciones. En la siguiente ilustración se muestran todos los servicios proporcionados por Firebase dentro de su categoría correspondiente.

Firebase_products1.webp Productos de Firebase

Productos de compilación

Gracias a los distintos productos de compilación que Firebase ofrece, es posible acelerar el desarrollo de las aplicaciones y adentrarse así en el mercado de forma rápida y segura. Además, todos los servicios permiten una gran escalabilidad de forma automática según las necesidades de cada aplicación. 

A continuación, se describen los diferentes productos orientados a la compilación, así como sus beneficios y casos de uso en el mercado.

  • App Check

Solución destinada a proteger los recursos backend de técnicas maliciosas como la suplantación de identidad o fraudes financieros. Se trata de una capa adicional que proporciona una protección extra gracias a la detección de tráfico entrante y bloqueo de todo aquel tráfico con credenciales inválidas. 

App Check es compatible con aplicaciones web y móviles Android e iOS sin configuración adicional. Además, su integración funciona no solo con productos de Firebase tales como Cloud Firestore, Realtime Database, Cloud Storage, Authentication o Cloud Functions sino que también es posible añadir APIs personalizadas. 

Además, esta solución soporta los siguientes servicios como proveedores de certificación: Device Check o App Attest para plataformas Apple, SafetyNet o Play Integrity para Android y reCAPTCHA Enterprise para web. 

El funcionamiento de este producto consiste en que cuando la app interactúa con el proveedor elegido, el SDK de App Check genera un token de atestación. Dicho token es cacheado por el SDK de Firebase y se manda al backend en cada una de las peticiones correspondientes hechas por la app. Finalmente, se verifica la validez del token para así asegurar que el origen es legítimo.

Uno de los aspectos a destacar de App Check es el nivel de seguridad que aporta, el cual depende del proveedor de servicios que la app esté utilizando. En caso de una web que utilice reCAPTCHA v3 solo podrá validar que las peticiones provienen de una instancia legítima, mientras que una app Android que haga uso de SafetyNet podrá además validar si las peticiones provienen de un dispositivo rooteado.

Casos de uso

Estos son algunos casos de uso de ejemplo sobre App Check de Firebase en diferentes ámbitos: 

  • E-commerce: Tiendas online que necesiten protección frente a fraudes financieros y bots maliciosos. 

  • Educación: Plataformas e-learning orientadas a la docencia que necesiten asegurar su integridad y garantizar la protección de los datos de los estudiantes. 

  • Empresas tecnológicas: Desarrolladores de aplicaciones que busquen proteger sus datos y servicios contra abusos. 

  • Salud: Aplicaciones de medicina que necesiten garantizar la integridad de los datos.

Cuotas

El uso de App Check está condicionado por las cuotas y límites de los proveedores de certificación que se usen. A continuación, se detalla el límite de cada uno de éstos: 

  • El uso de Device Check y App Attest está sujeto a cualquier cuota o limitación establecida por Apple. 

    • En el caso del App Attest de Apple, existe un límite de 100 solicitudes por segundo para la certificación de pares de claves, cuyo valor puede variar en función de la carga de los servidores de Apple. Una vez se certifica el par de claves, las posteriores se realizan de forma local, por lo que no es necesario utilizar los servicios de Apple hasta la caducidad del certificado correspondiente.
  • Play Integrity: 10.000 llamadas diarias. Sin embargo, siempre y cuando la app esté disponible en Google Play, será posible solicitar un aumento del número máximo de llamadas al día mediante el siguiente formulario

  • reCAPTCHA Enterprise no tiene costo hasta 1 millón de llamadas por mes. Cuando se supere dicho límite se deberá consultar el enlace correspondiente.

  • App Hosting

App Hosting es un producto de alojamiento web que compila y ejecuta de forma automática aplicaciones web full-stack basado en lo detectado en el código fuente. Optimiza el desarrollo y la implementación de aplicaciones en Angular y Next.js gracias a la integración con el framework, GitHub u otros productos de Google tales como Authentication, Vertex AI o Cloud Firestore. Es una solución diseñada para soportar frameworks modernos server-rendered y cumple con las buenas prácticas para las aplicaciones enterprise-ready.

No solo permite crear el backend sino que también es capaz de administrar servicios como Cloud Build, Cloud Run y ​​Cloud CDN, de tal forma que escale de forma automática en función de la demanda, con lo que así llegar más rápido al mercado. Es normal que a medida que el volumen de usuarios de una app evoluciona, factores como la seguridad, los controles de acceso o la escalabilidad tomen mayor importancia, sin embargo, lo que este producto pretende es que los desarrolladores se despreocupen de todo ello gracias al soporte y la experiencia de Google Cloud. 

Su integración con GitHub es una de las funciones clave de App Hosting, dado que un git merge es todo lo que se necesita para lanzar una nueva versión de la aplicación web. Así pues, cada vez que se suban cambios a una rama específica, el servicio de alojamiento de Firebase desplegará automáticamente. Su integración con la plataforma de Developer Connect, servicio de Google Cloud, es totalmente clave, dado que le permite crear y mantener conexiones con herramientas de gestión de código fuente como GitHub.

Asimismo, la integración con la consola de Firebase permitirá a los usuarios monitorizar los distintos lanzamientos de las aplicaciones, de tal forma que gracias a las trazas y métricas que éste proporciona, es posible estar al tanto de lo que ocurre en todo momento.

Cuotas

  • Almacenamiento: Sin coste hasta los 5GB al mes. Una vez superado, el precio del GB será de 0.10$.

  • Ancho de banda sin caché: Sin coste hasta los 5GB al mes. Una vez superado, el precio del GB será de 0.20$.

  • Ancho de banda con caché: Sin coste hasta los 5GB al mes. Una vez superado, el precio del GB será de 0.15$.

  • Authentication

La autenticación es un proceso fundamental en prácticamente toda aplicación, sin embargo, su implementación requiere de un almacenamiento seguro de los datos haciendo uso de técnicas de cifrado para las contraseñas, así como otras medidas de protección contra ataques por inyección SQL o de fuerza bruta. Además de todo esto, es necesario llevar a cabo una gestión de la sesión del usuario mediante el uso de tokens, lo que complica aún más la lógica.  

Es por ello que Firebase presenta Authentication, un producto destinado a facilitar la creación de sistemas de autenticación seguros que admite cuentas de correo electrónico y contraseña, autenticación telefónica, autenticación anónima e integración con proveedores de identidad federada, tales como Google, Facebook, Apple, X o GitHub. 

Presenta una interfaz de usuario sencilla y totalmente personalizable para cada aplicación, donde se pueden customizar las cadenas de texto, paleta de colores o logos. A continuación, se muestra un ejemplo de pantalla de login simple implementado con Authentication.

Firebase_Auth_login_v2.png Ejemplo login con Firebase Authentication

Su implementación es realmente rápida, tan solo alrededor de 10 líneas de código nos bastarán para tener un sistema de login integrado en las aplicaciones, frente al largo desarrollo y mantenimiento que supondría un sistema de autenticación propio. 

Asimismo, la seguridad en este producto desempeña un papel vital, pues los datos transmitidos entre las aplicaciones y los servidores de Firebase están cifrados mediante HTTPS, las contraseñas se mantienen cifradas con algoritmos de hashing seguros y los demás datos del usuario, tales como nombres o direcciones de email están protegidos mediante medidas de seguridad físicas y lógicas en los centros de Google.

Aplicaciones como Shazam, The New York Times, Alibaba, Trivago o IKEA hacen uso de este gran producto para gestionar la autenticación y ofrecer una experiencia de usuario totalmente personalizada.

Cuotas

  • Gratuito hasta 10.000 verificaciones de usuarios al mes. Una vez sobrepasado dicho límite, el coste será de 0.01$ por usuario adicional. 

  • En cuanto a la verificación de usuarios a través de SMS, los 10 primeros diarios son gratuitos y posteriormente se aplicarán las tasas correspondientes en función del país.

  • Firebase ML

Firebase ML ofrece un conjunto de servicios de machine learning o aprendizaje automático fácilmente integrables en las aplicaciones móviles Android e iOS. 

No es necesario disponer de altos conocimientos en ML, dado que Firebase permite implementar la funcionalidad pertinente con muy pocas líneas de código. Por otro lado y en caso de ser un desarrollador experimentado en el área del aprendizaje automático, Firebase también da la opción de usar modelos personalizados de TensorFlow.  

Esta herramienta nos proporciona un conjunto de APIs para los casos de uso más comunes en los dispositivos móviles: reconocimiento y traducción de texto, reconocimiento de entidades en texto (nombres de personas, lugares, …), etiquetado de imágenes, escaneo de código de barras y códigos QR o detección de rostros y objetos. Una de las grandes ventajas de este producto es que aprovecha la tecnología de aprendizaje de Google Cloud, por lo que el nivel de precisión obtenido será realmente elevado. 

En caso de necesitar de un modelo de detección más específico y personalizado para la aplicación, existe el conocido como AutoML Vision Edge, herramienta destinada al entrenamiento de modelos de clasificación de imágenes. Gracias a éste, los modelos podrán ser entrenados con imágenes y categorías propias a través Google Cloud y ser desplegados de forma rápida y eficiente en los dispositivos. 

Algunos de los beneficios de Firebase ML residen en la facilidad de integración en los proyectos sin necesidad de conocimientos avanzados en la materia, despliegues rápidos en los dispositivos, por lo que la funcionalidad podrá ser empleada tanto en modo online como offline, es multiplataforma y por tanto podrá ser integrado en aplicaciones móviles Android e iOS y finalmente destacar su amplia personalización, pues de acuerdo con lo ya mencionado, los modelos pueden ser entrenados de forma individual para cada app. 

Compañías como ebay Motors ya utilizan la herramienta de aprendizaje automático de Firebase para categorizar las imágenes de los vehículos de forma rápida, disminuyendo así los tiempos para la creación de fichas de la app y sus costes, brindando la mejor experiencia a los usuarios.

Casos de uso

Here are some Firebase ML use cases in different domains:

A continuación, se enumeran algunos casos de uso de Firebase ML en distintos ámbitos: 

  • Viajes: Aplicaciones con traducción de texto en tiempo real para ayudar a los usuarios en países extranjeros. 

  • Compras: Apps destinadas a analizar y categorizar imágenes de productos para así ayudar a los usuarios a encontrar items similares.

  • Fotografía: Detección de rostros para aplicar diferentes filtros de forma automática. 

  • Noticias: Aplicación dotada de reconocimiento de texto para extraer las distintas categorías de los artículos y ofrecer contenido exclusivo y personalizado para los usuarios.

Cuotas

  • Las APIs de Firebase ML en los dispositivos son totalmente gratuitas y ejecutables tanto en modo online como offline. 

  • Sin embargo, las APIs en la nube, las cuales pueden ofrecer resultados más precisos, tienen un coste en función de su uso: 

    • Las herramientas de reconocimiento de texto, etiquetado de imágenes o reconocimiento de entidades en texto disponen de 1.000 llamadas gratuitas al mes y después se cobrará 1.50$ por 1.000 llamadas adicionales. 

    • El servicio de traducción de texto proporciona una capa gratuita de 500.000 caracteres al mes y una vez sobrepasada dicha cifra, se cobrarán 20$ por millón de caracteres.

  • Otros productos de compilación

En el presente apartado se describen algunos otros servicios de compilación de Firebase, los cuales son también utilizados en multitud de aplicaciones web y móviles.

Firestore es una BBDD NoSQL que nos permite almacenar, sincronizar y consultar datos para aplicaciones a escala global. 

Genkit nos da la posibilidad de compilar, probar e implementar funciones sofisticadas basadas en la inteligencia artificial. Tiene el objetivo de simplificar la integración de componentes de IA a través de distintos complementos o plantillas ya creadas.

Cloud Functions permite ejecutar código backend sin necesidad de administrar servidores. Requiere de poco mantenimiento y garantiza la seguridad y privacidad de las funciones implementadas. De cara a redactar funciones, será necesario disponer de un entorno de Node.js.

Cloud Storage es un servicio destinado a almacenar y procesar rápidamente contenido generado por el usuario, tales como audio, vídeos o fotos. 

Realtime Database es una BBDD NoSQL alojada en la nube capaz de almacenar y sincronizar datos en tiempo real. Es capaz de trabajar sin conexión a internet, ya que el SDK  usa la caché del dispositivo para publicar y almacenar cambios, de tal forma que en el momento de que la conexión se restablezca, los datos locales se sincronizan con la nube. 

El producto de Data Connect permite compilar de forma rápida aplicaciones móviles y web seguras y escalables en PostgreSQL. Asimismo, simplifica la administración de consultas a BBDD, ya que permite definir esquemas y datos a través de interfaces de GraphQL. 

Firebase Extensions es un conjunto de extensiones diseñadas para aumentar la productividad en el día a día y ofrecer funcionalidad extra a las aplicaciones. Algunos ejemplos son el envío de mensajes a Telegram cuando un usuario se da de alta, creación y despliegue de chatbots con Gemini API o el reescalado de imágenes subidas a Cloud Storage, entre muchas otras.

Conclusiones

En resumen, Firebase se nos presenta como una plataforma integral y versátil que sin duda alguna ha revolucionado el ámbito del desarrollo de aplicaciones web y móviles. Se trata de una herramienta que ha evolucionado de forma constante desde su creación en 2011 y que en estos momentos se enfoca en la seguridad, experiencia de usuario y machine learning. 

Firebase no solo elimina la complejidad del backend sino que también nos ofrece una gran escalabilidad para adaptarse a todo tipo de proyectos, independientemente del volumen de usuarios que dispongamos. 

Gracias al conjunto de herramientas o productos que dispone Firebase, éste se ha convertido en la opción prioritaria para muchos usuarios y proyectos actuales en SNGULAR, es por ello que actualmente existen multitud de casos de éxito gracias al uso de dicha herramienta. 

En el siguiente artículo exploraremos en profundidad algunos de los productos de ejecución de Firebase que más se usan en la actualidad, los cuales no solo complementan sino que potencian aún más las capacidades de esta magnífica plataforma.

Bibliography

Álvaro Manjarres Merino, Senior Mobile Developer & Team Leader en SNGULAR

Álvaro Manjarres Merino

Senior Mobile Developer & Team Leader en SNGULAR


Nuestras últimas novedades

¿Te interesa saber cómo nos adaptamos constantemente a la nueva frontera digital?

“Next Big Thing” Strategy
“Next Big Thing” Strategy

Evento

17 de septiembre de 2024

“Next Big Thing” Strategy

Gestionando el Estado del Sistema en Contract Testing con Pact
Gestionando el Estado del Sistema en Contract Testing con Pact

Tech Insight

15 de septiembre de 2024

Gestionando el Estado del Sistema en Contract Testing con Pact

Incorporamos un nuevo equipo especializado en ciberseguridad
Incorporamos un nuevo equipo especializado en ciberseguridad

Corporate news

12 de septiembre de 2024

Incorporamos un nuevo equipo especializado en ciberseguridad

Delivery Modernization: Un enfoque integral para crear software de calidad, eficiente en costes y sostenible
Delivery Modernization: Un enfoque integral para crear software de calidad, eficiente en costes y sostenible

Tech Insight

14 de agosto de 2024

Delivery Modernization: Un enfoque integral para crear software de calidad, eficiente en costes y sostenible