Sobes.tech
Junior — Middle

Como avalia o seu nível de conhecimentos e experiência com o padrão de arquitetura BLoC?

sobes.tech IA

Resposta da IA

BLoC (Business Logic Component) — padrão arquitetónico amplamente utilizado no Flutter para separar a lógica de negócio da interface de utilizador. Baseia-se em fluxos de dados (Streams) e programação reativa.

O padrão permite:

  • Separar a lógica dos widgets.
  • Gerir o estado através de fluxos de eventos e estados.
  • Garantir testabilidade e reutilização do código.

Num BLoC típico há:

  • Eventos de entrada (Sink), que a UI envia para o BLoC.
  • Um fluxo de estados (Stream), ao qual a UI se inscreve para atualizar a interface.

Exemplo de um BLoC simples:

class CounterBloc {
  final _counterController = StreamController<int>();
  int _counter = 0;

  Stream<int> get counterStream => _counterController.stream;

  void increment() {
    _counter++;
    _counterController.sink.add(_counter);
  }

  void dispose() {
    _counterController.close();
  }
}

Utilizo BLoC para gerir o estado em aplicações de dificuldade média, onde é importante separar claramente a lógica da UI, e também para facilitar os testes da lógica de negócio.