Alura > Cursos de Mobile > Cursos de Android > Conteúdos de Android > Primeiras aulas do curso Firebase com Android: Push Notification no Cloud Messaging

Firebase com Android: Push Notification no Cloud Messaging

Introdução ao Firebase Cloud Messaging - Apresentação

Eu sou o Alex Felipe, instrutor aqui da Alura, e vou apresentar para você o curso de Firebase Cloud Messaging com Android.

Neste curso eu vou assumir que você já tem alguns pré-requisitos para que você consiga acompanhar sem nenhum problema, que é justamente a partir do conhecimento do “Firebase Authentication” porque iremos utilizar um projeto pronto.

Além da parte do “Authentication”, também iremos usar alguns recursos que já vimos em outros cursos aqui da plataforma, como é o caso de como você pode fazer requisições web, como utilizar o navigation, para que dessa forma você tenha mais facilidade para absorver o conteúdo.

Mas também fique à vontade em aproveitar mais o conteúdo focado mais no “Firebase Cloud Messaging”, a ideia de ter esses pré-requisitos é só que fique fácil para você entender como é feita a integração.

E agora, aproveitando esse momento que eu falei dos pré-requisitos, vamos conhecer um pouco mais sobre o produto que teremos acessível aqui e depois o que iremos desenvolver com as partes técnicas.

Aqui no produto teremos acesso a um projeto chamado de “Dev Meetups”, nesse projeto teremos essa aplicação “Mobile, Android” e também teremos acesso a uma aplicação web, que eu vou deixar disponível para você.

Então você vai conseguir acessar essas duas aplicações para que então, tenhamos um ambiente preparado para utilizar o “Firebase Cloud Messaging”

E por que precisamos disso? É porque quando consideramos o uso da ferramenta “Firebase Cloud Messaging”, temos um conceito que chamamos de mensageria, que é justamente mandar mensagens da nossa aplicação web para os nossos dispositivos que estão conectados a ela.

O que consideramos também como o conceito de push notification, onde a aplicação servidora informa aos seus dispositivos, que são as aplicações clientes, que aconteceu alguma coisa.

Então por meio disso, conseguimos notificar criações de eventos novos, como é o caso dos meetups, cancelamentos ou então qualquer tipo de evento que queremos notificar os nossos dispositivos de tal forma que eles não precisem pedir essas informações, e é por isso que teremos todo esse ambiente.

Aqui teremos tudo preparado para focarmos exatamente em como devemos utilizar o “Firebase Cloud Messaging”, junto com esse ambiente preparado, então, veremos tudo o que podemos fazer exatamente nessa conexão, nessa integração, que é bastante comum quando utilizamos essa ferramenta.

E a partir disso, o que teremos disponível em ambas aplicações? Aqui teremos aquele acesso, como eu comentei no “Firebase Authentication”, que vai ser a partir desse dessa tela aqui.

Eu vou até logar com o usuário que vai ser o alex@meetups.com, e conseguiremos fazer a autenticação sem nenhum problema, então você também vai conseguir fazer o seu cadastro, você vai conseguir também entrar com seu usuário e aqui você vai ter acesso aos eventos.

Então perceba que teremos acesso aos nossos eventos e como eu comentei, a ideia é de conseguir fazer essa comunicação, de tal forma que havendo um novo evento lá na aplicação web, ela consiga nos comunicar, e vamos ver isso acontecendo.

Então pegando aqui a aplicação web no momento que criamos um novo evento, irei até criar um evento chamado de teste, “título teste” e “descrição teste”, para ser mais fácil a criação.

Vou pegar uma imagem aqui, peguei essa do “Matrix”, e eu vou colar para vermos o que acontece na criação. Olha só, eu criei, aqui na aplicação Web também criou, e aqui na nossa aplicação Android ele nos comunicou, sem termos feito nada, isso utilizando esse conceito de “Push Notification”.

