Como os dijimos hace unos días, vamos a continuar con VIPER y vamos a profundizar un poco más. En esta publicación os contaremos en qué ocasiones utilizaremos VIPER y en qué momentos no.
3. ¿Cuándo debemos utilizar VIPER?
Al crear un proyecto que tiene un potencial de evolución, es importante pensar en una estructura que se adapte bien y que permita que muchos desarrolladores trabajen simultáneamente en él de la manera más perfecta posible. Por ello, en estos casos, la estructura MVC puede no ser suficiente para mantener un proyecto que esté debidamente organizado.
Es muy común que los desarrolladores se encuentren depurando una gran clase para buscar un error y se sientan como si estuvieran buscando una aguja en un pajar.
Con el desacoplamiento entre los objetos que VIPER propone, podremos ver que:
- Es más fácil hacer un seguimiento de los problemas a través de informes de fallos (debido al Principio de Responsabilidad Única).
- Añadir nuevas funciones es más fácil.
- El código será más limpio, más compacto y reutilizable.
- Hay menos conflictos con el resto del equipo de desarrollo.
- Es más fácil escribir pruebas automatizadas (dado que su lógica de UI está separada de la lógica de negocios).
- Cumple con los principios SOLID.
¿Cuándo NO debemos utilizar VIPER?
Dependiendo del tipo de proyecto, será mejor utilizar un tipo de arquitecturas u otra.
Debido a la cantidad de elementos involucrados, VIPER puede generar una sobrecarga cuando se inicia un nuevo proyecto (aunque en gran medida se amortiza a largo plazo). Por ello, puede ser una exageración para proyectos pequeños que no pretenden escalar.
Si el equipo no está completamente alineado con el mantenimiento de la estructura de VIPER, terminará con una combinación MVC-VIPER que puede causar dolores de cabeza, así que asegurémonos de que el equipo esté completamente sincronizado antes de seguir adelante con esta arquitectura.
Conclusiones
VIPER es un patrón de arquitectura para proyectos iOS realmente bueno, entre otros, como MVP y MVVM, que cumple con los principios SOLID, los más importantes en la programación orientada a objetos. Si tienes curiosidad por saber más sobre la arquitectura VIPER, existen más artículos relacionados en internet, pero nuestra recomendación es que te descargues repositorios que utilicen la arquitectura y que practiques a partir de ellos, (que incluso puedes montarte tus propios proyectos desde cero).