Mobiletecnologia

Firebase: o que é e quando usar no desenvolvimento mobile?

Você sabe para que serve o Firebase e como tirar o melhor proveito dele como desenvolvedor mobile? Acompanhe aqui que hoje você vai entender tudo!

O mercado de desenvolvimento mobile está em plano vapor, e o aumento do uso de smartphones incentiva ainda mais o uso de ferramentas como essa.

A necessidade de respostas cada vez mais rápidas para as demandas dos usuários e da própria tecnologia exigem um rendimento superior dos aplicativos atuais.

É exatamente para isso que o Firebase foi feito e está Google desde 2014, o que possibilita a rapidez na criação de aplicativos, monitoramento de confiança e engajamento de usuários.

Para provar sua capacidade, veja alguns exemplos de empresas usando o Firebase:

  • Alibaba;
  • The New Yotk Times;
  • Duolingo;
  • Trivago;
  • Halfbrick.

O que é?

Se pudermos rotular o Firebase, diremos que ele é Backend-as-a-Service (Baas).

O Firebase é a plataforma de desenvolvimento de aplicativos móveis do Google que ajuda você a criar, melhorar e expandir seu aplicativo.

Digamos que existe uma variedade de tecnologias do lado do servidor (back-end) disponíveis no mercado para desenvolvedores testarem novas possibilidades de uso e o Firebase é uma das que mais tem atraído a atenção no mundo mobile.

Com ele, é possível oferecer experiências de aplicativos mais ricas para o usuário, otimizando a performance e a experiência da plataforma.

Além disso, o Firebase é versátil e os tipos de aplicativos que podem se desenvolver com Firebase são: AndroidiOS e Web.

O que faz?

Neste sentido de servidor, o Firebase fornece aos desenvolvedores uma variedade de ferramentas e serviços para ajudá-los a desenvolver aplicativos de qualidade, aumentar sua base de usuários e ser mais lucrativo.

Toda sua base é feita na infraestrutura do Google, a categoria de um programa de banco de dados NoSQL, que armazena em documentos do tipo JSON.

O Firebase sobretudo conta um grande conjunto de ferramentas de desenvolvimento. Destas, o Realtime Database e o Cloud Firestore podem armazenar dados estruturados em documentos e sincronizar os aplicativos correspondentes em milissegundos sempre que ocorre uma transformação de dados.

Isso quer dizer que tanto o aplicativo quanto seu banco de dados ouvem um ao outro, proporcionando ao usuário experiências integradas no aplicativo.

E o Firebase Cloud Functions primeiramente pode estender essa funcionalidade. Assim essas funções permitem que o desenvolvedor escreva código de back-end para responder a eventos que acontecem na plataforma Firebase sem precisar diretamente de nenhum servidor.

Quais linguagens suporta?

O Firebase suporta o desenvolvimento nas seguintes linguagens: C++, Java, Javascript, Node.js, Objective-C e Swift. Os frameworks Angular, Backbone e React estão através da vinculação de nomes (bindings) diretamente com o banco de dados.

O Google também adicionou bibliotecas: FirebaseUI, Geofire, Firebase Queue, FirebaseJobDispatcher.

Para quem é?

O Firebase teve primordialmente seu projeto para se integrar muito bem com aplicativos da web e mobile com SDKs para uma imensa variedade de linguagens.

É uma suite de aplicativos feitas sob medida para qualquer desenvolvedor que precisa de ferramentas para construir apps melhores, mais robustos, com menos erros, mais otimizados para o usuário, escalável e ainda mais lucrativos.

Por que usar?

Assim como a plataforma oferece um grande número de serviços, você não precisa se preocupar com diversos fatores que costumam gerar dores de cabeça numa aplicação Web ou Mobile, como:

  • Segurança na comunicação e transferência de dados;
  • Limitações de infraestrutura;
  • Bugs de atualizações;
  • Compatibilidade com vários tipos de dispositivos diferentes;
  • Autenticação;
  • Problemas que envolvem UI/UX.

Todos essas situações são passíveis de serem solucionadas, entretanto por meio dos serviços oferecidos pelo Firebase.

Além disso, é gratuito para começar e você pode usar a sua conta do Google! Crescendo a demanda, você poderá adquirir o plano pago, e ainda pagar somente o excedente dos produtos e ferramentas que for usando.

Mais para baixo falaremos sobre os planos e preços.

Como assim já foi citado, a velocidade no desenvolvimento dos aplicativos através do Firebase é outro ponto positivo.

O uso do Firebase e do Firestore permite contudo que os desenvolvedores de frontend gerenciem todo o trabalho e reduzam o tempo necessário para a conclusão.