Mas é claro, vamos entender que apenas mandar essa mensagem não é o suficiente e que vai ter situações que precisaremos trabalhar com essa mensagem que recebemos, vamos aprender a criar essa notificação personalizada desse jeito, entendendo quais são os critérios que temos, quais são as características, peculiaridades que temos ao criar uma notificação.

Dessa forma, trabalharemos bastante com o uso dessa integração que é muito comum no nosso dia a dia, muitas aplicações utilizam isso justamente para dar uma experiência mais interessante para o seu usuário, ao invés de sempre ele ter que interagir com o aplicativo, meio que o aplicativo está interagindo com ele.

Então esse vai ser o nosso foco do curso, focando mais nas partes técnicas, o que iremos aprender aqui vai ser basicamente fazer essa integração, então esse vai ser o nosso primeiro objetivo, como conseguimos fazer os cadastros dos dispositivos com aplicação web e “Firebase Cloud Messaging” como conseguimos receber as mensagens.

Quais são os tipos de mensagem que temos aqui no “Firebase Cloud Messaging”, os cuidados que precisamos ter ao criar uma notificação, as possibilidades que temos, e até mesmo como conseguimos mandar mensagens segmentadas, que seriam mensagem nas quais apenas alguns dispositivos precisam receber e não outros.

Então perceba que vai ter bastante conteúdo, eu espero que você esteja animado com a proposta do curso, com o projeto e conto com a sua presença na primeira aula.

Introdução ao Firebase Cloud Messaging - Inicializando a aplicação web

O nosso primeiro passo é inicializar a nossa aplicação web para conseguirmos fazer a integração do nosso aplicativo e essa nossa API. Para você acessar esse arquivo, terá uma atividade aqui na Alura de preparação de ambiente que vai dar um link para você, e você pode baixar o arquivo.

Ao baixar esse arquivo, vai ser um arquivo “Zip”, tirando ele do “Zip”, fazendo um unzip, você vai ter acesso a esse arquivo chamado de server que é um arquivo “Jar”, que você pode executar a partir de um client do Java.

Para fazer a execução, uma das maneiras é fazendo com dois cliques, mas eu não recomendo que você faça isso, porque ao fazer a execução dessa forma, para poder matar essa aplicação, você vai ter que acessar o nosso “Task Managers”, gerenciador de tarefas, independente da plataforma, Windows, Mac, etc.

Para evitar todo esse trabalho de matar a aplicação caso você precise, a recomendação que eu vou fazer aqui é que você acesse um terminal ou um prompt de comando que também vai dar acesso a algumas informações que veremos no decorrer dessa configuração.

Para isso, eu vou acessar um prompt de comando, dado que eu estou aqui no Windows, e eu vou entrar diretamente naquele diretório que eu já entrei aqui, que é justamente esse endereço: ‘C: \Users\alexf\git\alura\cursos\1995-fcm\dev-meetups-api-runnable>’.

Então, se acrescentarmos um dir, C: \Users\alexf\git\alura\cursos\1995-fcm\dev-meetups-api-runnable>dir, ele mostra exatamente o arquivo que eu estou querendo acessar, que é o server.jar.

A execução pode ser feita a partir de um client do Java, então você precisa sim ter o Java instalado, e aqui em: C: \Users\alexf\git\alura\cursos\1995-fcm\dev-meetups-api-runnable> você pode acrescentar o java -jar server.jar. Fazendo essa instrução, apenas dê um “Enter” que ele vai começar a inicialização.

Podemos perceber que é uma aplicação feita com “Spring Boot”, que é um framer para fazer aplicações web, e ele vai fazer diversos logs mostrando tudo o que ele está inicializando.

Então se de repente você tiver algum problema, muito provavelmente ele vai apresentar aqui nesse log que aconteceu um problema e qual foi o problema.

Se não der tudo certo, assim como veremos aqui, você pode pegar informação que apareceu aqui no log e compartilhar conosco.

Nesse caso ele deu certo porque está falando que inicializou a aplicação, falando quantos segundos, minutos ele demorou para subir a aplicação e até mesmo está falando a porta de execução, que é nesse: Tomcat started on, e ele mostra quais são as portas, que nesse caso é 8080, a partir do protocolo HTTP.

