Primeiro framework multithread de gerenciamento de estado/clean architecture #130
JCKodel
started this conversation in
Mostre seus trabalhos
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
https://pub.dev/packages/eva. | https://github.com/JCKodel/eva
EVent-drive Architecture for SOLID Flutter applications
Features
Multithread automático - Enquanto o Flutter roda em seu próprio isolate, o orquestrador de eventos, seu código de domínio e repositórios rodam em um isolate separado.
Separação de conceitos - Clara separação entre orquestração de UI (que evento de UI dispara qual resposta de domínio), lógica de negócios testáveis em classes de domínios que usam dados de repositórios (base de dados locais, APIs, etc.)
Sistema de injeção de dependências integrado - Todas camadas configuradas com uma injeção de dependência simples, onde você pode injetar o que desejar em seus construtores.
Ambientes integrados - Toda injeção de dependência ocorre dentro de classes de ambientes, onde você pode ter um ambiente de desenvolvimento
DevEnvironment
com algumas configurações e um ambiente de produçãoProdEnvironment
com outras. Você pode ter quantos ambientes desejar.Sem necessidade de geração de código. Eva roda com uma simples linha de código:
Eva.useEnvironment(() => const YourEnvironmentClass())
Sem boiler-plate - Além da injeção de dependência, não há boiler-plate requerido do framework.
Testável - Tuas classes de domínio são puras e podem facilmente ser testadas em testes de unidade.
Sem exceções - Repositórios e eventos funcionam com uma resposta de estado funcional, com os estados
vazio
,aguardando
,sucesso(valor)
efalha(exceção)
com handlers funcionais, como.map
,.match
,.maybeMatch
). Sem maistry/catch
!Sem nulls - Repositórios e eventos tem um estado especial chamado
empty
para valores vazios.Lida com progresso de forma automática - Eventos possuem um estado
waiting
para que a UI possa renderizar um progress indicator enquanto o domínio está ocupando fazendo seu trabalho.Event builders - Widgets que respondem à eventos, com builders automáticos para
empty
(vazio),waiting
(CircularProgressIndicator),failure
(FlutterError) e o builder dosuccess
, para que você não precise deif/switch
. Você pode até usar teus próprios widgets customizados para cada tipo de resposta.Event-driven: A UI emite comandos que são manipulados pelo seu código, chamando teu domínio e disparando eventos de resposta para a UI Flutter.
Beta Was this translation helpful? Give feedback.
All reactions