Principais serviços do Firebase

A suite de aplicativos do Firebase é enorme como você pode conferir na imagem acima, portanto iremos focar nos principais serviços utilizados por desenvolvedores:

Realtime Database

De forma simples e objetiva, assim como já mencionado Realtime Database, os dados são sincronizados em todos os clientes em tempo real e permanecem disponíveis mesmo quando um aplicativo está offline.

Cloud Storage

Cloud Firestore oferece contudo uma forma prática de salvar arquivos, de imagens a arquivos, até o Google Cloud Storage diretamente do cliente.

O serviço tem seu próprio sistema de regras de segurança para proteger seus arquivos, enquanto concede privilégios de gravação detalhados aos seus clientes autenticados.

O banco de dados Firestore do Firebase é voltado para oferecer desempenho ideal, confiabilidade, escalonamento automático e usabilidade de referência.

Authentication

Suporta autenticação usando senhas, números de telefone, perfil do Google, Facebook, Twitter etc.

O Firebase Authentication (SDK) pode ser usado assim para integrar manualmente um ou mais métodos de login em um aplicativo.

Hosting

Firebase Hosting fornece hospedagem rápida e segura para um aplicativo da web.

O conteúdo primeiramente fica armazenado em cache nas redes de distribuição de conteúdo em todo o mundo (CDNs).

Exemplo com Gulp:

var gulp = require('gulp');
var superstatic = require('superstatic');
var browserSync = require('browser-sync').create();

gulp.task('serve', function() {
  browserSync.init({
    server: {
      middleware: [superstatic({stack: 'strict'})]
    }
  });
  gulp.watch('public/*.html').on('change', browserSync.reload);
});

Remote Config

Possibilita assim que você personalize seu aplicativo sem necessariamente implantar uma nova versão, ideal para monitorar as mudanças da plataforma.

Notifications

As notificações podem ser enviadas com o Firebase sem precisar assim acrescentar nenhuma linha de código adicional.

Test Lab

Como o nome já deixa claro, é um laboratório de testes, assim o aplicativo é testado em dispositivos virtuais e físicos localizados nos data centers do Google.

Primeiramente você terá acesso aos resultados, capturas de tela, registros e vídeos no console do Firebase.

Analytics

Com o uso do Analytics do Firebase é possível entender melhor sobre seus usuários e como eles usam seu aplicativo.

Tome decisões muito mais inteligentes através de dados de consumo e não consumo do seu aplicativo.

Você também pode aplicar Machine Learning para fazer predições do comportamento do usuário de forma fácil e descomplicada.

Aqui também está inclusa a integração com o Google Ads! Você pode criar campanhas pagas de divulgação baseadas nos dados do Analytics para maior precisão.

Crashlytics

Obtenha informações claras e acionáveis sobre os bugs que seu aplicativo apresenta em tempo real!

Com isso, você conseguirá rastrear, priorizar e resolver os problemas da sua aplicação.

Os Dynamic Links do Firebase são URLs inteligentes que direcionam o usuários para o lugar que você desejar em apps iOs, Android ou Web.

Explico: em uma pesquisa do Google, você pode ser direcionado diretamente para uma aplicação, mas e se você não tem ela instalada? Você consegue configurar o comportamento desse link e inserir esse tipo de variável.

Além disso, eles sobrevivem à instalação do seu aplicativo na hora, diferente de outros tipos de links que se perdedm nesse processo.

Performance Monitoring

Obtenha informações sobre os problemas diretamente relacionados ao desempenho do seu aplicativo.

Para mais detalhes ou saber mais sobre outros serviços da plataforma (que são muuuuuitos) voc ê pode visitar o site oficial do Firebase.

Quanto custa?

O Firebase possui dois tipos de planos de uso da ferramenta:

Plano Spark (gratuito): o Firebase está disponível para uso gratuito de qualquer desenvolvedor, com um limite generoso de autenticações, armazenamento, invocations, hospedagem e mais.

Plano Blaze (pague conforme o uso): Assim que seu aplicativo for escalonado, você precisará migrar do plano gratuito para o plano pago conforme o uso. Com isso, você só precisa pagar pelos serviços que extrapolarem o limite gratuito do Firebase.

Por exemplo, no plano Spark, você tem limite de 5GB armazenados na Cloud Storage. Quando ultrapassar esse número, você paga US$ 0,026 a cada GB extra que utilizar.

Confira na página de preços do Firebase todas as informações no detalhe.

Vantagens do Firebase

