ericklborges / The-Norris

1 stars 0 forks source link

Definir arquitetura #2

Closed ericklborges closed 3 years ago

ericklborges commented 3 years ago
ericklborges commented 3 years ago

Módulos

📱 Aplication (The-Norris)

Módulo onde ficará a implementação das features. Como o app é muito pequeno, eu não vi a necessidade de quebrar a aplicação em módulos divididos por feature.

🛠 AplicationTests (The-NorrisTests)

Testes das regras de negócio da aplicação.

🧰 Network (Client)

Módulo responsável por abstrair comunicação com APIs.

🛠 NetworkTests (ClientTests)

Testes das regras de negócio da comunicação com APIs.

🧰 Interface

Módulo em que ficarão os componentes visuais básicos do aplicativos, assim como cores, fontes utilizadas ao longo da aplicação.

🛠 InterfaceTests

Testes dos comportamentos e layout dos componentes.

ericklborges commented 3 years ago

🏗 Arquitetura

Principal

A arquitetura do aplicativo será MVVM, com a possibilidade da adição de uma camada de service para descarregar a ViewModel de regras de negócio relacionadas à consumo de dados e tratamento de erros a API.

Navegação

A navegação será baseada em ChildViewControllers, com o uso de uma camada chamada de "FlowController".

Esta abordagem se assemelha bastante ao Coordinator, porém com a stack de "ChildCoordinators" toma proveito do próprio ciclo de vida das UIViewControllers como uso de ChildViewControllers, o que trás vantagens uma grande vantagem durante a inicialização e finalização de fluxos.

Além disso eu também usarei uma implementação de uma "controller base" chamda StateViewController para abstrair os principais estados de um tela, também fazendo uso de ChildViewControllers.