poc_arch

FEATURES:

Pasta local responsável por guardar as camadas de um fluxo/feature, dentro de cada feature teremos a model, viewmodel, view, utils, e builders

UTILS:

Além de guardar as utils default da feature, também pode guardar as keys dos widgets

TEST:

Os testes ficam na raiz, espelhando a arquitetura do código de produção.

UI:

Responsável por guardas os componentes locais, e ter a lógica de ui dentro do próprio widget, preferencialmente usando o padrão Atomic Design para separar bem os widgets com suas lógicas embutidas

ViewModel (Cubit/BLOC):

Será chamada quando for necessário fazer uma requisição a uma API externa, não deve guardar estados, e sim emiti-los para que a UI possa reagir adequadamente a cada um deles. Deve transformar o objeto Response que retorna da repository, e transforma-la em uma model que sera usada na VIEW, dentro dessa model terao as trativas de necessárias para que a tela somente os exiba

Repository:

Será responsável por chamar o CoreRequester, que irá retornar uma Response, Http/Dio ou algum outro tipo, após receber os dados corretos, deve serializa-lo em um objeto dart fiel a resposta do back end e retorna-lo a Cubit, caso receba uma exceção, dá um rethrow e sobe para a cubit