¿Flutter - Es GetX un mal gestor de estados?
Alguna vez has visto en las redes sociales a alguien comentar que está usando GetX y recibe cientos de comentarios negativos: "No uses GetX, es el peor gestor de estados", "Google no recomienda GetX", "GetX es para perdedores", etc.
Y al preguntar por qué GetX es un mal gestor de estados la mayoría de esas personas que comentan se quedan calladas, ¿por qué será?. Bueno muchas de estas personas que comentan cosas negativas solo repiten lo que otros dicen sin ponerse a investigar.
Entonces, ¿GetX es un mal gestor de estados?
Desde mi punto de vista No GetX no es un mal gestor de estados. Pero es un gestor de estados que yo no recomiendo usar para los principiantes porque GetX hace tantas cosas "Mágicamente" que en realidad no están aprendiendo Flutter y se convierten en fanáticos de GetX y después es muy difícil sacarlos de su zona de confort. En otras palabras "Para aprender a correr, primero debes aprender a caminar".
Y si eres una persona con conocimientos avanzados de Flutter probablemente no estés usando GetX.
¿Qué podría mejorar GetX?
- El sitio web: Como poder confiar en un paquete que te envía a un sitio web inexistente, por lo menos los últimos 6 meses el sitio web no existe.
-
La documentación: La documentación de GetX tiene muchas cosas que mejorar. Otros gestores de estado como flutter_bloc o riverpod tienen sitios web con buena documentación y repositorios con varios ejemplos. En GetX la documentación podría mejorar agregando varios ejemplos de cómo hacer las cosas, sobre todo agregar ejemplos para tener una buena arquitectura y tests avanzados, no el clásico test de 1 + 1 = 2.
-
No hay separación de la lógica de negocios y la vista: En GetX la vista y la lógica de negocios no se puede separar correctamente por lo que en algunos casos complica mucho el hacer test que son muy sencillos de hacer con otros gestores de estados.
Incluso en la documentación de GetX mencionan que hacer esta separación de la vista y la lógica no es una característica de GetX
- Enfocarse en una sola: GetX tiene muchas funcionalidades como inyección de dependencias, gestor de estados, gestor de rutas, internacionalización, hacer peticiones a API REST y GraphQL, etc. Si el autor de GetX enfoca todo su tiempo en una sola cosa, por ejemplo, el gestor de estados, el autor podría tener uno de los mejores gestores de estados. Pero si dedica un poco de tiempo a cada funcionalidad ninguna de ellas va a ser perfecta.
Nota: Personalmente, yo solo recomiendo usar GetX como gestor de estado e inyección de dependencias, para todo lo demás hay mejores paquetes.
Conclusión
No soy un "hater" de GetX, pero tampoco soy un fanático que lo defiende con todas sus fuerzas. Soy un programador que ha trabajado con stateful widgets, provider, riverpod, bloc y getx. Y getx como otros gestores de estado tiene sus ventajas y desventajas.
En la vida real, cuando trabajen en alguna empresa tal vez no usen getx como gestor de estado y van a tener que aprender cosas nuevas. Lo mejor siempre es no olvidar ser humildes y estar dispuesto a experimentar y aprender cosas nuevas.