Isso significa que se pegarmos aqui o nosso navegar e acessa o endereço: localhost, que representa aqui o nosso computador, dois pontos para colocar a porta, e depois 8080, significa que já conseguimos sim, acessar essa aplicação.

Perceba que ela vai ter aqui essa cara para nós, que vai indicar algumas funcionalidades que é o caso de eventos, mensagens e dispositivos.

A partir desse momento, sim, você pode testar aqui a aplicação e ver como funciona cada um desses comportamentos, se não apresenta alguma coisa estranha.

Nesse caso, uma das que você pode explorar é essa de eventos por exemplo, que a princípio ele vai dar essa mensagem de que não há nenhum evento porque realmente não tem nada cadastrado a princípio.

Mas você pode cadastrar, como por exemplo, clicando aqui nessa bola vermelha no canto inferior direito, e nela você pode colocar alguma informação, no caso descrever um evento colocando um título

Aqui eu vou colocar como teste, então teste 1 para o título e teste 2 para a descrição, e aqui nessa parte de imagem, você pode pegar o endereço de alguma imagem.

A minha sugestão é que você pegue essas imagens a partir de sites de imagens gratuitas, evitando aqueles problemas de copyright, e aqui na parte de imagem você pode colocar alguma coisa que você preferir.

O que eu costumo fazer nesses eventos que eu estou usando para esse projeto, é colocar esse termo de coding, na busca dos sites de imagens gratuitas, que seria de código, codificar ou algo do gênero e aqui eu posso pegar qualquer imagem que representa a ideia de meetups, de desenvolvimento de software.

Vou pegar uma imagem partir do "Copy Image Location", que seria pegar o endereço da imagem também em outros navegadores, e então eu vou colar aqui nesse campo de imagem.

Clicando no botão "Salvar", ele já vai salvar essa informação, no caso esse evento, e vai voltar lá para a nossa lista de eventos.

Então você pode salvar um evento, nesse caso se você clicar agora ele vai mostrar aqui todas as informações do evento, até mesmo permitir a edição.

Então ao invés de "Titulo: Teste 1", eu quero que seja: "Titulo: Programando em Kotlin", tem até um rascunho para mim, e na "Descrição: Aprenda a programar em Kotlin criando apps em Android", e você pode também salvar novamente que ele vai alterar ou também alterar a imagem da maneira que você preferir.

Como o último comportamento, seguindo a ideia de um krud ele permite também matar aqui esse evento, excluir de verdade, então você também pode fazer isso.

Se você quiser vasculhar as outras funcionalidades você pode clicar no “Dev Meetups” que ele vai voltar no início, e aqui no início você pode acessar a parte de ‘mensagens’ que ele vai mostrar aqui primeiro essa informação, falando que não foi configurado o “Firebase”.

Nós iremos ver isso no decorrer do curso, porque isso aqui existe, e também tem essa parte de dispositivos que a princípio não conseguimos fazer nenhuma interação e iremos entender porque ele está aqui e qual é a importância de saber dessa ideia de dispositivos.

Na parte de inicialização e como podemos vasculhar funcionalidades, é isso. O próximo passo que temos que entender é o que acontece após fazer a execução dessa aplicação.

Aqui na pasta onde você deixou esse arquivo, ele gera dois diretórios, que é o caso desse e "database" e "firebase".

O "database" vai representar todos os dados que foram salvos nessa aplicação. É o próprio banco de dados, então se você excluir aqui essa pasta você vai perder todas as informações que você registrar aqui.

Todos os eventos e qualquer tipo de coisa que vemos aqui dentro da aplicação, que fica de maneira persistente mesmo que ela morra, serão perdidos se você perder aquele ‘database’, é um arquivo bastante importante, não precisa apagar.

O próximo aqui é o do "firebase" que ele vai ser usado justamente para fazermos a configuração do ‘firebase’ para poder fazer integração que veremos durante o curso.

