RxDart — Implementando o RxDart
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:
- RxDart — Introdução
- 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!
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!!!