Durante a última conferência Google/IO, a Google apresentou a nova versão de sua API Firebase, um back-end completo para aplicações mobile (Android e iOS) e aplicações web.
Do modelo inicial Mobile-Back-end-as-a-Service (MBaaS), a Google tranformou a plataforma Firebase em uma solução completa de back-end tanto para o desenvolvimento mobile quanto web. A plataforma Firebase possui um SDK e um console para criar e gerenciar aplicações.
A plataforma oferece as seguintes funcionalidades:
- AdMob - integração com o Google AdMob;
- AdWords - integração com o Google AdWords;
- Analytics - um painel para monitorar o comportamento dos usuários da aplicação, segmentação demográfica e desempenho de campanha;
- Autenticação - suporte para autenticação de usuários via e-mail, Facebook, GitHub, Google Sign-In e Twitter;
- Relatório de Erros - monitora os erros da aplicação em todos os dispositivos e é integrado com o Analytics para analisar o comportamento dos usuários após falhas;
- Database - um banco de dados NoSQL utilizado para armazenar dados JSON;
- Dynamic Links - deep links para possibilitar que o usuário acesse páginas internas da aplicação;
- Hosting - uma CDN (Content Delivery Network) distribuída globalmente para servir aplicações web;
- Indexing - utilizado para indexar as aplicações na busca do Google (Google Search);
- Invites - possibilita a troca de informações sobre uma aplicação entre usuários;
- Messaging - o antigo Google Cloud Messaging (GCM) é o novo Firebase Cloud Messaging (FCM);
- Notifications - gerenciamento de notificações enviadas para o seu usuário;
- Offline - possibilita a armazenagem de dados na memória cache local, permitindo assim o funcionamento da aplicação em estado offline;
- Real time - os dados são armazenados em tempo real no banco de dados;
- Remote Config - permite aos desenvolvedores modificar o comportamento e a aparência da aplicação sem requerer que os usuários realizem o download de uma nova versão. Está funcionalidade é utilizada para testes A/B, alterar o tema visual da aplicação ou até mesmo se comunicar com usuários de regiões especificas, etc;
- Storage - armazena as mídias do usuário, como áudio, imagens e vídeos;
- Synchronization - quando os dados são alterados em um dispositivo eles são enviados para o Firebase e então para todos os dispositivos conectados. Caso existam dispositivos offline neste momento os mesmos serão atualizados com a última versão dos dados logo após a conexão com a internet;
- Test Lab - teste a aplicação em dispositivos reais.
Todas as funcionalidades estão disponíveis para dispositivos Android e iOS, com exceção do Test Lab, que ainda não é suportado por dispositivos iOS. Algumas características ainda não são suportadas para aplicações web.
O kit de desenvolvimento de software (SDK) do Firebase atualmente suporta o desenvolvimento nas seguintes linguagens de programação: C++, Java, Javascript, Node.js, Objective-C e Swift. Os frameworks Angular, Backbone e React são suportados através da vinculação de nomes (bindings) diretamente com o banco de dados. A Google também adicionou bibliotecas para auxiliar o desenvolvimento, como: FirebaseUI, Geofire, Firebase Queue, FirebaseJobDispatcher. A Firebase também permite que importe grandes quantidades de dados no formato JSON e também integração com a ElasticSearch.
A Firebase é hospedada e mantida pelo Google em seus datacenters. Ela oferece um plano gratuito para aqueles que estejam interessados em conhecer seu funcionamento, como também um plano de pagamentos flexíveis, baseado em seu consumo, que oferece integração total com a plataforma Google Cloud.
Para os interessados em se aprofundar mais sobre como funciona a Firebase, recomendados os seguintes vídeos gravados na Google I/O 2016: Firebase Overview, Migrate to Firebase, Use Firebase Analytics to Build Extraordinary Apps, Introducing Firebase Authentication e Deep Dive into the Real-time Database.