Skip to main content

2 posts tagged with "bloc"

View All Tags

· 2 min read

Hey 👋,

Hoje vou compartilhar com você um commit bem interessante do repositório do Flutter:

Implementing switch expressions in foundation/ and material/

Contém a implementação do "novo" switch da linuagem Dart em 2 pacotes importantíssimos do framework: foundation e o material. É interessante ver na prática como um novo recurso da linguagem agora integra os aplicativos que iremos criar.

O Dart vem evoluindo e se aperfeiçoando, trazendo funcionalidades já existentes em outras linguagens, tornando-a assim mais robusta e atrativa, especialmente para dessenvolvedores de plataforma nativas que contam com alguns recurso que só existem no Kotlin/Swift.

Lendo o código antes e depois podemos avaliar o quanto a legibilidade melhora.

Aqui está o código antigo:

switch (parameters['value']) {
case 'Brightness.light':
debugBrightnessOverride = ui.Brightness.light;
case 'Brightness.dark':
debugBrightnessOverride = ui.Brightness.dark;
default:
debugBrightnessOverride = null;
}

Aqui está o código novo:

debugBrightnessOverride = switch (parameters['value']) {
'Brightness.light' => ui.Brightness.light,
'Brightness.dark' => ui.Brightness.dark,
_ => null,
};

Este novo switch foi introduzido na versão 3.1, liberada em agosto de 2023. Ou seja, não é uma atualização tão nova assim, mas só agora ela está fazendo parte do Flutter. Deixo aqui o link para você conferir em detalhes: https://dart.dev/language/branches#switch-expressions

Espero que você tenha gosta e esta dica tenha sido útil. Dá uma conferida no link do commit, vale a pena!

· One min read

BLoC Banner

Gerenciamento de estado com Flutter é um tópico bem amplo e neste post vamos explorar (um pouco) sobre o tão conhecido BLoC!

BLoC e bloc_library não são a mesma coisa! É crucial entender que, apesar do nome, eles representam coisas diferentes.

O padrão BLoC é uma arquitetura que separa a lógica de negócios da interface do usuário.

O package bloc_library é uma implementação concreta desse padrão.

O pattern e o package são distintos.

O pattern foi apresentado pelo Google na DartConf em 2018. Foi a arquitetura escolhidas para compartilhar a lógica de negócio entre um aplicativo Flutter e uma aplicação AngularDart, utilizando Streams.

O package implementa esta arquitetura, abstraindo e facilitando a implementação do pattern. E deu tão certo que é um dos packages mais populares para gerenciamento de estado.

E é essencial reconhecer que o pattern em si é independente e pode ser implementado sem este package.