Então também não precisa apagar, mesmo que ele não tenha nada porque a ideia dele é justamente um diretório reservado para fazermos essa configuração então pode deixar ele aí sem nenhum problema.

E qual é a última informação que eu tenho que passar? São justamente os logs, então além do log de inicialização, também temos o log de interação com os comportamentos da nossa aplicação.

Então tudo que executamos, como é o caso de acessar todos os eventos, ele vai falar para você que ele acessou a classe ‘eventService’ e acessou o método findAll.

E por que é importante sabermos disso? Porque dado que é um servidor, que pode ter alguns problemas durante os seus testes, durante as suas execuções, você pode entrar em contato conosco para falar a respeito do que aconteceu de problema durante algum teste que você fez.

Ou até mesmo você pode verificar qual foi o problema e tentar resolver também por sua vez, você pode tentar identificar qual é o problema e resolver sem ter esse impeditivo de continuar com o curso.

Então tudo o que acontecer aqui durante a aplicação, ele vai apresentar um log, até mesmo temos aqui uma exception indicando que não foi encontrada uma configuração do “Firebase” ou algo do gênero.

E ela acontece porque não fizemos a configuração, e se caso novamente apresentar alguma exception que seja muito estranha e que está impedindo você de fazer alguma coisa, você pode sim entrar em contato conosco para tentarmos identificar o possível problema, tentar resolver e você dar continuação do curso sem nenhum problema.

Então eram essas informações eu queria passar para você, e agora que eu dei essa introdução dessa parte da aplicação web, o nosso próximo passo é fazer nossa primeira configuração, para então fazer o uso do nosso aplicativo Android.

Só para finalizar, não precisa matar essa aplicação web, ela vai ficar disponível durante todo o curso para nós conseguirmos ter esse serviço disponível e então fazer toda integração necessária.

Introdução ao Firebase Cloud Messaging - Configurando o App Android

Agora que a nossa aplicação web está rodando, o nosso próximo passo é inicializar a aplicação Android para fazermos a nossa primeira integração entre o nosso aplicativo Android e essa aplicação web.

Para começar nós temos que acessar o “Android Studio” que vai ser a ferramenta que vamos utilizar e durante a gravação eu estou utilizando a versão 4.1.

Isso significa que é recomendado que você mantenha essa mesma versão ou pegue uma mais recente para que possamos utilizar as mesmas funcionalidades de uma maneira visual ou até mesmo de praticidade e que você não estranhe durante o decorrer do curso. Agora que eu passei essas informações, o próximo passo é abrir esse projeto.

Esse projeto vai ser disponibilizado para você naquela atividade de preparação de ambiente, você pode baixar e então você pode abrir no “Android Studio” por meio da opção "Open an Existing Project".

E aqui em "Open an Existing Project" eu já vou acessar esse meu projeto que eu nomeei, já fiz uma simulação para ver se estava tudo funcionando, que eu nomeei de dev-meetups. Você pode colocar o nome que você preferir e fique à vontade em deixar esse mesmo nome.

Então, selecionando o projeto, você clica aqui no botão "ok" e ele vai abrir o Android Studio com o projeto, com os arquivos e como eu comentei, como eu já fiz uma vez ele até abriu rápido, já fez o processo de indexação e assim por diante então é natural que vai apresentar isso.

A primeira coisa que você pode tentar fazer, é executar, então executando aqui, ele vai abrir aqui o emulador e vai tentar abrir o projeto para nós.

Uma das coisas que podemos notar antes mesmo de falar dos problemas, é que agora a partir da versão 4.1 do Android Studio, temos essa nova funcionalidade que é o emulador embutido diretamente no Android Studio.

Existe agora a possibilidade de colocar o emulador aqui dentro do Android Studio ao invés de ter uma janela nova propriamente para o emulador.

Então você pode também configurar isso, fica a seu critério, não faz nenhuma diferença com o curso, é só uma funcionalidade mais visual e prática do que algo que vai fazer diferença durante as execuções, então fica a seu critério. Aqui durante o curso, eu vou utilizar essa opção do emulador embutido.

