Skip to content

Como funciona um módulo do tipo feature?

Gabriel Bronzatti Moro edited this page Oct 22, 2023 · 2 revisions

Raio-X de um módulo Feature

O diagrama a seguir mostra uma radiografia ⚠️ de um módulo do tipo feature:

RaioX de um feature module

Claro que, nem sempre um módulo feature precisa ter todos esses elementos, mas em boa parte dos casos, temos os seguintes pacotes:

  • Data 📚: aonde é definido a fonte dos dados, os quais podem ser disponibilizados para o módulo como um Repository;

  • Domain 📐: aonde temos classes que representam estado da nossa regra de negócio (models) e os UseCases que permitem acessar a camada de dados de uma forma mais abstrata;

  • DI 🏭: aonde temos a construção dos objetos, esse pacote não está no diagrama, mas nele definimos como o Koin deve criar as instâncias necessárias para o módulo funcionar;

  • Presentation 🎨: aonde colocamos nossos componentes de UI, nossas telas e os ViewModels que se relacionam fortemente com os UseCases da camada de Domain.

O que mais importa aqui não é o nome dos pacotes, mas sim o protocolo de comunicação entre os diferentes elementos de software.