Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Como usar Stream no Flutter

Como usar Stream no Flutter

Introdução

Antes de mais nada Stream é uma interface abstrata que representa uma sequência de dados assíncronos. A princípio os desenvolvedores do Flutter usam streams para gerenciar dados assíncronos.

Criando um StreamController

Assim o primeiro passo para como usar stream no Flutter é criar um StreamController. Contudo um StreamController é um objeto que gerencia a criação e o fluxo de dados de um stream.

Dessa forma no código acima, usamos o método StreamController.broadcast() para criar um StreamController que permite que vários ouvintes se inscrevam no stream.

Filtrando um Stream

Ainda mais o método where() pode ser usado para filtrar um stream. Afinal o método where() recebe uma função como parâmetro que é usada para determinar quais valores devem ser incluídos no stream filtrado.

Bem como no código acima, usamos o método where() para filtrar o stream para incluir apenas valores pares.

Adicionando dados a um Stream

Os dados podem ser adicionados a um stream usando o método sink.add(). O método sink.add() recebe um valor como parâmetro que é adicionado ao stream.

Contudo no código acima, usamos um loop for para adicionar os valores de 1 a 10 ao stream.

Fechando um Stream

O método close() deve ser usado para fechar um stream quando ele não for mais necessário. Pois o método close() indica ao Flutter que o stream não produzirá mais dados.

No código acima, usamos o método close() para fechar o stream após adicionar todos os dados.

Comentário do código

Logo o código acima cria um StreamController que emite uma sequência de números de 1 a 10. Desta forma o código filtra o stream, incluindo apenas valores pares. O código imprime os valores pares na tela.

Aqui está uma explicação mais detalhada de cada parte do código:

  • import ‘dart:async’;

Este import é necessário para usar a classe StreamController.

  • void main() {

Esta é a função principal do aplicativo.

  • final StreamController<int> ctrl = StreamController<int>.broadcast();

Este código cria um StreamController chamado ctrl. O ctrl é definido como broadcast(), o que significa que permite que vários ouvintes se inscrevam no stream.

  • final StreamSubscription sub = ctrl.stream.where((valor) => (valor % 2 == 0)).listen((valor) => print(‘$valor’));

Este código cria uma StreamSubscription chamada sub que está inscrita no stream ctrl. A sub usa o método where() para filtrar o stream para incluir apenas valores pares. Os valores pares são então impressos na tela usando a função print().

  • for(int i=1; i< 11; i++){

Este loop for adiciona os valores de 1 a 10 ao stream ctrl.

  • ctrl.close();
import 'dart:async';

void main() {
  final StreamController<int> ctrl = StreamController<int>.broadcast();
  
  final StreamSubscription sub = ctrl.stream
    .where((valor)=> (valor % 2 == 0))
    .listen((valor)=> print('$valor'));
  
  for(int i=1; i< 11; 1){
    ctrl.sink.add(i);
  }
  
  ctrl.close();
}

Este código fecha o stream ctrl.

Conclusão

Em suma Stream é a ferramenta poderosa que e usada para gerenciar dados assíncronos no Flutter. Contudo ao entender como usar Stream no Flutter, você pode criar aplicativos mais eficientes e responsivos.

Assine nossa newsletter

Seja avisado sempre que surgir conteúdo novo

Blog mundo dev Mobile - Copyright © 2024 - Todos os Direitos Reservados.