SlideShare une entreprise Scribd logo
De 0 à Angular
en ~1h30!
27 Novembre 2018
HTML5Mtl Meetup, Montréal
Laurent Duveau
@LaurentDuveau
merci!
Laurent Duveau
Montréal
Fondateur de l’Académie Angular
Formation en classe de 2 jours
129 workshops en 2 ans et demi
Montréal, Québec,Toronto, Ottawa,
Vancouver, Calgary, Winnipeg,
Rimouski , Boston, London,
Copenhague, Helsinki, Punta Cana…
@LaurentDuveau
=???
=666
De 0 à Angular en 1h30! (french)
TypeScript?
TypeScript est un langage de programmation libre et
open source développé par Microsoft qui a pour but
d'améliorer et de sécuriser la production de code JS.
Sur-ensemble de JavaScript (c'est-à-dire que tout code
JavaScript peut être utilisé avecTypeScript).
Le codeTypeScript est transpilé en JavaScript, pouvant
ainsi être interprété par n'importe quel navigateur web.
-Wikipédia
TypeScript est un sur-ensemble de JavaScript
TypeScript
ES20XX
ES7/ES2016
ES6/ES2015
ES5
Comment ça marche?
TypeScript
fichier.ts
JavaScript
fichier.js
Compilateur TypeScript
Génère du code
ES5/ES6/…
“Transpiler”
Annotations de type
let height:number = 6;
let isDone:boolean = true;
let name:string = "Académie Angular";
let list:number[] = [1, 2, 3];
function add(x: number, y: number): number {
return x + y;
}
let res = add(18, "5");
10
Erreur TypeScript
dans l’IDE!
class Auto {
private engine:string;
constructor(_engine:string) {
this.engine = _engine;
}
get Engine():string {
return this.engine;
}
set Engine(val:string) {
this.engine = val;
}
start() {
console.log("Take off using: " + this.engine);
}
}
méthode
constructeur
propriété get/set
private/public/protected…
Interfaces
interface Person {
firstName : string;
lastName: string;
sayHi:() => void;
}
function receivePerson(person:Person) {
person.sayHi();
}
12
Décorateurs
Un décorateur est une expression
qui est évaluée après qu’une classe
soit définie, et peut être utilisé pour
annoter ou modifier le code.
Angular les utilise beaucoup
13
@Component(…)
class Car {
@Input() cpt: number;
@methodDecorator() drive() {
}
}
De 0 à Angular en 1h30! (french)
De 0 à Angular en 1h30! (french)
Angular CLI
Mise en route rapide!
+ génération de composants, services, routes, …
> npm install -g @angular/cli
> ng new DemoApp
> cd DemoApp
> ng serve
https://angular.io/cli
> ng g c products/product-list
Angular CLI
Mettre à jour votre app Angular!
PWA : ProgressiveWeb Apps
« Application web au comportement natif »
Angular supporte PWA et la CLI nous permet de
l’activer en 1 commande.
> ng add @angular/pwa
> ng update
Angular Console
UI pour la Angular CLI!
Convient aux débutants (Pas à l’aise avec le terminal)
Créer des projets, interagir avec votre éditeur, générateurs
et commandes, installer des extensions, …
Vous aide en fournissant auto-complétion et validation
des commandes
18
https://angularconsole.com
Angular Console
19
De 0 à Angular en 1h30! (french)
Angular ?
Framework JavaScript particulièrement adapté pour les applications
web modernes monopage (Single Page Application, ou SPA)
Maintenu par Google enTypeScript
Large communauté
Forte adoption en entreprise
Compatible avec IE 9+ et autres navigateurs modernes
Open Source, licence MIT
v2 Septembre 2016
v7 Octobre 2018
www.angular.io
1 nouvelle version aux 6 mois
Ils utilisent Angular…
Média etTélécoms
• CBC
• Radio Canada
• Cogeco Media
• Rogers
• Telus
• Videotron
• Stingray Digital
Québec
• RAMQ
• Sûreté du Québec
• Ville de Montréal
• Ville de Longueuil
• Ville de Gatineau
• Unisersité du Québec
• Université de Montréal
• Université Laval
• Université de Sherbrooke
• Commission scolaire de Laval
• Loto Québec
• HydroQuébec
• CRIM (Centre de Recherche
Informatique de Montréal)
• BAnQ (Bibliothèque et Archives
nationales du Québec)
• Caisse de dépôt et placement du
Québec
• Cirque du Soleil
• CCQ (Commission de la
construction du Québec)
• Corporation d'Industrie
Touristique du Québec
• Régime des Bénéfices
Autochtone
• INRS (Institut national de la
recherche scientifique)
Divers
• Boeing
• Fedex
• CanadianTire
• Schneider Electric
• SAP
• ESRI
• Expedia
• Hewlett-Packard
• Fujitsu
• Cisco
• Microsoft
• Jean Coutu
Canada
• CAA
• Canada Post
• CIRA (Canadian Internet Registration
Authority)
• CPA (Canadian Pharmacists Association)
• CMHC (Société canadienne
d'hypothèques et de logement)
• Office of the Superintendent of Financial
Institutions Canada
• ONF (Office national du film du Canada)
• Canadian Museum of History
• CHRC (Canadian Heart ResearchCentre)
Gouvernement et Armée
• Forces Canada
• Government of Canada
• Government of Ontario
• House of Commons
• Emploi et Développement social Canada
• Canadian Cadet Organizations
• Canadian Forces Morale andWelfare
Services
• CMHC (Société canadienne d'hypothèques
et de logement)
• Ministère de la défense Canada
• Ministère de la Santé et des Services
Sociaux
• Ministère de la Sécurité publique
• Ministère de l'Économie, Innovation,
Exportation
• Ministère desTransports du Québec
• Ministère du Développement Durable,
Environnement, Faune et Parcs
• Ressources NaturellesCanada
• Revenu Québec
• SOQUIJ (Société Québécoise d'Information
Juridique)
• Transportation Safety Board of Canada
• Treasury Board of Canada Secretariat
• Nuclear Safety Commission
Banques
• RBC
• Desjardins
• Banque Nationale
• BMO (Bank of Montreal)
• Scotia Bank
• TD
• Banque de développement du
Canada (BDC)
• Morgan Stanley
Assurances
• DesjardinsAssurances
• IndustrielleAlliance
• Intact
• La Capitale
• Manulife
• Pacific Blue Cross
JavaScript, HTML,
CSS, …
Angular est là
API REST et:
ASP.NET,C#,
Java, PHP, Ruby,
Node, …
Votre BD est ici!
Où est
TypeScript ?
Angular est l’app front end pour n’importe quel backend
Ce qui signifie que Angular (JavaScript) ne pourra
*jamais* se connecter directement à une
base de données… (bien sûr!)
… mais peut émettre des requêtes Http
HTTP
Angular Core Concepts
Components Modules
Dependency
Injection
Language
(TypeScript)
Services Data Binding Decorators Routing
Bâtir une app avec des composants
Header
Component
Items List
Component
Menu
Component
Grid
Component
Votre app est un arbre de composants
Map Update
App
DetailsList
ProductsMenu Contact
Qu'est-ce qu'un composant?
Un composant est un objet réutilisable
Fait de:
Offre un "sélecteur":
HTML
Template
Code
(classe)
<product-list></product-list>
TypeScript! place une instance du
composant dans le DOM
La classe d’un composant
imports
décorateur
classe
import { Component } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'product-detail',
templateUrl: 'product-detail.component.html'
})
export class ProductDetailComponent {
}
De 0 à Angular en 1h30! (french)
Merci!
Formations Angular

