Firebase es la nueva y mejorada plataforma de desarrollo móvil en la nube de Google. Se trata de una plataforma disponible para diferentes plataformas (Android, iOS, web), con lo que de esta forma presentan una alternativa seria a otras opciones para ahorro de tiempo en el desarrollo como Xamarin.

Firebase fue creada por Google su función principal es desarrollar y facilitar la creación de apps para moviles ,firebase inicio gracias a Google que lo compro en 2014 y la fue mejorando gracias a la compra de divshot.

¿Qué servicios nos ofrece?

Los servicios que nos ofrece firebase son las siguientes:

  • Google Analytics for firebase
  • Firebase Realtime Database Firebase Hosting
  • Cloud Functions for Firebase(Beta)
  • Firebase Crash
  • Adwords
  • AdMob
Servicios de Firebase

Ahora vamos a ver, uno por uno, los servicios más destacados que nos ofrece Firebase para trabajar de una manera más sencilla en nuestra aplicación.

Base de datos Realtime

La base de datos de firebase almacena y sincroniza los datos con nuestra base de datos, todo esto se aloja en la nube(internet) estos datos que están en la nube son almacenadas en JSON y se pueden agregar reglas para permitir requests con token o solo desde una URL y los datos de la base se sincronizan con todos los clientes en tiempo real esto ayuda mucho cuando la app no tiene conexión a Internet.

La aplicación de firebase responde aunque no tenga internet esto es gracias al SDK (kit de desarrollo de software) de firebase base de datos Realtime hace que nuestros datos persistan en el disco ,cuando la conexión regresa el dispositivo lo reconoce y lo guarda en el servido actual

Autenticación

Es un servicio que nos simplifica el inicio de sesión y la gestión de la misma en nuestra aplicación. Si la usamos en aplicaciones web o Android Studio es extremadamente fácil de configurar, con un simple método ya podremos guardar un usuario con su contraseña y correo. Firebase guarda datos de conexión en la nube de forma segura así para que las aplicaciones inicie sesión con la cuenta guardada

Almacenamiento

El servicio de almacenamiento de firebase se llama Cloud Storage es un servicio que almacena objetos potente los SDK (kit de desarrollo de software) de firebase para cloud Storage te dan seguridad de Google a la hora de descargar o subir un archivo esto sin importar la calidad de red que tengas, es muy bueno para aplicaciones que requieran guardar archivos del usuario. También nos sirve si queremos subir estáticos ya que existe un botón desde la interfaz o podemos programar algo. En la aplicación que estoy desarrollando actualmente me sirve para subir fotos de restaurantes ya acceder a ellas en cualquier momento.

Hosting

Con una colección de estáticos podemos subir una aplicación y esta automáticamente contará con SSL y HTTP2.Sin necesidad de que configures nada para que el contenido sea de forma segura. Si tenemos una app con Angular o Firebase podemos hacer un build desde nuestros ordenadores y subir estos archivos generados y nos funcionarán sin problemas. Si necesitamos un Backend tendríamos que subirlo a otro lugar o hacer uso de las Cloud Functions.

Cuando subes un archivo se almacena en la cache del SSD esto es muy bueno si el contenido se tiene que entregar el contenido se entregara rápidamente.

¿Como podemos implementar el Hosting en nuestro Firebase?

Para implementar el Hosting lo primero que tienes que hacer es ir pagina de firebase Hosting esto lo podemos encontrar dentro de tu proyecto luego le das comenzar una vez esto tienes que tener instalado los siguiente CLI(Esto es una herramienta de línea de comando),Node.js y rpm una vez realizado esto inicias el node.js acedes a tu firebase que tienes ya activado con el comando firebase login una vez activado tienes que ir a la raíz de tu directorio del proyecto que tienes para hacer esto tienes que poner el comando firebase init. Este comando creara un archivo firebase.json este archivo es configuración de archivo de Hosting gracias al CLI puedes personalizar la configuración del hosting que crearemos. Una vez realizado el comando anterior tienes que implementarlo en tu sitio de firebase para hacer esto ponemos el comando firebase deploy con este comando implementa una actualización en el Hosting una vez esto ya esta implementado en nuestro proyecto luego tienes que poder editar lo que quieras y almacenar lo que quieras

Cloud Functions(BETA)

