Skip to main content

2 posts tagged with "package"

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.