3 - Sobre o Google Firebase
O Firebase é a plataforma do Google que oferece serviços para aplicações web e para dispositivos móveis, como Android e iOS, permitindo a rápida criação de sistemas baseados em cloud computing sem a necessidade de se gerenciar infraestrutura de servidores ou sistemas computacionais.
A integração de uma aplicação Android com o Firebase é muito simples e pode ser feita através de bibliotecas oferecidas pela própria Google, além de algumas passos e configurações que serão detalhados no momento oportuno nesse livro.
Como um dos objetivos principais desse livro é fazer com que o leitor possa construir aplicativos Android utilizando o Firebase, é interessante conhecer alguns de seus serviços oferecidos por essa plataforma, como descritos a seguir:
3.1 - Firebase Cloud Messaging
Talvez esse seja um dos serviços mais conhecidos do Firebase. Com ele é possível enviar notificações para uma aplicação em um dispositivo móvel, permitindo que o usuário possa ser notificado sobre algum evento.
Esse mecanismo pode ser invocado por uma aplicação de backend ou até mesmo através de eventos automáticos ou agendados.
O Firebase Cloud Messaging se encarrega totalmente de entregar a mensagem, cuidando da garantia de entrega, bem como o armazenamento da mesma, caso o dispositivo não esteja conectado à Internet no momento da entrega da mensagem.
3.2 - Firebase Authentication
Em uma aplicação onde é necessário autenticar o usuário, normalmente é necessário manter uma base desses usuários e também oferecer um mecanismo onde o dispositivo móvel possa verificar as suas credenciais. Com o Firebase Authentication é possível fazer isso de forma simples e direta, tanto para o desenvolvedor, como para o usuário da aplicação.
3.3 - Google Analytics for Firebase
Analisar eventos, logs e entender comportamentos de aplicativos para dispositivos móveis pode ser um desafio, uma vez que eles não estão concentrados, como em um serviço na nuvem. Para isso existe o Google Analytics, um poderoso coletor, concentrador e analisador de eventos das mais diversas naturezas.
Com o Google Analytics, é possível gerar logs e eventos de dentro de uma aplicação Android e enviá-los para o Firebase, onde os desenvolvedores poderão analisá-los. Tal mecanismo também pode ser utilizado para enviar exceções durante a execução do código, permitindo a geração de evidências de defeitos na aplicação.
Uma das coisas interessantes desse serviço, do ponto de vista da aplicação no dispositivo móvel, é que mesmo que ele não esteja conectado à Internet no momento da geração do evento, ele será enviado para o Firebase, quando o dispositivo voltar a ficar conectado. Tudo sem a necessidade do desenvolvedor criar mecanismos complexos de armazenamento local de eventos e retentativas de entrega, ou seja, esse trabalho é totalmente feito pelo SDK do Firebase Analytics.
3.4 - Firebase Remote Config
Com o Firebase Remote Config é possível criar configurações para as aplicações, de tal forma que possam ser aplicadas sem a necessidade do usuário baixar uma nova versão. Tais configurações podem ser aplicadas a todos os usuários ou para segmentos que atendam algum critério de seleção, como país, gênero do usuário ou idioma.
Utilizando a interface do Firebase Remote Config, é possível alterar os valores das configurações existentes a cada aplicação. Essas são imediatamente enviadas a todos os dispositivos selecionados. Isso faz com que o comportamento da aplicação seja alterado, mediante o valor de cada configuração.
Esse recurso também pode ser utilizado para testes A/B ou mesmo para liberação de novas funcionalidades para grupos restritos de usuários.
3.5 - Firebase Cloud Firestore
Talvez esse seja o mais interessante e poderoso recurso do Firebase. Com ele é possível criar um banco de dados NoSQL para as aplicações, sem a necessidade de se manter um backend para prover o acesso pelos dispositivos móveis.
Com ele é possível restringir o acesso aos dados do banco através de políticas de segurança baseadas na autenticação do usuário.
Outra característica que torna esse serviço interessante, é o fato de ser considerado um banco de dados realtime, ou seja, caso um valor seja alterado, ele é imediatamente refletido em todos os dispositivos que estejam interessados nele.
3.6 - Conclusão
Esses, são apenas alguns dos serviços oferecidos pelo Firebase e que serão utilizados ao longo desse livro para criar aplicações para dispositivos Android conectadas à nuvem.
O próximo capítulo irá conduzir o leitor a preparar seu ambiente de desenvolvimento e tudo o que for necessário para começar a desenvolver sua primeira aplicação Android.