L’introduction du mode strict en Angular Ivy a modifié la gestion des budgets de bundle et la vérification des types de templates. Le mode strict réduit les budgets : les avertissements apparaissent à 500 Ko pour le bundle initial, et l’erreur se déclenche à 1 Mo. Pour les styles des composants, les avertissements se produisent à 2 Ko et l’erreur à 4 Ko. Cela permet de maintenir des performances optimales en production en limitant la taille du code. De plus, le mode strict active également une vérification stricte des types dans les templates, une fonctionnalité importante que nous aborderons plus en détail par la suite.
Une des principales évolutions avec Ivy concerne les options de configuration du compilateur Angular. Avec la version 9 d'Angular, l’option enableIvy était activée par défaut pour les applications, mais désactivée pour les bibliothèques. Cette approche a changé avec la version 12, lorsque l'option enableIvy a été complètement supprimée pour les applications, suite à l'abandon du support du moteur de rendu View Engine. À la place, l'option compilationMode a été ajoutée pour permettre une compilation partielle d’Ivy pour les bibliothèques Angular. De plus, l’option strictTemplates, qui était par défaut false, est activée lorsqu'on utilise la commande ng new avec l'option --strict, augmentant ainsi la rigueur des vérifications des types dans les templates Angular.
Ivy a également introduit des améliorations significatives dans le domaine des tests. Les tests d'Angular bénéficient désormais de meilleures performances et d’une expérience utilisateur améliorée grâce à des outils comme les « harnesses » de test de composants, qui seront abordés dans un chapitre ultérieur. Cette fonctionnalité permet de tester des composants avec plus de contrôle et de précision. Par ailleurs, Ivy introduit le commentaire d'annotation @ts-expect-error disponible dans TypeScript 3.9. Cette annotation permet d'indiquer que certains types incompatibles sont intentionnellement acceptés dans les tests, offrant ainsi une meilleure gestion des erreurs dans les tests unitaires.
Le mode AOT (Ahead-of-Time) est désormais intégré aux tests avec Ivy, ce qui réduit considérablement les temps de compilation. Avant Ivy, les tests de composants étaient souvent lents, car chaque test nécessitait de recompiler plusieurs fichiers. Ivy, grâce à son approche de localité et de mise en cache des modules et déclarations compilées, accélère ce processus, rendant les tests plus rapides et plus réactifs. Cela se traduit par un gain de temps considérable lors de l’écriture des tests et de la correction des bugs.
Un autre aspect important d’Ivy réside dans l’amélioration des erreurs de compilation. Les messages d’erreur sont désormais plus clairs et plus détaillés, ce qui aide considérablement les développeurs à localiser rapidement les problèmes dans leur code. Par exemple, lorsque l’on utilise un élément inconnu dans un template, Ivy fournit non seulement l'erreur, mais aussi le chemin du fichier, le numéro de ligne et le contenu exact de l'erreur, ce qui permet de résoudre plus facilement les problèmes de configuration ou de déclaration.
En plus de la gestion des erreurs, Ivy offre une meilleure gestion des erreurs liées aux modules Angular. Par exemple, un simple oubli ou une erreur dans la déclaration des imports d’un module entraînera une erreur de compilation plus explicite. En cas d’erreur comme une virgule en trop dans l'importation d’un module, Ivy fournit une description détaillée du problème, permettant ainsi de corriger rapidement les erreurs sans perdre de temps à chercher leur origine.
Enfin, il est crucial de comprendre qu’Angular Ivy vise à améliorer non seulement la performance des applications Angular, mais aussi l'expérience de développement dans son ensemble. Chaque amélioration, qu’il s’agisse de la gestion des erreurs de compilation, de l’intégration des tests ou de la réduction des tailles des bundles, contribue à un flux de travail plus efficace et à une meilleure maintenabilité des applications à long terme. Ces évolutions font d’Ivy une version essentielle pour toute équipe de développement Angular, apportant des outils puissants pour gérer la complexité des applications modernes.
Quelles sont les nouvelles fonctionnalités des composants Angular avec Ivy ?
Les nouvelles fonctionnalités des composants Angular, introduites avec Ivy, apportent des possibilités significatives d'amélioration de l'expérience utilisateur et de simplification du développement d'applications. Parmi ces nouveautés, on retrouve des composants offerts par Angular pour des produits Google tels que le lecteur YouTube et l'intégration de Google Maps. De plus, Angular introduit des APIs nouvelles qui enrichissent les capacités des composants, notamment l'API Clipboard et les component harnesses pour les tests. Ces ajouts, bien que spécifiques, ouvrent un éventail d'options pour les développeurs cherchant à créer des applications modernes et interactives.
Dans cette section, nous explorerons d'abord l'intégration du lecteur YouTube dans une application Angular, puis nous détaillerons l'utilisation de Google Maps, ainsi que l'API du presse-papiers et les outils de test. Ces fonctionnalités, qui simplifient l'intégration de services tiers dans Angular, sont essentielles pour le développement d'applications réactives et modernes.
L'intégration du lecteur YouTube dans une application Angular, par exemple, offre une solution élégante pour embarquer des vidéos tout en bénéficiant des avantages du data binding d'Angular et de l'accès programmatique à l'API YouTube à travers un composant de référence. Cette approche permet une gestion simplifiée des vidéos YouTube sans nécessiter de manipulations complexes du DOM ou du code JavaScript natif.
Intégration et utilisation du lecteur YouTube
Pour commencer, il est nécessaire d'installer le module @angular/youtube-player en exécutant la commande suivante :
Une fois ce module installé, il convient de l'ajouter à l'importation de votre module Angular où vous souhaitez utiliser le lecteur YouTube. Voici un exemple d'intégration dans un module Angular :
Cette étape permet de déclarer et d'importer le composant nécessaire pour afficher un lecteur YouTube dans votre application.
Avant d'utiliser le composant YouTube, il est essentiel de charger l'API IFrame de YouTube. Bien qu'il soit possible de charger cette API de manière statique via la configuration du projet, il est plus performant de la charger dynamiquement lorsque le composant est activé, minimisant ainsi les coûts d'une première ouverture de l'application.
Le code suivant montre comment vous pouvez procéder pour charger l'API de manière dynamique :
Cette approche garantit que le script YouTube est chargé de manière optimale, tout en évitant les doublons et en permettant de le nettoyer lorsque le composant n'est plus utilisé. L'application du principe de cache du navigateur garantit que ce script ne sera pas téléchargé à chaque activation du composant, ce qui optimise l'expérience utilisateur.
Utilisation du lecteur YouTube dans les composants
Une fois l'API chargée et le composant configuré, l'utilisation du lecteur devient extrêmement simple. Il suffit d'inclure le composant YouTubePlayer dans votre template et de lui fournir un identifiant vidéo via la propriété videoId. Voici un exemple minimal :
Ce code est tout ce qu'il faut pour intégrer un lecteur YouTube dans une application Angular. Le composant prend en charge le rendu du lecteur et la gestion des interactions avec l'utilisateur. Toutefois, le composant YouTubePlayer permet également une personnalisation poussée à travers ses propriétés d'entrée et de sortie.
API du lecteur YouTube : Propriétés d'entrée
Les propriétés d'entrée permettent de configurer divers aspects du lecteur, notamment l'apparence et la lecture de la vidéo. Voici quelques exemples :
-
endSeconds : définit le moment où la vidéo doit se terminer. Il prend une valeur en secondes à partir du début de la vidéo.
-
height : ajuste la hauteur du lecteur YouTube en pixels CSS. La valeur par défaut est 390.
-
playerVars : permet de configurer des paramètres supplémentaires du lecteur YouTube, comme l'autoplay, la lecture en boucle, ou encore les sous-titres.
API du presse-papiers et component harnesses
L'API du presse-papiers (Clipboard API) est une fonctionnalité importante introduite par le CDK d'Angular, permettant d'interagir directement avec le presse-papiers du système d'exploitation. Elle simplifie la gestion des opérations de copie et de collage, en exposant des services et des directives dans Angular.
Les component harnesses sont une autre fonctionnalité essentielle pour les tests. Elles permettent de tester les composants Angular en utilisant une approche utilisateur, garantissant ainsi que les composants sont testés dans des conditions réalistes. Ces harnesses facilitent l'écriture de tests unitaires et de tests de bout en bout en fournissant une interface uniforme pour interagir avec les composants Angular lors des tests.
Ce que vous devez savoir
Les fonctionnalités mentionnées dans ce chapitre ne sont qu'un aperçu des nombreuses possibilités offertes par Angular Ivy. Elles permettent de simplifier l'intégration de services externes tels que YouTube et Google Maps, tout en rendant le développement d'applications plus fluide grâce aux nouvelles API et outils de test. Lors de l'intégration de ces fonctionnalités dans une application réelle, il est important de garder à l'esprit la gestion des dépendances et des cycles de vie des composants, afin de garantir une performance optimale.
Comment assembler et équilibrer le gimbal pour une caméra
Comment la conception conjointe de la trajectoire des UAV et de la planification des utilisateurs via l’apprentissage par renforcement profond améliore-t-elle la performance et la stabilité des systèmes ?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский