Angular 9

Artículo

Las novedades con Angular 9

Aunque con retraso, tenemos una nueva actualización de Angular a la versión 9. IVY ya está oficialmente integrado para usarlo automáticamente. Pero, ¿qué otros cambios nos trae este framework?

Como nos indicaba Angular, cada 6 meses nos traerían nuevas versiones con actualizaciones. Una con unos pocos cambios y otra que podría revolucionar nuestro proyecto. Por motivos de la mejora de IVY, esta versión se ha retrasado en su despliegue, obligando posiblemente, a retrasar el resto de versiones del año.

Para abordar un proyecto con Angular 9, nos podemos encontrar en dos situaciones:

  • Tenemos un proyecto con Angular 2+ y queremos migrarlo
  • Empezamos un proyecto desde 0

Migración Aplicación Angular

En el caso de que quisiésemos migrar nuestra aplicación, a la última versión de Angular, lo adecuado sería que visitásemos la página oficial de Angular https://update.angular.io/, donde nos indicarán que pasos debemos llevar a cabo para migrar nuestra aplicación. Tener en cuenta, qué en algunos casos, no solamente deberemos modificar nuestro proyecto y actualizar librerías, sino que la versión de NodeJS también cambiará.

Si partimos del caso más sencillo, y tenemos una aplicación con Angular 8, lo que deberemos tener en cuenta es:

Una vez comprobado esto deberemos:

  • Ejecutar ng update @angular/core@8 @angular/cli@8: para subir la versión de dichas librerías, tener cuidado si tenemos a nivel global el angular/cli
  • Ejecutar ng update @angular/core @angular/cli
  • Actualizar nuestra versión de Typescript a la 3.7

En nuestra aplicación, puede ser que nos aparezcan algunos errores, entre los que destacaríamos:

  • El uso de entrycomponents y ANALYZE_FOR_ENTRY_COMPONENTS, ya no los vas a necesitar
  • Cambiar el uso de TestBed.get por TestBed.inject. Está deprecado, pero seguirá funcionando
  • Si tienes multi-idioma, necesitaremos usar @angular/localize
  • Nuestros estilos pueden variar: https://v9.angular.io/guide/template-syntax
  • Cambios con el método ModuleWithProviders:

    O    https://v9.angular.io/guide/deprecations#modulewithproviders-type-without-a-generic

  • Si usas ngForm, pasar a utilizar ng-form
  • Problemas con el renderizado de IVY, sobre todo con temas de multi-idioma. Podéis revisar la guía: https://angular.io/guide/ivy-compatibility
  • Si estabas usando angular universidad, deberás actualizar los cambios en el server.ts.

Mejoras Angular 9

Las mejoras que nos podemos encontrar con Angular 9, son desde:

  • La inclusión de mejoras en el desarrollo y actualización de librerías
  • Mejora de Rendimiento
  • Mejora del multi-idioma de Angular
  • Mayor facilidad con los modales
  • Mejoras con Typescript al utilizar la última versión

Para aquellos que no conozcáis IVY, el cual es una de las razones por las que se ha retrasado la reléase de esta versión, esta nueva mejora nos permitirá mejorar:

  • Tamaños de los Bundles
  • Testear más rápido
  • Mejor y más fácil depuración
  • Mejoras en el CSS y estilos
  • Mejora el tipado
  • Mejorados errores en el building
  • Mejorados los tiempos de bundling
  • Mejorado la internacionalación

Angular9

Para obtener una información más detallada, podéis leer la publicación en el blog oficial de Angular:

- https://blog.angular.io/version-9-of-angular-now-available-project-ivy-has-arrived-23c97b63cfa3

Además, para aquellos que desarrollan con aplicaciones híbridas con base en Angular, por ejemplo: Ionic, también les afectará. El 11 de febrero publicaron en su blog, que la versión de Ionic 5 (Magnesium). Aunque incluye muchos más cambios, uno de los cambios importantes es por Angular y IVY.

Cuando utilizar Angular 9

Si vamos a crear una aplicación desde 0, siempre será aconsejable utilizar la última versión de Angular. Aunque deberemos tener en cuenta la versión de Nodejs que tengamos instalada y configurada en el proceso de integración continua, ya que podríamos afectar a otros departamentos o personas del equipo.

En el caso de que tengamos una aplicación ya finalizada, las mejoras reales de las cuales nos podríamos beneficiar, serían sobre todo en rendimiento y/o en aplicaciones híbridas. Si esto no es nuestro caso, o realmente no aporta valor al producto, mejor dejar la versión que tenemos desplegada.

Si estamos desarrollando una aplicación y aún no la hemos finalizado, será muy sencillo actualizarla, siempre y cuando hayamos dejado la base de Angular CLI y no hayamos realizado el Eject o estemos utilizando algún otro generador.

Artículo de Jesús Cuesta Arza, Lead Specialist en Consultoría Tecnológica de Deloitte