Conceptos avanzados de dardos: corrientes y bloques

Capítulo 44

Tiempo estimado de lectura: 3 minutos

+ Ejercicio
Audio Icon

Escuchar en audio

0:00 / 0:00

Streams y Blocs son conceptos avanzados de Dart que le permiten manipular datos de forma asincrónica y reactiva, respectivamente. Estos conceptos son fundamentales para crear aplicaciones complejas y eficientes, y se utilizan ampliamente en Flutter.

Transmisiones

En Dart, una secuencia es una secuencia de eventos asincrónicos. Puede emitir cero o más eventos de datos y un evento de error o finalización. Los eventos de datos se emiten secuencialmente y pueden ser consumidos por un oyente, que es una función que procesa los eventos a medida que ocurren.

Una secuencia se puede crear de varias maneras. La forma más sencilla es utilizar la función Stream.fromIterable, que crea un Stream a partir de una colección iterable. Por ejemplo:

números var = [1, 2, 3, 4, 5];
var flujo = Stream.fromIterable(números);
flujo.escuchar((número) {
  imprimir(número);
});

Este código crea una secuencia que genera los números del 1 al 5, uno a la vez. La función de escucha se utiliza para registrar un oyente que imprime cada número a medida que se emite.

También se pueden crear transmisiones a partir de fuentes de datos asincrónicas, como archivos o conexiones de red. Por ejemplo, la clase Archivo en Dart tiene un método openRead que devuelve una secuencia de bytes. Este método se puede utilizar para leer un archivo de forma asincrónica, como en este ejemplo:

Continúa en nuestra aplicación.
  • Escuche el audio con la pantalla apagada.
  • Obtenga un certificado al finalizar.
  • ¡Más de 5000 cursos para que explores!
O continúa leyendo más abajo...
Download App

Descargar la aplicación

var archivo = Archivo('archivo.txt');
var flujo = archivo.openRead();
flujo.escuchar((fecha) {
  print(String.fromCharCodes(datos));
});

Este código lee un archivo llamado 'file.txt' e imprime su contenido como texto. Stream emite eventos de datos a medida que se leen bytes del archivo y el oyente los convierte en texto y los imprime.

Bloques

En Flutter, el patrón Bloc (Componente de lógica empresarial) se utiliza para separar la lógica empresarial de la interfaz de usuario. Un Bloque es una clase que expone una Corriente de estados y acepta eventos. La lógica empresarial se implementa como una función que asigna eventos a estados.

Por ejemplo, considere una aplicación de lista de tareas pendientes. La interfaz de usuario puede emitir eventos como "agregar tarea" o "eliminar tarea", y el estado de la aplicación puede ser la lista actual de tareas. Un Bloc para esta aplicación se puede implementar de la siguiente manera:

clase TodoBloc {
  final _stateController = StreamController>();
  final _eventController = StreamController();

  Stream> obtener stateStream => _stateController.stream;
  Sink get eventSink => _eventController.sink;

  TodoBloque() {
    _eventController.stream.listen(_mapEventToState);
  }

  void _mapEventToState (evento de evento) {
    // implementar la lógica de negocios aquí
  }

  eliminación nula() {
    _stateController.close();
    _eventController.close();
  }
}

Este código define un Bloque que tiene un Flujo de estados y un Sumidero de eventos. Sink es una interfaz que le permite agregar eventos al Stream. El método _mapEventToState se llama para cada evento y es responsable de actualizar el estado según el evento.

En resumen, Streams y Blocs son conceptos poderosos de Dart que le permiten crear aplicaciones reactivas y eficientes. Los flujos le permiten manipular datos de forma asincrónica, mientras que los bloques le permiten separar la lógica empresarial de la interfaz de usuario. Ambos son fundamentales para crear aplicaciones complejas con Flutter.

Ahora responde el ejercicio sobre el contenido:

¿Cuáles son las características y funciones de Streams y Blocs en Dart and Flutter?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente capítulo

Conceptos avanzados de Dart: pruebas unitarias y de integración

Arrow Right Icon
Portada de libro electrónico gratuitaCómo crear apps desde cero hasta avanzadas usando Flutter y Dart curso completo
16%

Cómo crear apps desde cero hasta avanzadas usando Flutter y Dart curso completo

5

(3)

267 páginas

Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.