RxDart — Implementando o RxDart

Igor L Sambo💙🇲🇿
GDG Maputo
Published in
3 min readSep 27, 2019

Aplicações assíncronas e que se adaptem melhor a dinâmica do utilizador são as que mais têm destaque e poder desenvolver aplicações que possam encaixar às necessidades do utilizador é um grande calcanhar de Aquiles para muitos desenvolvedores.

O facto de existirem bibliotecas como o RxDart para dar suporte a este tipo de soluções constitui grande alívio pela chance de poder focar mais na lógica da aplicações e menos no comportamento de dados que são constantemente bombardeados pelos intervenientes da mesma.

Para explicar melhor como funciona o RxDart eu trago um exemplo bastante simples e que melhor ilustra a aplicação dos conceitos explicados no último artigo, usando como objecto de estudo o PublishSubject para um simples módulo de pesquisa.

Recordar que este artigo faz parte da série RxDart que conta com dois artigos, sendo:

  1. RxDart — Introdução
  2. RxDart — Implementando o RxDart (este artigo)

Sem mais delongas, passemos ao código, e se tiver dúvidas quanto ao RxDart pode ler ao artigo já referenciado!

https://media.giphy.com/media/F3IpADL3airTiFPivh/giphy.gif

Porquê o PublishSubject?

O PublishSubject é bastante dinâmico comparativamente aos outros para o exemplo que escolhi de modo a explicar o RxDart.

Módulo de Pesquisa

Todos nós precisamos todos os dias de efectuar uma pesquisa e quanto melhor se comportar a aplicação no momento que estamos aflitos a procura de algo melhor nos sentimos em relação à mesma, e quanto mais eficiente melhor ainda, daí surge a necessidade de ter uma forma de obter dados sem depender das acções do utilizador para processar os mesmos. Por ser um módulo bastante importante e mais complexo que alguns outros exemplos é proposta para aprendermos RxDart.

1. pubspec.yaml

Todas as aventuras com bibliotecas em flutter começam pelo ficheiro que permite toda magia, isso, o pubspec.yaml e para este projecto nós queremos implementar especialmente o rxdart então precisamos colocar como dependência:

2. Tela de apresentação

Nós precisamos de uma tela de apresentação que seria para apresentar os dados da aplicação no geral, no caso é uma tela sem nada, mas que nos leva a tela de pesquisa a partir do SearchDelegate.

3. Lógica RxDart(Implementação do PublishSubject)

Aqui é onde nós temos a implementação do PublishSubject, onde são definidos os elementos necessários para ter o processo a funcionar, é importante elucidar alguns pontos:

a. Sink — representa o elemento responsável por pegar no dado logo que entra na estrutura (pense no exemplo de passagem de testemunho).

b. Streams — representa uma espécie de conversor para este caso, pois os dados foram recebidos como futures e para programação reactiva é necessário que os dados sejam tratados em streams (explicado no artigo anterior).

c. PublishSubject — apenas elucidar que é o objecto responsável pela lógica do algoritmo.

Nota: Pode baixar o projecto completo no meu repositório do github.

Espero que tenha aprendido com este artigo e que se tenha divertido enquanto lia.

Obrigado por acompanhar até ao fim e espero por você nos próximos artigos.

Para questões e sugestões esteja a vontade para tal nos comentários, email igorlsambo1999@gmail.com ou twitter @lsambo02.

Não se esqueça de contribuir para os projectos que se encontram no meu repositório do github, assim aprendemos todos!

Obrigado e até ao próximo artigo!!!

--

--