Null Safety aporta al desarrollo de apps en Flutter 2, un nuevo horizonte para desarrollar aplicaciones ´bug free´
Crear una app en Flutter es ahora más robusto con Null Safety
Si sigues nuestro blog, habrás visto que disfrutamos con el desarrollo de aplicaciones en Flutter en Barcelona ya que nos apasiona el lenguaje de programación Dart. En nuestro artículo sobre Flutter 2, ya hablamos del desarrollo en Flutter 2 y de las novedades que traía con él. Hoy vamos a adentrarnos un poco más en uno de los puntos de ese artículo: Null Safety en Flutter 2. Dart es el lenguaje de programación que utilizamos para desarrollar apps en Flutter, y su meta es ofrecer el lenguaje de programación más productivo a la hora de desarrollar aplicaciones multiplaforma, por supuesto, respaldado por Google.
Además, no solo vamos a desarrollar aplicaciones para móviles, también podemos crear aplicaciones para wereables, como SmartWatch, hablamos de ello en nuestro artículo "Las 8 mejores aplicaciones para SmartWatch".
Sabiendo esto, vamos a indagar un poco más en Dart y explorar las ventajas que da la programación utilizando Null Safety en Flutter. ¡ALERTA!: esto va a ser un poco denso.
Null Safety ¿cuáles son sus principios y cómo mejora el desarrollo de aplicaciones en Flutter?
Muchos lenguajes de programación de apps de hoy en día han tenido o tienen algunos problemas conocidos y, los programadores, hemos aprendido a esquivarlos o a ir de la mano con ellos. Sin embargo, poco a poco, estos lenguajes han ido adaptándose e intentando corregir estos problemas. Dart no iba a ser menos.Vamos a ver el principal problema que soluciona:
Sabemos que con este bloque de código va a saltar un error de tipo, ya que un String no es Null. Hasta la fecha se podía controlar así:
¿Cómo se corrige al utilizar Null Safety en el desarrollo de app con Flutter?
Podemos ver que ahora Dart ofrece la posibilidad de que un String pueda ser String o Null, es decir, a no ser que se especifique un String nunca va a poder ser Null, Dart va a mostrar esos errores antes de ejecutar el código.
En el ejemplo que hemos usado antes se puede ver marcado null como error.
Null Safety se basa en los siguientes tres principios:No acepta valores nulos de forma predeterminada. Si no se indica de manera explícita que una variable puede ser nula, no se admiten los valores nulos.Adaptable. La migración a Null Safety para desarrollar apps en Flutter se puede hacer de manera incremental, es decir, puedes mezclar código con y sin Null Safety en el mismo proyecto.Totalmente sólido. Esta solidez permite optimizar el compilador. En cuanto todo tu proyecto este migrado a Null Safety, a parte de tener menos errores, también tendrás binarios más pequeños y tiempos de ejecución más cortos.
En pocas palabras: Dart 2.12 mejora el desarrollo de aplicaciones en Flutter ya que se van a evitar errores que antes provocaban excepciones y la ejecución va a ser más rápida. Además, puedes empezar a utilizarlo ya, pues Dart ofrece la opción de migrar tu código parcialmente y de usarlo mezclando código.
¿Cómo desarrollar una app en Flutter, usando Null Safety?
Ya has visto en qué se basan los cambios realizados y las ventajas que ofrece frente a antiguas versiones de Dart. Si te estás preguntado como implementarlo al crear un aplicación en Flutter... vas a descubrirlo ahora. En tu proyecto de Flutter, lo único que tienes que hacer es cambiar en el archivo Pubspec.yaml la siguiente línea de código:
Sencillo, ¿verdad?Ahora lo que queda es escribir código para desarrollar la app en Flutter. Pero antes, debes saber que cualquier variable a la que no le indiques explícitamente que pueda ser nula, debe ser inicializada. Estos son unos cuantos ejemplos sobre cómo se tiene que utilizar:
Se ha creado una variable String?, que puede ser String o Null, y una función que que invoca a esa variable. Sin embargo, hay que utilizar el "bang operator" (!) ya que, por definición, el String que devuelve ese método no puede ser nulo, de esta forma se consigue que pueda serlo.Otra forma de la que se puede hacer lo mismo es utilizando el modificador late delante de la variable, este modificador indica que la variable será inicializada más tarde:
Otra cosa que hay que tener en cuenta es lo que devuelve una función. Si se define una función que tiene que devolver un String, hay que hacer que esa función devuelva un String. Hasta ahora, Dart ha sido un poco benevolente con lo que devolvían las funciones, incluso se podía obviar. Ahora, es necesario indicarlo como a continuación:
En mi opinión, estos son los dos tips más importantes a la hora de empezar a crear tu app en Flutter con Null Safety. Aunque esto solo han sido pinceladas y puedes aprender mucho más con la documentación oficial pulsando aquí.
Migrar tu app Flutter a Null Safety
En la página oficial de Dart, ya hay una guía sobre la migración de librerías a Null Safety. Para hacer la migración de apps en Flutter es prácticamente igual, donde los puntos para poder migrarla son los siguientes:
- Esperar a que las librerías de las que depende nuestra app hayan migrado. Cabe destacar que a día de hoy, aún hay algunas librerías que no han migrado, pero lo importante es que la mayoría de librerías que se utilizan de manera habitual sí que lo han hecho. Por lo tanto, no hay de qué preocuparse.
- Migrar el código de tu aplicación (preferiblemente, utilizando la herramienta de migración).
- Analizar el código.
- Comprobar que, habiendo hecho los cambios, todo funciona correctamente.
Para poder migrar tu app deberás escribir en el terminal: dart pub outdated --mode=Null-Safety
Este comando te va a permitir ver las librerías compatibles con Null Safety.dart pub upgrade --Null-Safety
Actualizas las librerías a su versión con Null Safety.dart pub get
dart migrate
Este comando te enviará directamente a la herramienta de migración de Dart, en ella podrás ver todos los cambios sugeridos y podrás aplicarlos en tu código.Aquí puedes ver un proyecto de prueba, donde se ha hecho uso de la herramienta de migración.
Y ya estaría, has migrado tu app a Null Safety de Flutter 2. Si quieres más información, puedes explorar la documentación oficial sobre cómo migrar tu app en Flutter pulsando aquí.
¿Cómo crear una app en Flutter, usando Null Safety?
Si has llegado hasta aquí, seguro que te has sentido atraído por lo que ofrece la nueva funcionalidad de Dart 2.12 y te estés preguntando ¿cómo puedo crear o migrar mi aplicación en Flutter 2 usando Null Safety? En Abalit Technologies, contamos con expertos en desarrollo de apps en Flutter usando Null Safety y estaremos encantados de resolver todas tus dudas. Puedes pedirnos presupuesto para crear una app en Flutter usando Null Safety de forma totalmente gratuita y sin compromiso alguno.
Conclusión y opinión sobre aplicar Null Safety en el desarrollo de apps Flutter
Durante este artículo, hemos visto todas las ventajas que ofrece esta nueva actualización y la verdad es que cuesta ver alguna desventaja.En mi opinión, migrar o empezar a desarrollar una aplicación en Flutter debería ser algo habitual. ¿Qué ganamos? Eficiencia y calidad, ya que se reducen errores de compilación y tiempos de ejecución. ¿Qué perdemos? Nada. Si quieres más información sobre todo lo implica el desarrollo con Null Safety, no esperes más y ponte en contacto con nosotros, desde Abalit estaremos encantados de ayudarte.