Ha llegado uno de los dos momentos clave del año para todo desarrollador mobile. Todos nosotros paramos para el Google IO y WWDC y esta vez ha tocado IO con la presentación de Flutter 2.2. Una vez más, vuelve a ser 100% remoto.
Las razones son evidentes, no se puede ni plantear la alternativa. Sin embargo, temo que no se dé marcha atrás cuando las circunstancias se vuelvan menos raras, y sería una pena. Es cierto que los frikis no parecemos muy sociables, pero echo de menos cuando ambas conferencias eran presenciales y tenías la opción de viajar y estar allí in situ. Al fin y al cabo, ver gente no es lo nuestro, pero dos veces al año, tampoco hace daño.
Ha habido bastantes novedades por parte de Google, pero vamos a intentar centrarnos en aquellas relacionadas con Flutter 2.2.
Novedades en Flutter 2.2
Desde hace ya algunos meses, teníamos disponible 2.0, y la versión Flutter 2.2 es la que fue lanzada en el Google IO 2021. Como la numeración indica, no son cambios radicales, pero no por ello no son bienvenidos. Se trata más que nada de afianzar cosas que ya se intuían desde antes.
Sound Safety en Dart
Dart es el lenguaje usado por Flutter y una de sus armas secretas. En su origen, era un lenguaje muy distinto de Swift y Kotlin, y tal vez más parecido a Objective C. Era un lenguaje muy dinámico había sido creado con el objetivo de destruir a Javascript y sustituirlo. Google había pensado usar su dominio de los browsers con Chrome y encasquetar Dart a todo el mundo. Incluso sacaron una versión de Chromium con la máquina virtual de Dart incluida, llamada Dartium.
¿Nunca has oído hablar de Dartium? Tranquilo, es normal y eso te da una idea del éxito que tuvo ese intento de Javascripticidio.
Aquella versión original de Dart resultaría familiar a cualquier programador de Javascript, pero no a alguien acostumbrado a Swift o Kotlin. Por ello, para alcanzar este nuevo mercado, Google se embarcó en una serie de modificaciones del lenguaje para añadir Tipos No-Nulos y Opcionales.
La tarea no era sencilla, pero se llevó a cabo muy bien y manteniendo la compatibilidad con anteriores versiones.
Pues bien, a partir de Flutter 2.2, ya puedes declarar tipos no-nulos y opcionales, igual que en Swift o Kotlin, y es de hecho la opción por defecto en cualquier proyecto nuevo.
Typedefs en Dart
Esto puede parecer poca cosa, pero una de las características que más esperaba yo. Hasta hace poco, sólo se podían crear typedefs para funciones y clausuras. Es decir, podías dar un nombre más claro a un tipo de función:
A partir de esa declaración, podíamos usar el “alias” IntTransformer para referirnos a cualquier función con ese tipo. Esto es vital para preservar la salud mental cuando tratas con clausuras, pero sólo se podía hacer con funciones. No podías crear un alias para otro tipo.
Esto, que puede parecer algo menos, es esencial cuando estás desarrollando un modelo complejo mediante DDD.
Un ejemplo muy sencillo, podría ser algo así para una App tipo Kindle:
Es probable que necesite un tipo específico para el nombre de un Autor (no toda cadena es válida como nombre) o para un conjunto de Autores, o incluso una forma mejor de representar el contenido que un simple buffer de bytes, pero de momento no me hace falta para arrancar. Sin embargo, en todo mi código ya aparecerá ese tipo (de momento solo un String) y ya podré hacerlo específico más adelante. Tengo las espaldas cubiertas.
Esta era una de las características de Swift que más echaba de menos. Ya no.
Flutter como herramienta multiplataforma
Desde un primer momento, la arquitectura de Flutter intuía que se iba a hacer una versión para otras plataformas además de mobile. Estaba demasiado bien diseñado como para que eso no se hubiese contemplado desde un primer momento.
🔴 ¿Quieres entrar de lleno al Desarrollo Mobile? 🔴
Descubre el Desarrollo de Apps Móviles Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Desarrollo de Apps Móviles por una semanaHace poco salió la versión Web, y en esta ocasión se ha avanzado mucho en el soporte de entornos desktop. Es algo muy bienvenido, para poner fin a la tiranía de Electron y su consumo abominable de recursos. Necesitar 16 Gb de ram para editar ficheros de texto es algo que no es admisible.
Pronto podremos usar un mismo stack para producir apps mobile y desktop con una calidad comercial.
Dart en Google Cloud
Otra novedad interesante en este sentido que ha salido en Google IO es Dart in Google Cloud. Una forma de crear microservicios en contenedores y desplegarlos rápidamente en Google Cloud.
Dart es un excelente lenguaje de programación para backends y hay herramientas muy buenas para ello, desde Shelf de Google hasta Conduit.
Stack Ideal para Startups
Todo esto hace de Dart / Flutter el stack ideal para startups y cualquiera que quiera sacar un MVP de forma rápida al mercado, alcanzado las principales plataformas: backend, mobile, desktop y web.
Si quieres aprender a dominar Flutter con todas las novedades presentadas, descubre el Desarrollo de Apps Móviles Full Stack Bootcamp de KeepCoding, con el que además dominarás el desarrollo para cualquier sistema operativo con lenguajes como Kotlin y Swift. Descarga el temario y conoce más de este Bootcamp.