Sobes.tech
Junior — Middle

Pode explicar o que significa o padrão BLoC na arquitetura da aplicação?

sobes.tech IA

Resposta da IA

O padrão BLoC (Business Logic Component) na arquitetura de aplicações Flutter destina-se a separar a lógica de negócio da interface de utilizador. Ajuda a gerir o estado da aplicação, tornando o código mais modular e testável.

Ideias principais do BLoC:

  • Fluxos de dados (Streams): O BLoC usa fluxos (Streams) para transmitir eventos da UI e emitir estados de volta.
  • Eventos de entrada (Events): A UI envia eventos ao BLoC, por exemplo, um clique num botão.
  • Estados de saída (States): O BLoC processa os eventos e emite novos estados, aos quais a UI está inscrita.

Exemplo de um BLoC simples em Dart:

import 'dart:async';

class CounterBloc {
  int _counter = 0;

  final _stateController = StreamController<int>();
  Stream<int> get counterStream => _stateController.stream;

  final _eventController = StreamController<void>();
  Sink<void> get incrementSink => _eventController.sink;

  CounterBloc() {
    _eventController.stream.listen((_) {
      _counter++;
      _stateController.sink.add(_counter);
    });
  }

  void dispose() {
    _stateController.close();
    _eventController.close();
  }
}

Aqui, a UI envia um evento para incrementSink, o BLoC incrementa o contador e envia o novo valor para o fluxo counterStream, ao qual a UI está inscrita.