En este año 2021, con la última llegada de Flutter 2.0, se anunciaron grandes noticias. Llegó Flutter web estable y Flutter escritorio que aún no se puede considerar una versión estable en su totalidad. Flutter es una tecnología que está en un crecimiento constante y se está consolidando como uno de los mejores frameworks para desarrollo multiplataforma. Actualmente si quieres ser un desarrollador móvil, debes considerar mucho agregar a tu stack este framework; pero ¿qué debes considerar al aprender Flutter para que te tomen en consideración?
Las empresas no quieren desarrolladores que realicen proyectos zombies, que van a paso lento, están muertos y difícilmente los puedes arreglar. También, las empresas, están en constante búsqueda del mejor talento. En ese sentido surge el outsourcing de TI que te brinda la opción de seleccionar al mejor talento que se adecúe de mejor manera a tu proyecto.
En este artículo te comentaremos algunas tecnologías, librerías, patrones de diseño y recomendaciones que no necesariamente son para Flutter, pero te ayudarán a marcar una diferencia de los demás programadores.
Buenas prácticas
Algunos se preguntarán ¿por qué patrones de diseño?, ¿me ayuda?, ¿debo aprenderlo? Un patrón de diseño se puede considerar un esqueleto para estructurar tu código, el cual ayudará normalmente a que tu proyecto sea escalable. En Flutter es normal realizar código espagueti sin darte cuenta. El código espagueti refiere a que tengas una clase con más de mil líneas de códigos totalmente innecesarios ¡es el inicio para proyectos zombies!
En la actualidad tenemos el patrón de diseño Bloc. Es un sistema de gestión de estado para Flutter recomendado por los desarrolladores de Google. Ayuda en la gestión del estado y en el acceso a los datos desde un lugar central en su proyecto. Si conoces otros patrones de diseño como MVVM, MVP, MVC u otros, se te facilitará aprenderlo. Los patrones de diseño no son esqueletos estáticos, también como desarrollador debes investigar y estructurar el código según sea conveniente para el proyecto.
Tecnologías recomendadas
- GitFlow: Es un flujo de trabajo para ramificar la publicación de cambios, asignando funciones específicas a todas las ramas. Donde la rama master son las versiones estables normalmente, la rama develop es una rama en desarrollo de cambios estables y los feature donde se realizan todos los cambios. Cabe destacar que no tiene funcionalidades nuevas de las que ofrece GIT, pero te ayudará a organizar el versionamiento de tu código mejor.
- Bugsnag: Monitorea la estabilidad de las aplicaciones y tiene un gran alcance tanto para plataformas móviles, web, escritorio, Tvs, etc. Te ayudará a tomar decisiones basadas en los datos, como la línea de código donde se presentó el error, el modelo y marca del dispositivo, que usuario fue el que tuvo el problema y muchos datos más.
- Postman: Es una herramienta para el testing de API Rest. En la actualidad muchos backend ya usan herramientas para facilitar el testing y documentan su código con Swagger, Loopback y otros. Pero en caso no tenga una documentación momentánea, te ayudará a comprender el funcionamiento de cada ruta.
- Firebase: Es una plataforma en la nube para el desarrollo web y móvil. Te ayudará a crear tu propio backend sin renunciar a la calidad del sistem, y te ayudará a desarrollar el sistema, a crecer, monetizar y analizar tu aplicación.
- Pasarela de pago: Son proveedores de servicio para realizar un aplicativo de comercio electrónico normalmente; hay muchos proveedores como Stripe, Culqui, Mercado de pago, Paypal, Payu, etc. Se recomienda realizar o probar alguno de estos servicios, puesto que te ayudará a comprenderlo e integrarlo en tu sistema; además que la lógica de implementación es similar en cada uno de los proveedores.
- Very Good: Esta es una herramienta para Flutter, la cual, si estás iniciando te ayudará a comprender mejor las buenas prácticas de programación. Very Good te generará un código personalizado, entonces únicamente debes escribir un comando y ya tendrás un esqueleto del aplicativo en Flutter 2.0 totalmente escalable y con una buena arquitectura.
Librerías que deberías conocer
- Get It: Librería la cual te ayudará a inyectar dependencias desde cualquier lugar.
- Hive: Base de datos NoSQL muy potente que te ayudará a resolver problemas complicados, tiene función para escuchar cambios en tiempo real.
- SQFlite: Base de datos SQL potente. Aún no tiene un soporte para Flutter web y está basado en SQLite.
- Bloc: Paquete que busca facilitar la implementación de patrones de diseño mediante la UI, Cubit y la data.
- Very Good Analysis: Paquete proporcionado por Very Good que te ayudará a mantener un código limpio y mostrarte alertas de posibles lugares donde puedas reducir código o mantenerlo de una mejor manera.
Te recomendamos
En la actualidad debes complementar tus conocimientos de Flutter con algún lenguaje nativo. Por ejemplo ser capaz también de desarrollar en Swift o Android con Kotlin, porque puede que lleves un proyecto que implique el uso de recursos del celular y actualmente para trabajarlo en Flutter debes saber algunas configuraciones específicas nativas en su respectivo paquete del lenguaje.
Siempre revisa los requerimientos para un desarrollador móvil Flutter en LinkedIn, Bumerán, Indeed y otros. Esto te ayudará a ver las nuevas tecnologías que piden en el mundo laboral y el por qué las piden, tú decides si estancarte o continuar. Finalmente, revisa y lee las actualizaciones del frameworks en determinados tiempos, por ejemplo cada mes. De esta forma, podrás destacar en el mercado en esta tecnología.