Agora que eu passei essa informação, o outro ponto é mencionar um pouco sobre os possíveis problemas que podem acontecer com você.

Se é a primeira vez que você está executando um projeto, muito provavelmente vai apresentar uma mensagem falando da falta do arquivo ‘google-services.json’ lá do “Firebase”, porque nesse projeto eu também estou utilizando algumas ferramentas do “Firebase”, como é o caso do “Firebase Authentication”.

Então, para que ele consiga pelo menos garantir que essa funcionalidade do “Firebase” funcione, nós precisamos desse arquivo, porque não vem aqui diretamente com o projeto baixado, você tem que pegar do seu projeto do “Firebase” que você vai criar e vai estar destinado para esse projeto aqui do “Dev Meetups”.

Eu já fiz esse projeto do “Firebase”, então acessando o console eu já tenho o meu “Dev Meetups” que é do pacote br.com.alura.meetups.

Você pode criar um também e depois que você cria ele, você pode pegar o arquivo json, você tem diversas maneiras para fazer isso, uma delas até mesmo é entrando aqui nessa engrenagem: configurações>configurações do projeto, e clicar no botão: google-servces.json.

Você clica no botão: google-servces.json, ele vai baixar o arquivo, você coloca no módulo App, assim como já vimos em outros conteúdos do “Firebase” e pronto, já temos acesso ao arquivo, isso já resolveu essa parte do “Firebase”, não vai apresentar o problema do “Firebase”.

Porém, ao executar novamente, teremos outros problemas que veremos aqui como podemos resolver, então novamente vai apresentar essa mesma situação que nós estamos vendo aqui e para investigar isso, nós precisamos acessar o Logcat.

Então executado novamente para vermos se ele trava a tela aqui para nós, ele fala desse problema, esperando uma url, http ou https.

Por que isso acontece? Porque aqui no projeto, dado que vai ter integração com a nossa aplicação web, estamos utilizando aqui o “Retrofit” que exige sim o endereço dessa nossa API, dessa nossa aplicação web.

E como acessamos? Basicamente, iremos acessar isso por meio do arquivo AppModule, que é o arquivo de configuração do Koin, aquela ferramenta de injeção de dependência.

Então, a maioria aqui dos componentes que eu coloquei são injetados por meio do Koin, então todas essa configuração está sendo feita aqui, inclusive se você quiser estender a configuração também, fique à vontade.

Como podemos ver, temos aqui essa constante que ela é a URL_BASE e aqui, eu deixei como endereco_api, então aqui sim, precisamos modificar para acessarmos a nossa aplicação web.

Como podemos colocar o endereço aqui? Basicamente, a partir de um prompt de comando, terminal, dependendo do seu sistema, você vai ter alguns comandos que permitem isso. No caso do Windows, é o ipconfig.

Com o ipconfig, ele te dá acesso a algumas configurações de rede que nesse meu caso para poder acessar aquela nossa aplicação é a partir do adapter Ethernet, e o endereço é esse IPv4.

Então acessando aqui com “Ctrl + C” no IPv4 Adress, e modificando aqui no nosso Android Studio, nós iremos conseguir ter o endereço http válido para acessarmos a nossa aplicação.

Basicamente, escrevemos http://, colocamos aqui o nosso endereço: http://192.168.0.47: 8080/api/, que vai ser a URL base para conseguirmos acessar todos os endpoints que corresponde a uma aplicação restful.

E agora que fizemos isso, para você ter certeza antes mesmo de testar isso aqui, que é realmente esse endereço, você pode até mesmo copiar esse endereço que temos aqui: http://192.168.0.47: 8080/api/, abrir o seu navegador, e até mesmo tentar.

Se você tentar e ele apresentar aqui por exemplo essa 404 porque realmente ela não tem nada nesse /api, tudo bem, já está funcionando.

