Gerenciamento de estados utilizando o Flutter Bloc
Lucas Oliveira
Posted on February 20, 2024
Então pessoal lá no meu outro post que você pode conferir seguindo clicando aqui deu pra ver que o Flutter Bloc é um dos requisitos mais solicitados dentro das vagas publicadas pelos hunters quando estão procurando desenvolvedores Flutter. Vamos entender um pouquinho da estrutura do BloC que pode e vai nos auxiliar muito no dia a dia, bem... Pelo menos para ser notados pelos recrutadores temos essa certeza né?!
Vamos lá!
Enquanto no Provider temos o gerenciamento de estados bem próximos ali dos Widgets, o BloC veio para dar uma mexida nisso, uma vez que poderemos separar o gerenciamento de estado em si da interface visual com que o usuário estará interagindo.
Como assim separar?! Esse BloC chega assim como não quer nada e já vem colocando as coisas fora do lugar? Pois é meu caro amigo, se você parar pra pensar as nossas views não deveria ter a responsabilidade de saber o que deveria ser exibido para o usuário, ela tem responsabilidade apenas de buildar e exibir.
Se você parar pra pensar vamos supor um caso que acontece demais, uma tela de lista de contatos que comunica-se com o back-end para trazer os dados do contato e mostrar para o usuário. Se você pensar rapidamente você pode até pensar que isso é apenas uma tela né?! Mas analisando direitinho você enxerga 3 telas dentro dessa.
Tela é toda interface gráfica que entra em contato com o usuário.
1 - Tela de loading enquanto o back-end processa a resposta;
2 - Tela com a lista de contatos;
3 - Tela de erro caso não obtermos o que aguardamos na resposta do back-end;
import 'package:equatable/equatable.dart';
import 'package:flutter/foundation.dart';
class HomeState extends Equatable {
@override
List<Object> get props => [];
}
class HomeLoadingState extends HomeState {}
class HomeErrorState extends HomeState {
final String message;
HomeErrorState({@required this.message});
}
class HomeStateLoaded extends HomeState {
final List<String> list;
HomeStateLoaded({@required this.list});
}
class HomeStateEmptyList extends HomeState {}
Para esse estudo criei um repositório para pôr em prática os conhecimentos em Bloc que pode ser acessado clicando aqui
Posted on February 20, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.