O Firebase é ótimo, confira algumas praticidades e benefícios que a plataforma é capaz de proporcionar:

  • Dados em tempo real;
  • API pronta;
  • Autenticação via e-mail, Google, Facebook e Github;
  • Segurança;
  • Armazenamento de arquivos pelo Google Cloud Storage;
  • Hospedagem de arquivos estáticos;
  • Aplicativos altamente escaláveis;
  • Sem preocupações quanto a infraestrutura.

Desvantagens do Firebase

Mas como nem tudo são flores, o Firebase ainda sofre com alguns pontos para melhoria, por exemplo:

  • Capacidade limitada de consultas devido ao modelo de fluxo de dados do Firebase;
  • Os modelos de dados relacionais tradicionais não são aplicáveis ao NoSQL, seus chops SQL não serão transferidos;
  • Sem instalação local;
  • Não é open-source e também não possui servidores dedicados e suporte empresarial;
  • Os preços podem ser difíceis de serem previstos e limitar custos pode ser incômodo.

Como usar Firebase Android

Existem alguns pré-requisitos para integrar o Firebase ao seu projeto Android:

  • Instalar ou atualizar o Android Studio para a versão mais recente;
  • Certificar de que seu projeto atenda a estes requisitos:
    • API de nível 16 (Jelly Bean) ou posterior;
    • Gradle 4.1 ou posterior;
    • Jetpack (AndroidX) com:
      • com.android.tools.build:gradle v3.2.1 ou posterior
      • compileSdkVersion 28 ou posterior;
  • Configurar um dispositivo físico ou usar um emulador para rodar seu app. Os emuladores devem usar uma imagem de emulador com o Google Play;
  • Logar no Firebase usando sua conta do Google.

Tutorial Firebase: como conectar seu Android app

Adicionar o Firebase ao seu aplicativo envolve tarefas no console do Firebase e no projeto aberto do Android (por exemplo, você baixa os arquivos de configuração do Firebase do console e os transfere para o seu projeto do Android).

Para registrar seu app com o Firebase você precisa:

  1. Acesse o console do Firebase;
  2. No centro da página de visão geral do projeto, clique no ícone do Android para iniciar o fluxo de trabalho;
  3. Digite o nome do pacote do seu aplicativo em Android package name.
  4. Clique em Register app.

Como adicionar um arquivo de configuração (Firebase)

Para adicionar um arquivo de configuração do Firebase, você precisa:

  1. Clicar em Download google-services.json para obter seu arquivo de configuração do Firebase Android (google-services.json).
  2. Mover seu arquivo de configuração para o diretório do módulo do seu aplicativo.

Para ativar as funcionalidades do seu aplicativo, adicione o plugin google-services aos seus arquivos Gradle.

No seu arquivo Gradle de nível raiz (build.gradle), adicione regras para incluir o plug-in Gradle de serviços do Google. Verifique se você também possui o repositório Maven do Google.

buildscript {

  repositories {
    // Verifique se você tem a seguinte linha (se não, adicione-a):
    google()  // repositório Maven
  }

  dependencies {
    // ...

    // Adicionar:
    classpath 'com.google.gms:google-services:4.3.3'  // Google Services plugin
  }
}

allprojects {
  // ...

  repositories {
    // Verifique se você tem a seguinte linha (se não, adicione-a):
    google()  // repositório Maven
    // ...
  }
}

No seu arquivo Gradle do módulo (geralmente app / build.gradle), aplique o plug-in Gradle dos Serviços do Google:

apply plugin: 'com.android.application'
// Adicionar:
apply plugin: 'com.google.gms.google-services'  // plugin do Google Services

android {
  // ...
}

Por fim, você precisa adicionar SDKs do Firebase ao seu aplicativo conforme utilização do Java ou Kotlin.

Alternativas (Firebase)

Existem alternativas ao Firebase no mercado, listei as três principais para você conhecer, confira:

Back4app

Back4app é uma das soluções de BaaS mais fáceis e simples de usar e gerenciar, que pode beneficiar desenvolvedores que procuram uma solução prática e sem muita complexidade desnecessária para o dia a dia.

Backendless

Backendless é outra alternativa importante ao Firebase, que oferece uma infinidade de recursos do BaaS para serem usados por qualquer desenvolvedor.

Se você deseja modificar qualquer aplicativo existente ou deseja iniciá-lo do zero, o Backendless deve ser considerado.

Parse

Parse também é um player bastante popular como BaaS.

Possui uma enorme comunidade de desenvolvedores apoiando esta solução e conta com uma incrível variedade de serviços oferecidos com o objetivo de melhorar a funcionalidade de qualquer aplicativo.

Leia também o artigo “Dicas para entrevista na área de TI