Se você quiser ver outras coisas que existem aqui nessa /api, você pode tentar novamente colocando o events (‘http://192.168.0.47: 8080/api/events), como já vimos, e ele já acessa aqui a aplicação.

Ou até mesmo se você quiser só ver a aplicação, apenas com esse endereço é possível sem ter nenhum tipo de /api, ou algo do gênero. Essa é uma forma de você garantir que é esse endereço mesmo que você precisa acessar.

Então agora que já testamos aqui, qual é o próximo passo? Eu vou voltar para o localhost, que é o que eu costumo usar aqui no navegador.

O nosso próximo passo é tentar executar novamente e ver se conseguimos utilizar nossa aplicação. Então executando novamente, ainda vai ter mais alguma coisa que é o que eu quero mostrar também para você, para que no momento que acontecer você não fique perdido.

Eu só vou esperar aqui a aplicação rodar e vamos ver o que acontece, e olha só, ele está apresentando aqui a aplicação.

Como eu já tinha testado, foi feito essa parte de autenticação, o que eu vou fazer? Eu vou remover tudo o que tinha nessa aplicação, eu vou excluir aqui para você ter exatamente a mesma impressão, então eu estou excluindo aqui, desinstalado. Eu vou executar novamente e vamos ver o que acontece.

A princípio, no final é para ter aquela tela mesmo, mas novamente, é a primeira vez? Terão algumas coisas que é importante você saber. Então eu estou executando aqui e vamos ver o vai acontecer.

E olha só, ele tem aqui essa tela inicial, que era o que eu queria que apresentasse. E o que temos aqui nessa tela inicial? Basicamente, aqui vai ser uma tela para acessar a tela de login.

Então se clicarmos no botão "entrar", que é um botão com fundo invisível, ele vai apresentar aqui esse formulário para fazer a autenticação por meio do Firebase UI,que é um componente do “Firebase Authentication”, que já implementa para nós essa técnica de autenticação.

E se nós tentarmos fazer todo o fluxo aqui, teremos também alguns problemas, porque aqui no projeto do nosso “Firebase Authentication” nós precisamos permitir que esse método de autenticação esteja habilitado para nós.

Então em Authentication, você precisa basicamente habilitar o e-mail e senha (clicando em: authentication:sign-in method>editar email/senha>ativar a primeira opção>salvar). Salvando aqui você permite que isso seja possível.

Agora sim você pode entrar aqui para ver se tem usuários ou não, fazer a autenticação da maneira que temos ali no fluxo do Firebase UI.

Entrando aqui novamente em Sign in, eu vou colocar um e-mail novo que vai ser ‘alex@meetups.com’. Apertando o botão ‘next’, ele vai fazer o primeiro cadastro.

Eu vou colocar como Alex no meu primeiro nome apenas, e assim eu vou deixar aquela senha padrão que é ‘teste1’, para poder simular os testes rapidamente.

Clicamos no botão save e ele já vai fazer todo o procedimento para autenticar. E pronto, ele conseguiu autenticar para nós.

Então, é isso que você precisa fazer para que toda a configuração inicial funcione da maneira esperada, e como podemos ver temos aqui Eventos, Inscrições, e não temos nada porque realmente não temos nenhuma informação lá na nossa aplicação web.

Então vamos cadastrar algumas informações só para vermos se realmente funciona. Eu vou até colocar informações de teste, então em Descrição: teste, clico no botão salvar, sem nenhuma imagem para vermos.

Podemos acessar nessa tela de Eventos, ele já faz essa busca para nós e já pega a informação, como também se nós colocarmos aqui mais um evento que seria em Título: teste1, na Descrição: teste1 também, e uma imagem, nesse caso essa imagem que eu tinha pegado anteriormente, vamos ver o que acontece.

Ele vai salvar aqui para nós e para buscarmos novamente, podemos até mesmo usar esse componente SwipeRefreshLayout, ele já vai pegar esse evento para nós.

Então perceba que aqui já conseguimos fazer a nossa integração inicial e até mesmo já temos algumas funcionalidades prontas, como é o caso por exemplo de entrar no evento, fazer a inscrição e assim por diante.

Por exemplo, eu quero me inscrever, eu cliquei ali em ‘inscrever’, ele apresenta esse ícone representando quantos inscritos têm, e se eu quero ver se eu sou inscrito deve evento, ele tem as inscrições, então também podemos fazer nesse outro evento, clicando em "inscrição", temos as inscrições.

E se você quiser sair, você pode cancelar, cancela inscrição ou até mesmo na parte de eventos, você também pode tirar a sua inscrição.

Então é basicamente isso que precisamos fazer nessa primeira etapa da nossa aplicação. Ela já conseguiu fazer a integração para nós.

Aqui no ‘ícone superior direito da tela do Android’, se você preferir você pode também deslogar e se você quiser logar com a mesma conta você faz o mesmo procedimento, só que agora ele não vai exigir aquele cadastro, vai ser diretamente a senha porque ele já vai reconhecer que é o e-mail que existe.

Ele já pede a senha após inserir o e-mail, senha: teste1, nesse caso é o teste que eu estou fazendo e ele já mostra para nós a nossa aplicação com os eventos, inscrições, tudo o que você colocar.

Essa é a aplicação que vai estar pronta para você e é o que vamos utilizar para dar continuidade aqui no curso.

Agora, algumas informações importantes para que você não fique perdido durante esse projeto. Esse projeto basicamente foi feito utilizando as tecnologias que já vimos em outros conteúdos aqui da plataforma como é o caso do Navigation, Retrofit, Viewmold, Livedata e assim por diante.

E se você quiser ficar curioso e querer mexer, fica à vontade, você pode navegar aqui no projeto e modificar da maneira que você preferir. Então nessa parte de ‘DI’ que seria de ‘Dependency Injection’, vai estar toda a configuração do nosso Koin. Nessa parte, por exemplo de ‘Repository’, vai ter as configurações dos repositórios que faz a comunicação com a nossa web ‘API’.

É aqui em ‘EventoRepository’ que teremos acesso ao ‘service’ de eventos para conseguirmos consumir eventos, é aqui que ele vai buscar justamente as informações para indicar se deu certo, se deu errado.

Tudo o que utilizamos para comunicar, podemos sim observar nessa parte de ‘EventoRepository’, inclusive eu estou utilizando algumas técnicas um pouco diferentes do que já vimos em outros conteúdos que é o caso por exemplo de utilizar o ‘LiveData’ junto com o ‘Coroutines’ fazer essa comunicação.

Fique tranquilo, porque se tiver muito confuso essa informação, durante algum momento eu vou disponibilizar algum artigo, escrever algum conteúdo a mais que aí eu mostro mais ou menos como é que funciona.

Mas basicamente dentro aqui desse ‘LiveData’, nós podemos executar códigos assíncronos e quando temos um resultado, mandamos esse ‘emit’, que ele já manda o resultado da mesma maneira que mandaria no ‘LiveData’ colocando o “valory”.

Então é uma maneira diferente de fazermos as mesmas coisas que já fazíamos anteriormente com o Retrofit, ou LiveData, só que numa nova sintaxe, utilizando aqui Coroutines, onde já temos vídeos de Alura, falando a respeito desse recurso.

Se seguirmos mais adiante, temos activity, extensions, fragment, e assim por diante. São coisas que já vimos sim em outros cursos, acho que a maior novidade que temos aqui é essa parte do LiveData.

Mas novamente, fique à vontade em vasculhar, mexer aqui no projeto, modificar. O objetivo não é que você mexa, e sim que já tenhamos esse ambiente pronto para prosseguirmos para os próximos passos, explorando cada vez mais essa nova ferramenta que é o Firebase Cloud Messaging.

A configuração inicial é essa, já conseguimos fazer a integração e o nosso próximo passo é entender mais a fundo o que é o Firebase Cloud Messaging e o que ele vai nos ajudar durante esse projeto.

Sobre o curso Firebase com Android: Push Notification no Cloud Messaging

O curso Firebase com Android: Push Notification no Cloud Messaging possui 197 minutos de vídeos, em um total de 41 atividades. Gostou? Conheça nossos outros cursos de Android em Mobile, ou leia nossos artigos de Mobile.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Android acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas