MVVM não é tudo isso.

O MVVM ou Model-View-ViewModel tem sido bastante utilizado no desenvolvimento de aplicativos para iOS, mas será que é uma...

Dextra

View posts by Dextra
Somos especialistas em desenvolvimento de software sob medida para negócios digitais. Pioneiros na adoção de metodologias de gestão ágil, combinamos processos de design, UX, novas tecnologias e visão de negócio, desenvolvendo soluções que criam oportunidades para nossos clientes. A Dextra faz parte da Mutant, empresa B2B líder no mercado brasileiro e especialista em Customer Experience para plataformas digitais.
Data de publicação: 28/11/2017
Quanto tempo você leva para retomar a concentração após ser interrompido? Entenda como essas interrupções são prejudiciais para nossas atividades diárias.

O MVVM ou Model-View-ViewModel tem sido bastante utilizado no desenvolvimento de aplicativos para iOS, mas será que é uma boa arquitetura? Um artigo chamado MVVM is Not Very Good de Soroush Khanlou apresenta algumas problemáticas dessa arquitetura que tem sido bastante utilizada e comentada em artigos.

Como vimos no artigo – Qual a melhor arquitetura mobile?, o MVVM quando inserido no desenvolvimento para aplicativos iOS possui a estrutura:
1_ERIt6oXEmm00ozFwZKECbA@2x
Khanlou apresenta de forma detalhada alguns problemas quando aplicamos o MVVM no desenvolvimento para iOS e conceitos mais gerais.
Nomenclatura
Quando analisado em relação a nomenclatura, Khanlou questiona o significado do termo ViewModel. Por ser um nome muito abstrato, ele refere-se a dois patternsView Model. A primeira impressão, trata-se de um objeto “burro”, que será utilizado pela View para popular seus elementos de UI. Não possuiria nenhuma lógica ou métodos.
Responsabilidades
O MVVM não deixa claro qual responsabilidade deve possuir na camada ViewModel. Se compararmos o problema que temos com o MVC em relação a distribuição de responsabilidades, chegaremos em um cenário do tipo:

MVVM Massive ViewModel
MVVM Massive ViewModel

Muita coisa pode ser feita nessa camada, como: requisições, lógica de apresentação, validações… Khanlou apresenta uma série de artigos em que cada um atribui responsabilidades diferentes para a ViewModel.
Estrutura
Por último, Khanlou comenta que quando comparado o MVVM com MVC em termos estruturais, não existem diferenças:

MVC
MVC
MVVM
MVVM

Fonte das imagens: Objc.io
Devido ao “problema” da View ser subclasse da Controller no CocoaViewModel no MVVM passa a ser o objeto próprio como deveria ser a View Controller no MVC.
Conclusão
Khanlou levanta vários pontos importantes sobre a arquitetura MVVM o que nos faz refletir, principalmente sobre o aspecto de responsabilidade na camada ViewModel. O time precisa tá muito bem alinhado quanto a esse aspecto, para que consiga construir uma arquitetura consistente.
Referências
http://khanlou.com/2015/12/mvvm-is-not-very-good/

Dextra

View posts by Dextra
Somos especialistas em desenvolvimento de software sob medida para negócios digitais. Pioneiros na adoção de metodologias de gestão ágil, combinamos processos de design, UX, novas tecnologias e visão de negócio, desenvolvendo soluções que criam oportunidades para nossos clientes. A Dextra faz parte da Mutant, empresa B2B líder no mercado brasileiro e especialista em Customer Experience para plataformas digitais.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

dezessete − onze =

Posts relacionados

  1. Sobre a Dextra

    Somos especialistas em desenvolvimento de software sob medida para negócios digitais. Pioneiros na adoção de metodologias de gestão ágil, combinamos processos de design, UX, novas tecnologias e visão de negócio, desenvolvendo soluções que criam oportunidades para nossos clientes.

  2. Categorias

Scroll to top