Cloud Functions es un producto bastante reciente de Firebase que tiene como objetivo la transformación de nuestro código del backend en pequeñas piezas del mismo(funciones). Estas funciones son creadas en NodeJS y se suben asíncronamente desde nuestra aplicación. Al crearse generan una URL a la que podemos llamar desde AJAX para que se ejecute el código pertinente. Firebase nos provee de unos triggers para comunicarnos con ciertas funciones de sus productos.

El código que realizamos se guarda en la nube de Google y se puede ejecutar en un entorno de administrado esto ayuda a que no necesitas administrar tu propio servidor

Laboratorio de tests para Android

Esta sección es de mis favoritas, ya que, como todo desarrollador android al implementar cambios en mi app debo probarlos mil veces para cubrir cualquier error posible, lo cual en muchos casos puede llegar a agobiar. Este servicio nos ofrece la posibilidad de probar los tests de nuestra aplicación en los entornos que configuremos(Dispositivo, versión del IOS), por lo que nos hace una gran parte del trabajo.

Todas estas pruebas en Android se realizan con una matriz creada por ti para que puedas validar tu aplicación.

Informes sobre fallos

Con esta utilidad podemos detectar los errores que aparezcan en nuestras aplicaciones de iOS y Android así como poder erradicarlos a tiempo. Esta herramienta próximamente dará paso a Crashlytics de Fabric, que se integrará como una herramienta más. A día de hoy podemos usar ambos pero mi recomendación es que uses Crashlytics pues es la herramienta que se instaurará en el futuro.

Para que te informe errores en el servidor es recomendado usar Google StackDriver Error Reporting esto te ayudara para que admiten errores de Node.js,python,java,etc

Monitoreo de rendimiento

Esta herramienta te ayudará a medir el rendimiento de tu aplicación y el tiempo que los usuarios pasan durante los diferentes procesos de la misma con el fin de que puedas detectar problemas en el tiempo de carga y prevenirlos antes de que causen cualquier otro tipo de problema o que los usuarios eliminen tu aplicación.

El monitoreo de rendimiento te ayuda mejores el rendimiento de tu aplicaciones de iOS y Android ,también con el SDK (kit de desarrollo de software) de Performance Monitoring puedes recopilar los datos de tu aplicación y luego poder revisarlo y analizar los datos en consola (consola de firebase)

Notificaciones

Este servicio nos permitirá gestionar el envío de notificaciones de forma segura y gratuita a nuestros usuarios con la diferencia de que estas podrán ser programadas acorde a diferentes parámetros.

Configuración remota

Este añadido nos permitirá básicamente modificar el comportamiento y la apariencia de nuestra aplicación que esta en la nube sin que nuestros usuarios tengan que tocar nada y tampoco descargar ninguna actualización por ejemplo:

Puedes cambiar los valores digamos el diseño o modificar un tipo de letra etc.

Enlaces dinámicos

Con los enlaces dinámicos podremos asegurarnos que a pesar de las redirecciones que supone el proceso de instalar una aplicación desde un anuncio, lleguemos a la vista deseada, ganando así una experiencia que el usuario agradecerá.

Si un usuario abre un enlace dinámico en iOS o Android esto puede llevarle directamente al contenido vinculado esto lo mismo pasaría si abre en un navegador escritorio. Los enlace dinámicos funcionan siempre hasta cuando hay que instalar la aplicación

¿Como funciona enlace dinámico?

El funcionamiento del enlace dinámico para crearlo lo primero que tienes que hacer es formar URL y esa URL tiene que estar agregada a los parámetros del enlace dinámico, con esos parámetros especificamos los vínculos que quieres abrir eso si primero tienes que tener instalado en tu aplicación porque si no esta instalado te llevara a la play store para que lo instales y así puedas realizar enlace dinámico.

Admob

Mediante este servicio podremos colocar publicidad para móviles en distintos lados de nuestra aplicación. Muchas aplicaciones gratuitas como pueden ser algunos juegos llevan implementado este sistema de publicidad o similares. Nuestros anuncios pueden ser video o un imagen

Si usas Admob con Google Analytics firebase obtendremos una función adicional que será de análisis y también los datos de uso en la aplicación, esto ayudaría mucho para que nosotros podamos analizar el anuncio

Los lenguajes compatibles con Firebase

Los lenguajes compatibles con Firebase son los siguientes:

  • JavaScript(tanto en el Frontend como con Node)
  • iOS(Swift y Objective C)
  • Android(Java y Kotlin).
  • Python y aplicaciones Java.
  • C++ y Unity.

Coste de uso de Firebase

  • Spark (Gratis)
  • Flame (25€/mes)
  • Glaze (Precio según tus necesidades)