leanmind logo leanmind text logo

Blog

Código Sostenible

Cómo escribir código fácil de mantener mediante valores, principios y técnicas.

Flutter, ¡una maravilla! ¿o... no?

Por Michael Reyes Seiffert y Noemi Delgado Santa Cruz

En este artículo te contaremos nuestra vida tras varios meses tratando con esta tecnología creada por Google en 2017.

Nuestro primer contacto fue extraño, para empezar nos encontramos con que usa el BLoC Pattern, que es el recomendado por los desarrolladores de Google, y por otro lado, para la parte visual utiliza… ¿objetos? nos rompió un poco la cabeza, estábamos acostumbrados a otras cosas, pero todo esto no era algo negativo, era un nuevo objetivo.

Tras una o dos semanas trabajando con Flutter, fue sorprendente, porque nos dimos cuenta de que estábamos trabajando cómodamente, por ejemplo, crear una vista era más sencillo de lo que esperábamos, esos objetos que mencionamos se llaman Widget, los cuales tienen propiedades bastante similares a las del CSS, podíamos crear nuestros propios Widget (¡nos sentimos como en React creando nuestros componentes!), si quería enviar información a la vista creamos un objeto Stream<T> (siendo T el tipo del objeto) en el bloc y lo recogemos en la vista con el Widget StreamBuilder, y viceversa, enviamos datos o hacemos acciones de la vista al bloc mediante eventos… en fin, te recomendamos que lo pruebes, nosotros solo te estamos contando algunas cosas así muy por encima, pero ahora, pasemos a un tema importante…

Testing

Si vemos la documentación de Flutter podemos ver que hay 3 categorías:

Te podríamos explicar uno a uno como hacerlos, pero creo que mejor lo dejamos para un futuro post, ahora te contaremos nuestros problemas.

Realmente, estos tests no se diferencian mucho a los del resto de tecnologías, pero si nos hemos encontrado problemas: algunos fueron fáciles de resolver, otros… no tanto, pero la mayoría son en la categoría de componentes.

Uno de los problemas fue que no encontrase un cierto elemento en la GUI. Aparentemente, estaba todo correctamente, pero… ¿Por qué no encontraba ese Widget? Antes de decirte que pasó, te vamos a explicar. Para lanzar los tests lo hacemos en la consola con el comando flutter test, bastante sencillo, pero aunque testeemos componentes no vemos en tiempo real como hace esas acciones, por lo tanto, nos dificulta un poco la solución de estos problemas visuales ¡La solución era que había que hacer scroll! Pero no pasa nada, una vez sabes este problema, te lo esperarás en los próximos tests.

Este problema que te vamos a contar ahora si que nos dió bastante dolor de cabeza, si tu aplicación va a ser multilenguaje, tendrás que tenerlo en cuenta. A día de hoy, Flutter es una tecnología con una comunidad muy joven, por lo tanto, habrán fallos inesperados, paquetes o plugins, que están en beta o funcionalidades que tendrás que programar tú en nativo. Pues nuestro problema es que cuando el fichero JSON de los idiomas llegó a X caracteres, dejaron de funcionar en los tests de componentes… no encontraba ningún elemento, ¿la solución?, poner la clave en vez del valor, no nos convence esta solución, pero por ahora es la que hemos encontrado.

Es posible que te encuentres otros problemas como los que nos hemos mencionado nosotros, pero estamos seguro de que encontrarás una solución. Ahora nos gustaría añadir un último tema a este post.

Aplicación, paquete y plugin

Seguramente, la mayoría de las personas harán aplicaciones, pero nosotros hemos probado de todo. A la hora de crear un proyecto, puedes crearlo de cualquiera de esas tres formas: una aplicación normal, un paquete para consumir funcionalidades o un plugin, que es casi lo mismo que un paquete, la diferencia es que un paquete no tiene código nativo. De hecho, si creas un paquete no tendrás las carpetas Android e iOS, y como podías esperarte, un plugin si tiene código nativo.

Conclusión

Nuestra curva de aprendizaje ha sido exponencial, al principio puede ser un poco chocante, pero te acostumbras rápido. Hemos tenido la oportunidad de hacer aplicaciones, paquetes y plugins, donde hemos tenido unos pocos problemas a la hora de hacer funcionalidades y unos pocos más a la hora de hacer tests, pero está claro que es por su comunidad tan joven. Estamos seguros de que se irán uniendo muchas más personas a la comunidad de Flutter.

¿No tienes ganas de probarlo?

Publicado el 28/01/2020 por
Michael image

Michael Reyes Seiffert

https://www.mreysei.dev

Noemi image

Noemi Delgado Santa Cruz

¿Quieres más? te invitamos a suscribirte a nuestro boletín para avisarte cada vez que recopilemos contenido de calidad que compartir.

Si disfrutas leyendo nuestro blog, ¿imaginas lo divertido que sería trabajar con nosotros? ¿te gustaría?

Impulsamos el crecimiento profesional de tu equipo de developers