En este artículo vamos a platicar sobre una tecnología que se ha robado la atención y los aplausos en los últimos años,Firebase
Firebase comenzó a darse a conocer gracias a que permitía implementar una base de datos en tiempo real para aplicaciones móviles de manera sencilla, en otras palabras tenias un backend disponible para tus aplicaciones con tan solo un par de clics. El tipo de bases de datos que se implementa son NoSQL.
Este fue el comienzo de Firebase, ahora Firebase es mucho mas que esto.
Hace un par de años Google compra a la compañía o proyecto como lo quieras ver y entonces comienza a integrar algo mas que solo una base de datos, Firebase podemos decir que ahora es una plataforma completa.
Ahora Firebase cuenta con todo eso:
- Autenticación
- Cloud Storage
- Test Lab (Android)
- Crash Reporting
- Cloud Functions
- Hosting
- Supervisión del rendimiento
- Google Analytics
- Dynamic Links
- Invites
- Cloud Messasing
- Remote Config
- App Indexing
- Adwords
- Realtime Database
En la lista anterior podemos observar que Firebase es ahora una solución completa para un desarrollador. En principio Firebase fue diseñado para aplicaciones iOS y Android, aunque hoy en día puedes aplicarlo para tus proyectos web sin ningún problema.
Cada funcionalidad o herramienta viene siempre con la descripción de que tecnologías podemos aplicar:
- Android
- iOS
- Web
Antes de tomar una decisión de aplicar debes de consultar para ver si tu proyecto lo puede implementar, aunque debemos de hacer un paréntesis para comentar que la tecnología que cuenta con el acceso a la mayoría de las opciones por obvias razones Android ya que como sabemos le pertenece a google.
Ahora hablaremos de algunas de las posibles implementaciones:
Autenticación
Cuando queremos agregar esto a un proyecto, sea web o una aplicación móvil normalmente iniciamos con la implementación de un servidor, creación de una bd, un webservice de respuesta y lo clásico para una comunicación básica de verificación de usuario y contraseña, en firebase nos ahorramos todo eso.
Firebase cuenta con un SDK que nos permite utilizar ya proveedores como Facebook, Twitter, Google y otros para verificar ya con cuentas que puede tener el usuario.
Podemos tener autenticación con:
- Github
- Personalizada
- Anónima
Al tener nosotros implementado el SDK de Firebase ya contamos con el acceso a esto y nos evita estar poniendo los SDK de cada plataforma y muchos minutos de implementación por cada una de ellas.
Analytics
Si ya utilizaste Google Analytics en una web te puedes imaginar que es lo que Firebase Analytics puede hacer por nosotros, puede describirnos los comportamientos del usuario dentro de la aplicación, los eventos y todo lo que sucede mientras el usuario esta dentro de neustra aplicación. Debemos de agregar que todo esto es gratuito e ilimitado.
La idea es que podamos tomar decisiones dentro de nuestra aplicación para mejorar la experiencia de usuario, el incremento de ventas y optimización de algunas funcionalidades.
Esta opcion esta solo disponible para iOS y Android ya que sabemos que Google Analytics se encarga de esto mismo pero para una web.
Cloud Messaging
Algo que tiene a los desarrolladores preocupados últimamente sin importar si es una web o una aplicación móvil son las notificaciones.
Cloud Messaging es una solución para el manejo y envío de notificaciones de forma gratuita y segura.
Este tipo de mensajes se utilizan bastante para lograr una sincronización y para lograr una interacción segura con el cliente, lo puedes aplicar para aplicaciones iOS, Android y para un sitio web.
La única limitante es en el envío de mensajes, en donde solo puedes transmitir una carga de máximo 4kb, aunque parece que es poco para un mensaje es mas que suficiente. Para enviar las notificaciones se utiliza el protocolo HTTP o XMPP.
Realtime Database
Podemos decir que esta es la característica histórica de Firebase ya que se hizo popular en sus inicios por esta.
El objetivo principal de esta implementación es lograr almacenar y sincronizar datos con una base de datos del tipo NoSQL, lo más interesante es que la sincronización se realiza de forma automática gracias a los métodos y funciones ya definidos previamente que se encargar por si solos de notificar los cambios y mostrarlos.
En mi experiencia te diría que es algo genial, si lo implementas bien no tienes que trabajar mucho para lograr sincronizaciones como las notificaciones de Facebook, de Twitter o Gmail, estas implementando tecnología que las grandes compañías están utilizando en estos momentos.
Los datos se almacenan en formato JSON así que en realidad el manejo es de los mas sencillo para un desarrollador hoy en día ya que este formato se implementa en cualquier plataforma.
Algo que preocupa en principio a todos es el problema de la implementación de las bases de datos sin conexión, Firebase se adelantó a esto y ya tiene contemplada esta posibilidad, si tu haces un cambio y no cuentas con conexión, en el momento que regresa la conexión se sincroniza con el estado de los datos y listos, logramos una sincronización sin preocuparnos mucho por la lógica y el proceso.
Como puedes leer esta es una de las grandes opciones de implementar firebase.
Conclusión
Firebase es de las últimas tecnologías que han venido a revolucionar el desarrollo en general ya que tiene un fin:Que el desarrollador se preocupe por la aplicación ya que el backend o los servicios del lado del servidor estaban empezando a preocupar mucho a los desarrolladores, de nueva cuenta nos preocupamos únicamente por el desarrollo.
En artículos posteriores estaré realizando algunos ejemplos de implementación de Firebase y de algunas funcionalidades para que aprendamos mas de la plataforma.
Tengo el honor de escribir un artículo semanal para EDteam así que si tienes alguna sugerencia de tema o comentarios puedes dejarlo aquí mismo o hacérmelo llegar por: