Formation en Développement: Angular, maîtriser le Framework Front-End de Google - Ascent Formation
Retour aux formations
Développement

Angular, maîtriser le Framework Front-End de Google

3 jour(s)21h

Description

Maîtrisez Angular dans sa version actuelle : de l'architecture standalone aux Signals, en passant par les formulaires réactifs, le routing, les appels HTTP et le déploiement - cette formation vous rend opérationnel sur des projets réels en trois jours.

Objectifs pédagogiques

  • Configurer un environnement Angular et structurer une application avec l'approche standalone
  • Créer des composants réutilisables, maîtriser les templates et les mécanismes de data binding
  • Mettre en oeuvre la programmation réactive avec RxJS et les Signals natifs d'Angular
  • Construire des formulaires réactifs avec validation et typage fort
  • Configurer le routing, gérer la navigation et optimiser le chargement avec le lazy loading
  • Consommer des API REST avec HttpClient et gérer les erreurs
  • Ecrire des tests unitaires sur composants et services
  • Déployer une application Angular en production

Public concerné

Développeurs front-end, architectes logiciels et chefs de projet techniques amenés à concevoir ou contribuer à des applications web Angular.

Prérequis

Bonnes connaissances de JavaScript (fonctions, modules, asynchronisme).
Notions de HTML et CSS.
Une expérience de développement front-end est recommandée.

Déroulé du programme

1

Environnement et architecture Angular

  • Angular dans l'écosystème front-end : positionnement, cas d'usage, cycle de versions
  • Angular CLI : création de projet, structure générée, commandes essentielles (ng new, ng generate, ng serve, ng build)
  • Moteur de build : esbuild et Vite préconfigurés depuis Angular 17 -- impact sur les temps de compilation
  • Architecture moderne : approche standalone components (recommandée par défaut), différences avec l'approche NgModules
  • TypeScript pour Angular : typage statique, interfaces, classes, génériques, décorateurs -- ce qui est utile en pratique
  • Zone-less rendering : principes, activation via provideZonelessChangeDetection(), impact sur la détection des changements -- stabilisé en Angular 20
2

Composants et cycle de vie

  • Anatomie d'un composant standalone : @Component, template, styles, sélecteur
  • Création manuelle et via CLI (ng generate component)
  • Data binding : interpolation, property binding [prop], event binding (event), two-way binding [(ngModel)]
  • Nouveaux control flow templates : @if, @for, @switch -- syntaxe, différences avec *ngIf / *ngFor
  • Directives d'attributs et structurelles : principes, directives intégrées, création d'une directive personnalisée
  • Pipes intégrés (DatePipe, CurrencyPipe, AsyncPipe...) et création d'un pipe personnalisé
  • Cycle de vie des composants : ngOnInit, ngOnChanges, ngOnDestroy -- cas d'usage réels
3

Communication entre composants et services

  • Communication parent/enfant : signal inputs avec input(), function-based outputs avec output() et OutputEmitterRef -- nouvelle API Angular 17+
  • Injection de dépendances : principes, hiérarchie des injecteurs, fonction inject() recommandée
  • Création et injection d'un service : @Injectable({ providedIn: 'root' }), portée singleton, providers explicites si besoin
  • Injection contextuelle via app.config.ts : provideHttpClient(), provideRouter()...
  • @ViewChild, @ContentChild : cas d'usage pour accéder aux éléments du DOM ou aux composants enfants
  • Encapsulation des styles : ViewEncapsulation, Shadow DOM
4

Programmation réactive : RxJS et Signals

  • Principes de la programmation réactive : flux de données, push vs pull
  • RxJS : Observable, Observer, Subject, opérateurs essentiels (map, filter, switchMap, catchError, takeUntilDestroyed)
  • Gestion de l'asynchronisme : subscribe, async/await, AsyncPipe dans les templates
  • Signals (Angular Reactive Signals API) : signal(), computed(), effect() -- API réactive native introduite en Angular 16, centrale dans les versions récentes
  • Complémentarité RxJS / Signals : quand utiliser l'un, l'autre, ou les deux
  • httpResource : aperçu d'une API expérimentale Angular pour lier une requête HTTP à un Signal
  • Zone-less rendering : impact sur la réactivité en pratique
5

Formulaires réactifs avec typage fort

  • Template-driven forms vs Reactive forms : différences, cas d'usage respectifs
  • Reactive Forms avec FormBuilder, FormControl, FormGroup
  • FormGroup et FormControl typés (Angular 14+) : typage strict pour éliminer les any dans les formulaires
  • Validation synchrone et asynchrone : validators intégrés, validators personnalisés
  • Gestion des erreurs : affichage conditionnel, messages par type d'erreur
  • Désactivation et réinitialisation de formulaires, gestion des états (pristine, dirty, touched)
  • Envoi des données : requête POST depuis un formulaire, gestion de la réponse
6

Routing et navigation

  • Configuration du Router Angular : provideRouter(), définition des routes dans fichiers séparés
  • Navigation : routerLink, router.navigate(), paramètres dynamiques (:id), query params
  • Lazy loading avec loadComponent() : chargement différé d'un composant standalone sans module
  • Guards : CanActivate, CanDeactivate -- protection des routes et confirmation de navigation
  • Resolvers : pré-chargement de données avant affichage d'un composant
  • Vues imbriquées : router-outlet, routes enfants
  • Gestion des erreurs de routing : redirections, route wildcard
7

Communication HTTP et gestion des erreurs

  • HttpClient Angular : configuration avec provideHttpClient(), requêtes GET, POST, PUT, DELETE
  • Intercepteurs HTTP : cas d'usage (ajout de headers, logging, gestion globale des erreurs, authentification)
  • Gestion des erreurs HTTP : catchError, opérateur retry, messages utilisateur
  • async/await vs subscribe dans les composants : bonnes pratiques
  • Affichage de données asynchrones avec AsyncPipe
  • Aperçu de httpResource : API expérimentale Angular pour lier une requête HTTP à un Signal
8

Tests unitaires et E2E

  • Ecosystème de test Angular : Vitest (runner par défaut sur les nouveaux projets Angular CLI), Karma/Jasmine (encore supportés), Jest (alternatif)
  • Tester un service : TestBed, injection de dépendances, provideHttpClient() + provideHttpClientTesting()
  • Tester un composant standalone : ComponentFixture, détection des changements, requêtes DOM
  • Tester avec des Signals : vérification des valeurs réactives
  • Analyse de couverture : ng test --code-coverage, interprétation des rapports
  • Tests E2E : Playwright (préconisé, remplaçant de Protractor déprécié) -- configuration et premier script de navigation
9

Déploiement, performance et bonnes pratiques

  • Commandes de build : ng build, options (--configuration production, --base-href)
  • Optimisations automatiques : tree-shaking, minification, lazy chunks -- lire et interpréter le bundle report
  • Variables d'environnement : environment.ts, gestion par configuration (dev / staging / prod)
  • Publication sur serveur statique (Nginx, Apache) et hébergements cloud (Netlify, Vercel, Azure Static Web Apps) -- configuration du fallback HTML5 pour le routing Angular
  • Introduction au SSR (Server-Side Rendering) Angular : cas d'usage, principes, différences avec le rendu client
  • Bonnes pratiques de performance : OnPush change detection, lazy loading, trackBy dans @for
  • Bonnes pratiques de code : structure de projet, conventions de nommage, lint (ESLint Angular), organisation des modules et services
  • Plan d'action individuel : chaque participant identifie les trois actions prioritaires à mettre en oeuvre sur son projet

Informations

Durée

3 jour(s)

21h

Tarif

Sur demande