0

Introdução ao RxJava

Carlos Ribeiro
Carlos Ribeiro

Ao fazer um aplicativo esses dias. me deparei com uma dificuldade para representar um fluxo assíncrono de dados. ao pesquisar sobre aprendi a utilizar a biblioteca o RxJava e resolvi compartilhar este artigo que me ajudou muito com vocês.


Introdução

A cada dia que passa a internet vai crescendo e com ela a demanda por informação em tempo real. para nós que estamos no começo da vida profissional como desenvolvedores, significa adotar uma programação mais dinâmica e assíncrona. Uma das formas de fazer isso é através da programação reativa, que nos últimos tempos tem ganhado grande popularidade.


Programação Reativa

Programação reativa é um paradigma de programação baseado em fluxos de dados (streams) e na propagação de mudanças nesses fluxos

por exemplo:

Usando a forma tradicional de desenvolvimento, ao preparar um bolo chamamos o método

prepararTrigo(trigo)

e o método

prepararAcucar(acucar)

assim que tivermos isso pronto chamamos o método

baterClaras(ovos)

de seguida o método

misturarTudo()

e por fim o método

meterForno()

Perfeito, o bolo estará delicioso!

Mas, imaginem se não tivermos os ovos? Bom, o sistema falha assim que o método baterClaras(ovos) é invocado e não temos bolo nenhum.

Na programação reativa o cenário é um pouco diferente. Os eventos ocorrem de forma paralela sem precisar seguir nenhuma ordem cronológica e linear. Por exemplo, na programação reativa o sistema não irá travar, ele reconhece que é possível continuar sem os ovos e executa outras tarefas em paralelo enquanto espera pelos ovos.

Podemos, assim, definir programação reativa como um paradigma da programação baseado em eventos que podem ser aguardados em diferentes pontos do código que são chamados para execução de lógicas específicas.


O que é o RxJava?

o RxJava é uma biblioteca que possibilita o uso da programação reativa para a linguagem de programação java ( podendo ser usado em kotlin também). O Rx significa Reactive Extensions (Reactivex), que é um projeto que fornece a implementação da programação reativa para diferentes linguagens de programação.


Onde Usar?

Existe uma infinidade de cenários onde o RxJava pode ser utilizado. mas de uma forma geral, ele é utilizado em chamadas assíncronas, tais como:

  • Acesso à rede, tais como chamadas HTTP;
  • Leitura e escrita no sistema de arquivos e banco de dados;
  • Controle de eventos de UI que devem disparar ações;
  • Tratamento de dados dos sensores do aparelho;
  • envio de mensagens internas da aplicação;


Usos Comuns

No desenvolvimento de aplicações Android, o RxJava é muito utilizado para substituir ou fornecer uma forma mais elegante para resolver problemas que podem ser solucionados com algumas bibliotecas de terceiros e/ou APIs nativas do Android:

  • AsyncTask
  • Chaining callbacks
  • Handler/ TimerTask
  • Retrofit
  • EventBus


Componentes Principais do RxJava

O RxJava é composto por:

  • Observables: Emitem os Dados
  • Observers
  • Schedulers
  • Operators


Observables

São a fonte de dados, começam a emitir dados assim que tiverem um observer inscrito. isto é, os observables representam uma fonte de dados cujo o seus estado possa ser de interesse para outros objetos(observer). Esses objetos são notificados quando o estado do observable é alterado.


O ciclo de vida de um obserbable é composto por:

  • onNext(): É chamado sempre que ocorre algum evento no Observable. Este é o método em que são realizadas algumas ações em cada evento.


  • onCompleted(): É chamado quando os eventos associados ao Observable são concluidos. Assim que este método é chamado, não devemos esperar mais nenhuma atividade vinda do método onNext()


  • onError(): Este método serve para notificar ao Observable sobre a ocorrência de algum erro.

Observer

Os Observers são os objetos que consomem os dados emitidos por um Observable.

Podem haver múltiplos Observers registrados para receber dados emitidos por um Observable.

Observers podem( e devem) tratar quaisquer erros que venham a ocorrer enquanto o Observable está emitindo dados. Ele também saberá quando não houver mais itens a serem consumidos.


No próximo artigo vou mostrar como implementar a biblioteca e o uso na prática.


Bons Ventos a todos.


Referências

https://www.devmedia.com.br/programacao-reativa-com-a-biblioteca-rxjava/33651

https://www.youtube.com/watch?v=391H38-7JYk

https://www.youtube.com/watch?v=0FpphC6hL5I

https://www.youtube.com/watch?v=htIXKI5gOQU


0
0

Comentários (2)

0
Isaias Bueno

Isaias Bueno

01/05/2021 08:29

Estou começando a estudar sobre esse assunto, muito obrigado por compartilhar.

0
Denner Evangelista

Denner Evangelista

29/04/2021 12:05

Muito bom Carlos, obrigado por compartilhar.

Forma de Vida Baseada em Cafeína. Organismo multicelular deformado pela matemática mas desconformado pelo que há de torto na literatura, música e cinema.

Brasil