Contenu connexe

PPTX
Conception et Réalisation d’une application de Gestion SCOLAIRE
DOC
Rapport PFE Application Web Mobiles belwafi bilel
PDF
117607486-Application-Web-de-Gestion-de-stock-du-magasin-de-Faculte-de-Medeci...
DOCX
Cv Moez HAMZAOUI JAVA J2EE FULL STACK
PDF
CV de Fatma CHIHAOUI
PDF
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
PDF
Rapport de stage du fin d'étude
PDF
Rapport de projet de fin d'étude licence informatique et multimédia
Conception et Réalisation d’une application de Gestion SCOLAIRE
Rapport PFE Application Web Mobiles belwafi bilel
117607486-Application-Web-de-Gestion-de-stock-du-magasin-de-Faculte-de-Medeci...
Cv Moez HAMZAOUI JAVA J2EE FULL STACK
CV de Fatma CHIHAOUI
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
Rapport de stage du fin d'étude
Rapport de projet de fin d'étude licence informatique et multimédia

Tendances (20)

PPTX
Conception et réalisation d'une application web et mobile de e-commerce
PPTX
Présentation PFE (Conception et développement d'une application web && mobile...
PDF
Conception et développement d'une application de gestion de production et de ...
PDF
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
DOC
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
PPTX
Presentation DevOps : enjeux , objectifs, consequences
PDF
Rapport de projet de fin d"études
PDF
Angular Framework présentation PPT LIGHT
PDF
Rapport de stage de fin d'etudes Application web de E-commerce
PPTX
Presentation pfe Système de gestion des rendez-vous médicaux
PDF
Architecture jee principe de inversion de controle et injection des dependances
PDF
Rapport Projet Fin d'Études PFE
PPTX
Spring ioc
PPTX
Modele mvc
PPTX
Presentation PFE Inetum Tunisie
PDF
Rapport pfe-ayoub mkharbach
DOCX
Projet de fin d'etude gestion informatique
PDF
Rapport de stage de fin d'études ISI 2015
PDF
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
PPTX
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Conception et réalisation d'une application web et mobile de e-commerce
Présentation PFE (Conception et développement d'une application web && mobile...
Conception et développement d'une application de gestion de production et de ...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Presentation DevOps : enjeux , objectifs, consequences
Rapport de projet de fin d"études
Angular Framework présentation PPT LIGHT
Rapport de stage de fin d'etudes Application web de E-commerce
Presentation pfe Système de gestion des rendez-vous médicaux
Architecture jee principe de inversion de controle et injection des dependances
Rapport Projet Fin d'Études PFE
Spring ioc
Modele mvc
Presentation PFE Inetum Tunisie
Rapport pfe-ayoub mkharbach
Projet de fin d'etude gestion informatique
Rapport de stage de fin d'études ISI 2015
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Publicité

Similaire à De 0 à Angular en 1h30! (french) (20)

PDF
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
PDF
XWiki SAS
PPTX
ngconf 2016 (french)
PDF
Démystifions l'API-culture!
PDF
Cours n°1.1-Introduction.pdf angularrrrr
PDF
CES 2017 wrap up - Touching the future
PPTX
Webinar HTML5 Microsoft Intel
PPTX
ASP.NET MVC 5 et Web API 2
PDF
Angular 6, CLI 6, Material 6 (french)
PPTX
IOT Seminar Paris 2015 - AXA France Presentation
PDF
API Management
PPTX
meetup devops aix marseille du 16/05/23
PPTX
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
PPT
Arte utilise Acquia Cloud pour héberger ses plateformes web
PDF
Meet up sqli lyon 09-2015 - Angular
PPTX
L'histoire d'html5 pour les développeurs windows phone 8
PPTX
Gérer sa dette technique avec SonarQube
PPTX
Introduction au développement windows 8 modern ui avec html5 et javascript
PPTX
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
PPTX
Retour d&rsquo;expérience GlobeCast : Réduisez votre TCO avec les abonnements...
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
XWiki SAS
ngconf 2016 (french)
Démystifions l'API-culture!
Cours n°1.1-Introduction.pdf angularrrrr
CES 2017 wrap up - Touching the future
Webinar HTML5 Microsoft Intel
ASP.NET MVC 5 et Web API 2
Angular 6, CLI 6, Material 6 (french)
IOT Seminar Paris 2015 - AXA France Presentation
API Management
meetup devops aix marseille du 16/05/23
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
Arte utilise Acquia Cloud pour héberger ses plateformes web
Meet up sqli lyon 09-2015 - Angular
L'histoire d'html5 pour les développeurs windows phone 8
Gérer sa dette technique avec SonarQube
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Retour d&rsquo;expérience GlobeCast : Réduisez votre TCO avec les abonnements...
Publicité

Plus de Laurent Duveau (20)

PDF
Shit happens… debugging an Angular app.
PDF
8 things you didn't know about the Angular Router, you won't believe #6!
PDF
Angular Advanced Routing
PDF
Debugging an Angular App
PDF
TypeScript: Angular's Secret Weapon
PDF
Introduction to Angular for .NET Developers
PDF
TypeScript: Angular's Secret Weapon
PDF
Introduction to Angular for .NET Developers
PDF
Introduction to Angular for .NET Developers
PDF
Introduction to Angular with TypeScript for .NET Developers
PDF
Introduction to Angular for .NET Developers
PDF
Introduction à Angular 2
PDF
Angular 2... so can I use it now??
PDF
Microsoft Edge pour les développeurs web
PDF
Microsoft Edge pour les développeurs web
PDF
Introduction to SPAs with AngularJS
PDF
Xamarin.Forms [french]
PDF
Back from Xamarin Evolve 2014
PDF
Windows App Studio
PDF
Windows 8: Live tiles, badges et notifications toasts [french]
Shit happens… debugging an Angular app.
8 things you didn't know about the Angular Router, you won't believe #6!
Angular Advanced Routing
Debugging an Angular App
TypeScript: Angular's Secret Weapon
Introduction to Angular for .NET Developers
TypeScript: Angular's Secret Weapon
Introduction to Angular for .NET Developers
Introduction to Angular for .NET Developers
Introduction to Angular with TypeScript for .NET Developers
Introduction to Angular for .NET Developers
Introduction à Angular 2
Angular 2... so can I use it now??
Microsoft Edge pour les développeurs web
Microsoft Edge pour les développeurs web
Introduction to SPAs with AngularJS
Xamarin.Forms [french]
Back from Xamarin Evolve 2014
Windows App Studio
Windows 8: Live tiles, badges et notifications toasts [french]

Dernier (7)

PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PDF
presentation_with_intro_compressee IEEE EPS France
PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
PDF
FORMATION EN Programmation En Langage C.pdf
PDF
Modems expliqués- votre passerelle vers Internet.pdf
PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
Presentation_Securite_Reseaux_Bac+2.pptx
presentation_with_intro_compressee IEEE EPS France
Tendances tech 2025 - SFEIR & WENVISION.pdf
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
FORMATION EN Programmation En Langage C.pdf
Modems expliqués- votre passerelle vers Internet.pdf
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf

De 0 à Angular en 1h30! (french)

  • 1. De 0 à Angular en ~1h30! 27 Novembre 2018 HTML5Mtl Meetup, Montréal Laurent Duveau @LaurentDuveau
  • 3. Laurent Duveau Montréal Fondateur de l’Académie Angular Formation en classe de 2 jours 129 workshops en 2 ans et demi Montréal, Québec,Toronto, Ottawa, Vancouver, Calgary, Winnipeg, Rimouski , Boston, London, Copenhague, Helsinki, Punta Cana… @LaurentDuveau
  • 7. TypeScript? TypeScript est un langage de programmation libre et open source développé par Microsoft qui a pour but d'améliorer et de sécuriser la production de code JS. Sur-ensemble de JavaScript (c'est-à-dire que tout code JavaScript peut être utilisé avecTypeScript). Le codeTypeScript est transpilé en JavaScript, pouvant ainsi être interprété par n'importe quel navigateur web. -Wikipédia
  • 8. TypeScript est un sur-ensemble de JavaScript TypeScript ES20XX ES7/ES2016 ES6/ES2015 ES5
  • 9. Comment ça marche? TypeScript fichier.ts JavaScript fichier.js Compilateur TypeScript Génère du code ES5/ES6/… “Transpiler”
  • 10. Annotations de type let height:number = 6; let isDone:boolean = true; let name:string = "Académie Angular"; let list:number[] = [1, 2, 3]; function add(x: number, y: number): number { return x + y; } let res = add(18, "5"); 10 Erreur TypeScript dans l’IDE!
  • 11. class Auto { private engine:string; constructor(_engine:string) { this.engine = _engine; } get Engine():string { return this.engine; } set Engine(val:string) { this.engine = val; } start() { console.log("Take off using: " + this.engine); } } méthode constructeur propriété get/set private/public/protected…
  • 12. Interfaces interface Person { firstName : string; lastName: string; sayHi:() => void; } function receivePerson(person:Person) { person.sayHi(); } 12
  • 13. Décorateurs Un décorateur est une expression qui est évaluée après qu’une classe soit définie, et peut être utilisé pour annoter ou modifier le code. Angular les utilise beaucoup 13 @Component(…) class Car { @Input() cpt: number; @methodDecorator() drive() { } }
  • 16. Angular CLI Mise en route rapide! + génération de composants, services, routes, … > npm install -g @angular/cli > ng new DemoApp > cd DemoApp > ng serve https://angular.io/cli > ng g c products/product-list
  • 17. Angular CLI Mettre à jour votre app Angular! PWA : ProgressiveWeb Apps « Application web au comportement natif » Angular supporte PWA et la CLI nous permet de l’activer en 1 commande. > ng add @angular/pwa > ng update
  • 18. Angular Console UI pour la Angular CLI! Convient aux débutants (Pas à l’aise avec le terminal) Créer des projets, interagir avec votre éditeur, générateurs et commandes, installer des extensions, … Vous aide en fournissant auto-complétion et validation des commandes 18 https://angularconsole.com
  • 21. Angular ? Framework JavaScript particulièrement adapté pour les applications web modernes monopage (Single Page Application, ou SPA) Maintenu par Google enTypeScript Large communauté Forte adoption en entreprise Compatible avec IE 9+ et autres navigateurs modernes Open Source, licence MIT v2 Septembre 2016 v7 Octobre 2018 www.angular.io 1 nouvelle version aux 6 mois
  • 22. Ils utilisent Angular… Média etTélécoms • CBC • Radio Canada • Cogeco Media • Rogers • Telus • Videotron • Stingray Digital Québec • RAMQ • Sûreté du Québec • Ville de Montréal • Ville de Longueuil • Ville de Gatineau • Unisersité du Québec • Université de Montréal • Université Laval • Université de Sherbrooke • Commission scolaire de Laval • Loto Québec • HydroQuébec • CRIM (Centre de Recherche Informatique de Montréal) • BAnQ (Bibliothèque et Archives nationales du Québec) • Caisse de dépôt et placement du Québec • Cirque du Soleil • CCQ (Commission de la construction du Québec) • Corporation d'Industrie Touristique du Québec • Régime des Bénéfices Autochtone • INRS (Institut national de la recherche scientifique) Divers • Boeing • Fedex • CanadianTire • Schneider Electric • SAP • ESRI • Expedia • Hewlett-Packard • Fujitsu • Cisco • Microsoft • Jean Coutu Canada • CAA • Canada Post • CIRA (Canadian Internet Registration Authority) • CPA (Canadian Pharmacists Association) • CMHC (Société canadienne d'hypothèques et de logement) • Office of the Superintendent of Financial Institutions Canada • ONF (Office national du film du Canada) • Canadian Museum of History • CHRC (Canadian Heart ResearchCentre) Gouvernement et Armée • Forces Canada • Government of Canada • Government of Ontario • House of Commons • Emploi et Développement social Canada • Canadian Cadet Organizations • Canadian Forces Morale andWelfare Services • CMHC (Société canadienne d'hypothèques et de logement) • Ministère de la défense Canada • Ministère de la Santé et des Services Sociaux • Ministère de la Sécurité publique • Ministère de l'Économie, Innovation, Exportation • Ministère desTransports du Québec • Ministère du Développement Durable, Environnement, Faune et Parcs • Ressources NaturellesCanada • Revenu Québec • SOQUIJ (Société Québécoise d'Information Juridique) • Transportation Safety Board of Canada • Treasury Board of Canada Secretariat • Nuclear Safety Commission Banques • RBC • Desjardins • Banque Nationale • BMO (Bank of Montreal) • Scotia Bank • TD • Banque de développement du Canada (BDC) • Morgan Stanley Assurances • DesjardinsAssurances • IndustrielleAlliance • Intact • La Capitale • Manulife • Pacific Blue Cross
  • 23. JavaScript, HTML, CSS, … Angular est là API REST et: ASP.NET,C#, Java, PHP, Ruby, Node, … Votre BD est ici! Où est TypeScript ? Angular est l’app front end pour n’importe quel backend Ce qui signifie que Angular (JavaScript) ne pourra *jamais* se connecter directement à une base de données… (bien sûr!) … mais peut émettre des requêtes Http HTTP
  • 24. Angular Core Concepts Components Modules Dependency Injection Language (TypeScript) Services Data Binding Decorators Routing
  • 25. Bâtir une app avec des composants
  • 27. Votre app est un arbre de composants Map Update App DetailsList ProductsMenu Contact
  • 28. Qu'est-ce qu'un composant? Un composant est un objet réutilisable Fait de: Offre un "sélecteur": HTML Template Code (classe) <product-list></product-list> TypeScript! place une instance du composant dans le DOM
  • 29. La classe d’un composant imports décorateur classe import { Component } from '@angular/core'; import { DataService } from './data.service'; @Component({ selector: 'product-detail', templateUrl: 'product-detail.component.html' }) export class ProductDetailComponent { }