SlideShare a Scribd company logo
Getting Started with
Matt Raible • @mraible
Blogger on raibledesigns.com
UI Architect and Java Champion
Father, Skier, Mountain
Biker, Whitewater Rafter
Web Framework Connoisseur
Who is Matt Raible?
Bus Lover
Stormpath Developer Evangelist
Getting Started With Angular
Speed to Market & Cost Reduction
Complete Identity solution out-of-the-
box

Security best practices and updates
by default

Clean and elegant API/SDKs

Little to code, no maintenance
Stormpath User Management
My Angular Journey
Jobs on LinkedIn (US)
January 2017
0
1,500
3,000
4,500
6,000
Backbone AngularJS Ember Knockout React
Jobs on LinkedIn (US)
January 2017
0
650
1,300
1,950
2,600
Backbone Angular 2 Ember Knockout React
Jobs on LinkedIn (US) #ItsJustAngular
January 2017
0
2,250
4,500
6,750
9,000
Backbone Angular Ember Knockout React
LinkedIn Skills
January 2017
0
100,000
200,000
300,000
400,000
Backbone AngularJS Knockout Ember React
LinkedIn Skills
January 2017
0
22,500
45,000
67,500
90,000
Backbone Angular 2 Knockout Ember React
LinkedIn Skills #ItsJustAngular
January 2017
0
50,000
100,000
150,000
200,000
Backbone Angular Knockout Ember React
Google Trends
Getting Started With Angular
Who wants to learn ?
Hello World with AngularJS
<!doctype html>
<html ng-app>
<head>
<title>Hello World</title>
</head>
<body>
<div>
<label>Name:</label>
<input type="text" ng-model="name" placeholder="Enter a name here">
<hr>
<h1>Hello {{name}}!</h1>
</div>
<script src="http://code.angularjs.org/1.5.8/angular.min.js"></script>
</body>
</html>
Getting Started With Angular
Hello World with Angular
<!DOCTYPE html>
<html>
<head>
<title>Angular QuickStart</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="systemjs.config.js"></script>
<script>
System.import('app').catch(function(err){ console.error(err); });
</script>
</head>
<body>
<my-app>Loading AppComponent content here ...</my-app>
</body>
</html>
app/main.ts
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
app/app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
app/app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `<h1>Hello {{name}}</h1>`,
})
export class AppComponent { name = 'Angular'; }
Angular 2+ Choices
Choose a language

JavaScript (ES6 or ES5)

TypeScript

Dart

Anything that transpiles to JS

Setup dev environment

Install Node

Choose Package Manager

Choose Module Loader

Choose Transpiler

Choose Build Tool
Easiest ways to get started
Angular QuickStart

https://github.com/angular/quickstart 

Angular Seed

https://github.com/mgechev/angular-seed 

Angular CLI

https://github.com/angular/angular-cli
Angular Demo!
Start with angular-cli

Build Search Feature

Data via HTTP

Form Validation

CSS Frameworks

Security
Built-in Components
<div *ngIf="str == 'yes'"></div>
<div [ngSwitch]="myVar">
<div *ngSwitchWhen="'A'"></div>
</div>
<div [ngStyle]="{color: colorinput.value}"></div>
<div [ngClass]="{bordered: true}"></div>
<div *ngFor="let item of items;
let num = index"></div>
The asterisk (*) effect
https://angular.io/docs/ts/latest/guide/structural-directives.html#!#asteris
<div *ngIf="hero">{{hero}}</div>
<div *ngFor="let hero of heroes">{{hero}}</div>
The asterisk (*) effect
<!-- Examples (A) and (B) are the same -->
<!-- (A) *ngIf paragraph -->
<p *ngIf="condition">
Our heroes are true!
</p>
<!-- (B) [ngIf] with template -->
<template [ngIf]="condition">
<p>
Our heroes are true!
</p>
</template>
Angular Forms
Template-Driven

import { FormsModule } from '@angular/forms';
Reactive Forms

import { ReactiveFormsModule } from '@angular/forms';
Template-Driven Validation
<label for="name">Name</label>
<input type="text" class="form-control" id="name"
required
[(ngModel)]="model.name" name="name"
#name="ngModel" >
<div [hidden]="name.valid || name.pristine"
class="alert alert-danger">
Name is required
</div>
Reactive Forms Validation
<form [formGroup]="heroForm" *ngIf="active" (ngSubmit)="onSubmit()">
<label for="name">Name</label>
<input type="text" id="name" class="form-control"
formControlName="name" required >
<div *ngIf="formErrors.name" class="alert alert-danger">
{{ formErrors.name }}
</div>
</form>
Data Architectures
MVW / Two-way binding

Flux

Observables
Observables and RxJS
Promises emit a single value whereas streams emit many values

Imperative code “pulls” data whereas reactive streams “push” data

RxJS is functional
Streams are composable
Style Guides
John Papa’s Angular Style Guide

https://github.com/johnpapa/angular-styleguide 

Official Angular Style Guide

https://angular.io/styleguide
Upgrading from Angular 1.x to 2.x
Big Bang

Incremental

ngUpgrade import {UpgradeAdapter} from ‘@angular/upgrade';
var adapter = new UpgradeAdapter();
var app = angular.module('myApp', []);
adapter.bootstrap(document.body, ['myApp']);
Cool Projects
Web Workers and Service Workers

Universal Angular 2

Electron

ng-bootstrap and Fuel-UI

Angular Material

JHipster, baby!
ng-book 2
A comprehensive guide to developing with
Angular 2

Sample apps: Reddit clone, Chat with RxJS
Observables, YouTube search-as-you-type,
Spotify Search

How to write components, use forms and APIs

Over 5,500+ lines of code!
Who’s using Angular?
Made with AngularJS

https://www.madewithangular.com

Angular Expo

http://angularexpo.com

Awesome Angular

https://github.com/AngularClass/awesome-angular2
Angular Performance Checklist
Network performance

Bundling

Minification and Dead code
elimination

Ahead-of-Time (AoT) Compilation

Compression

Pre-fetching Resources

Lazy-Loading of Resources

Caching
https://github.com/mgechev/angular-performance-checklist
Shortcut to becoming an Angular Expert
JUST DO IT.
https://github.com/mraible/ng-demo

http://gist.asciidoctor.org/?github-
mraible/ng-demo//README.adoc

Shows what we did today, + unit tests,
integration tests and continuous
integration!
Angular and Angular CLI Demo
Open Source Angular Projects


AngularJS SDK

Angular SDK (beta)

JHipster 4 (almost beta)
Contact Me!

raibledesigns.com

@mraible

Presentations

slideshare.net/mraible

Code

github.com/mraible
Questions?
Ad

Recommended

PDF
Building Beautiful REST APIs with ASP.NET Core
Stormpath
 
PDF
Creating RESTful API’s with Grails and Spring Security
Alvaro Sanchez-Mariscal
 
PDF
Build a REST API for your Mobile Apps using Node.js
Stormpath
 
PDF
Creating applications with Grails, Angular JS and Spring Security - G3 Summit...
Alvaro Sanchez-Mariscal
 
PDF
Building RESTful APIs
Silota Inc.
 
PDF
Building an API with Django and Django REST Framework
Christopher Foresman
 
PPTX
Write an API for Almost Anything: The Amazing Power and Flexibility of Django...
Caktus Group
 
PDF
Swagger UI
Walaa Hamdy Assy
 
PPTX
Building a scalable API with Grails
Tanausu Cerdeña
 
PDF
Creating applications with Grails, Angular JS and Spring Security
Alvaro Sanchez-Mariscal
 
PDF
Rapid API Development with LoopBack/StrongLoop
Raymond Camden
 
PDF
Simple REST-APIs with Dropwizard and Swagger
LeanIX GmbH
 
PPTX
Introducing Swagger
Tony Tam
 
PDF
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
Alvaro Sanchez-Mariscal
 
PDF
OpenAPI development with Python
Takuro Wada
 
PDF
Nordic APIs - Automatic Testing of (RESTful) API Documentation
Rouven Weßling
 
PDF
Do you want a SDK with that API? (Nordic APIS April 2014)
Nordic APIs
 
PPTX
Building a Node.js API backend with LoopBack in 5 Minutes
Raymond Feng
 
PDF
Introduction to Usergrid - ApacheCon EU 2014
David M. Johnson
 
PDF
How to Contribute to Apache Usergrid
David M. Johnson
 
PDF
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...
Alvaro Sanchez-Mariscal
 
PPTX
Django rest framework
Blank Chen
 
PDF
Mastering Grails 3 Plugins - GR8Conf US 2016
Alvaro Sanchez-Mariscal
 
PDF
API Days Australia - Automatic Testing of (RESTful) API Documentation
Rouven Weßling
 
PPTX
The REST And Then Some
Nordic APIs
 
PDF
Quick run in with Swagger
Mesh Korea
 
PDF
A Debugging Adventure: Journey through Ember.js Glue
Mike North
 
PDF
The Ultimate Guide to Mobile API Security
Stormpath
 
PPTX
REST API Security: OAuth 2.0, JWTs, and More!
Stormpath
 

More Related Content

What's hot (20)

PPTX
Building a scalable API with Grails
Tanausu Cerdeña
 
PDF
Creating applications with Grails, Angular JS and Spring Security
Alvaro Sanchez-Mariscal
 
PDF
Rapid API Development with LoopBack/StrongLoop
Raymond Camden
 
PDF
Simple REST-APIs with Dropwizard and Swagger
LeanIX GmbH
 
PPTX
Introducing Swagger
Tony Tam
 
PDF
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
Alvaro Sanchez-Mariscal
 
PDF
OpenAPI development with Python
Takuro Wada
 
PDF
Nordic APIs - Automatic Testing of (RESTful) API Documentation
Rouven Weßling
 
PDF
Do you want a SDK with that API? (Nordic APIS April 2014)
Nordic APIs
 
PPTX
Building a Node.js API backend with LoopBack in 5 Minutes
Raymond Feng
 
PDF
Introduction to Usergrid - ApacheCon EU 2014
David M. Johnson
 
PDF
How to Contribute to Apache Usergrid
David M. Johnson
 
PDF
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...
Alvaro Sanchez-Mariscal
 
PPTX
Django rest framework
Blank Chen
 
PDF
Mastering Grails 3 Plugins - GR8Conf US 2016
Alvaro Sanchez-Mariscal
 
PDF
API Days Australia - Automatic Testing of (RESTful) API Documentation
Rouven Weßling
 
PPTX
The REST And Then Some
Nordic APIs
 
PDF
Quick run in with Swagger
Mesh Korea
 
PDF
A Debugging Adventure: Journey through Ember.js Glue
Mike North
 
Building a scalable API with Grails
Tanausu Cerdeña
 
Creating applications with Grails, Angular JS and Spring Security
Alvaro Sanchez-Mariscal
 
Rapid API Development with LoopBack/StrongLoop
Raymond Camden
 
Simple REST-APIs with Dropwizard and Swagger
LeanIX GmbH
 
Introducing Swagger
Tony Tam
 
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
Alvaro Sanchez-Mariscal
 
OpenAPI development with Python
Takuro Wada
 
Nordic APIs - Automatic Testing of (RESTful) API Documentation
Rouven Weßling
 
Do you want a SDK with that API? (Nordic APIS April 2014)
Nordic APIs
 
Building a Node.js API backend with LoopBack in 5 Minutes
Raymond Feng
 
Introduction to Usergrid - ApacheCon EU 2014
David M. Johnson
 
How to Contribute to Apache Usergrid
David M. Johnson
 
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...
Alvaro Sanchez-Mariscal
 
Django rest framework
Blank Chen
 
Mastering Grails 3 Plugins - GR8Conf US 2016
Alvaro Sanchez-Mariscal
 
API Days Australia - Automatic Testing of (RESTful) API Documentation
Rouven Weßling
 
The REST And Then Some
Nordic APIs
 
Quick run in with Swagger
Mesh Korea
 
A Debugging Adventure: Journey through Ember.js Glue
Mike North
 

Viewers also liked (20)

PDF
The Ultimate Guide to Mobile API Security
Stormpath
 
PPTX
REST API Security: OAuth 2.0, JWTs, and More!
Stormpath
 
PPTX
Instant Security & Scalable User Management with Spring Boot
Stormpath
 
PDF
Securing Web Applications with Token Authentication
Stormpath
 
PPTX
Custom Data Search with Stormpath
Stormpath
 
PDF
JWTs in Java for CSRF and Microservices
Stormpath
 
PPTX
Multi-Tenancy with Spring Boot
Stormpath
 
PPTX
Beautiful REST+JSON APIs with Ion
Stormpath
 
PPTX
Secure Your REST API (The Right Way)
Stormpath
 
PPTX
Elegant Rest Design Webinar
Stormpath
 
PPTX
Build A Killer Client For Your REST+JSON API
Stormpath
 
PPTX
JWTs for CSRF and Microservices
Stormpath
 
PDF
Building Beautiful REST APIs in ASP.NET Core
Stormpath
 
PPTX
Storing User Files with Express, Stormpath, and Amazon S3
Stormpath
 
PDF
Mobile Authentication for iOS Applications - Stormpath 101
Stormpath
 
PPTX
Token Authentication in ASP.NET Core
Stormpath
 
PPTX
Stormpath 101: Spring Boot + Spring Security
Stormpath
 
PPTX
Spring Boot Authentication...and More!
Stormpath
 
PPTX
Token Authentication for Java Applications
Stormpath
 
PPTX
Browser Security 101
Stormpath
 
The Ultimate Guide to Mobile API Security
Stormpath
 
REST API Security: OAuth 2.0, JWTs, and More!
Stormpath
 
Instant Security & Scalable User Management with Spring Boot
Stormpath
 
Securing Web Applications with Token Authentication
Stormpath
 
Custom Data Search with Stormpath
Stormpath
 
JWTs in Java for CSRF and Microservices
Stormpath
 
Multi-Tenancy with Spring Boot
Stormpath
 
Beautiful REST+JSON APIs with Ion
Stormpath
 
Secure Your REST API (The Right Way)
Stormpath
 
Elegant Rest Design Webinar
Stormpath
 
Build A Killer Client For Your REST+JSON API
Stormpath
 
JWTs for CSRF and Microservices
Stormpath
 
Building Beautiful REST APIs in ASP.NET Core
Stormpath
 
Storing User Files with Express, Stormpath, and Amazon S3
Stormpath
 
Mobile Authentication for iOS Applications - Stormpath 101
Stormpath
 
Token Authentication in ASP.NET Core
Stormpath
 
Stormpath 101: Spring Boot + Spring Security
Stormpath
 
Spring Boot Authentication...and More!
Stormpath
 
Token Authentication for Java Applications
Stormpath
 
Browser Security 101
Stormpath
 
Ad

Similar to Getting Started With Angular (20)

PDF
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
Matt Raible
 
PDF
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
Matt Raible
 
PPTX
Fly High With Angular - How to build an app using Angular
Vacation Labs
 
PDF
The Art of Angular in 2016 - vJUG24
Matt Raible
 
PDF
The Art of Angular in 2016 - Devoxx France 2016
Matt Raible
 
PPTX
Start your journey with angular | Basic Angular
Anwarul Islam
 
PDF
The Art of Angular in 2016 - Devoxx UK 2016
Matt Raible
 
PPTX
yrs of IT experience in enterprise programming
narasimhulum1623
 
PPTX
mean stack
michaelaaron25322
 
DOCX
Angular Interview Questions & Answers
Ratnala Charan kumar
 
PPTX
Angular Directives
Malla Reddy University
 
PDF
Download full ebook of Angular 2 Cookbook Frisbie instant download pdf
kovencoitofm
 
PDF
Commit University - Exploring Angular 2
Commit University
 
PDF
Angularjs
Ynon Perek
 
PDF
Instant download Angular 2 Cookbook Frisbie pdf all chapter
solvorpohlak24
 
PDF
Exploring Angular 2 - Episode 1
Ahmed Moawad
 
PDF
Infosys Angular Interview Questions PDF By ScholarHat
Scholarhat
 
PPTX
Foster - Getting started with Angular
MukundSonaiya1
 
PDF
Angular 2 - The Next Framework
Commit University
 
PDF
Angular Up and Running Learning Angular Step by Step 1st Edition Shyam Seshadri
maneskortyjt
 
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
Matt Raible
 
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
Matt Raible
 
Fly High With Angular - How to build an app using Angular
Vacation Labs
 
The Art of Angular in 2016 - vJUG24
Matt Raible
 
The Art of Angular in 2016 - Devoxx France 2016
Matt Raible
 
Start your journey with angular | Basic Angular
Anwarul Islam
 
The Art of Angular in 2016 - Devoxx UK 2016
Matt Raible
 
yrs of IT experience in enterprise programming
narasimhulum1623
 
mean stack
michaelaaron25322
 
Angular Interview Questions & Answers
Ratnala Charan kumar
 
Angular Directives
Malla Reddy University
 
Download full ebook of Angular 2 Cookbook Frisbie instant download pdf
kovencoitofm
 
Commit University - Exploring Angular 2
Commit University
 
Angularjs
Ynon Perek
 
Instant download Angular 2 Cookbook Frisbie pdf all chapter
solvorpohlak24
 
Exploring Angular 2 - Episode 1
Ahmed Moawad
 
Infosys Angular Interview Questions PDF By ScholarHat
Scholarhat
 
Foster - Getting started with Angular
MukundSonaiya1
 
Angular 2 - The Next Framework
Commit University
 
Angular Up and Running Learning Angular Step by Step 1st Edition Shyam Seshadri
maneskortyjt
 
Ad

More from Stormpath (8)

PPTX
Secure API Services in Node with Basic Auth and OAuth2
Stormpath
 
PPTX
How to Use Stormpath in angular js
Stormpath
 
PPTX
Building Secure User Interfaces With JWTs (JSON Web Tokens)
Stormpath
 
PPTX
Rest API Security
Stormpath
 
PPTX
Build a Node.js Client for Your REST+JSON API
Stormpath
 
PPTX
So long scrum, hello kanban
Stormpath
 
PPTX
REST API Design for JAX-RS And Jersey
Stormpath
 
PPTX
Design Beautiful REST + JSON APIs
Stormpath
 
Secure API Services in Node with Basic Auth and OAuth2
Stormpath
 
How to Use Stormpath in angular js
Stormpath
 
Building Secure User Interfaces With JWTs (JSON Web Tokens)
Stormpath
 
Rest API Security
Stormpath
 
Build a Node.js Client for Your REST+JSON API
Stormpath
 
So long scrum, hello kanban
Stormpath
 
REST API Design for JAX-RS And Jersey
Stormpath
 
Design Beautiful REST + JSON APIs
Stormpath
 

Recently uploaded (20)

PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
PDF
UiPath Agentic AI ile Akıllı Otomasyonun Yeni Çağı
UiPathCommunity
 
PDF
Open Source Milvus Vector Database v 2.6
Zilliz
 
PPTX
reInforce 2025 Lightning Talk - Scott Francis.pptx
ScottFrancis51
 
PDF
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
PPTX
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
PPTX
Practical Applications of AI in Local Government
OnBoard
 
PDF
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
 
PDF
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
PDF
Plugging AI into everything: Model Context Protocol Simplified.pdf
Abati Adewale
 
PPTX
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
PDF
Kubernetes - Architecture & Components.pdf
geethak285
 
PPTX
Paycifi - Programmable Trust_Breakfast_PPTXT
FinTech Belgium
 
PDF
The Growing Value and Application of FME & GenAI
Safe Software
 
PDF
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
PPTX
𝙳𝚘𝚠𝚗𝚕𝚘𝚊𝚍—Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
 
PDF
Python Conference Singapore - 19 Jun 2025
ninefyi
 
PPTX
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
UiPath Agentic AI ile Akıllı Otomasyonun Yeni Çağı
UiPathCommunity
 
Open Source Milvus Vector Database v 2.6
Zilliz
 
reInforce 2025 Lightning Talk - Scott Francis.pptx
ScottFrancis51
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
Practical Applications of AI in Local Government
OnBoard
 
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
 
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
Plugging AI into everything: Model Context Protocol Simplified.pdf
Abati Adewale
 
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Kubernetes - Architecture & Components.pdf
geethak285
 
Paycifi - Programmable Trust_Breakfast_PPTXT
FinTech Belgium
 
The Growing Value and Application of FME & GenAI
Safe Software
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
𝙳𝚘𝚠𝚗𝚕𝚘𝚊𝚍—Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
 
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 

Getting Started With Angular

  • 1. Getting Started with Matt Raible • @mraible
  • 2. Blogger on raibledesigns.com UI Architect and Java Champion Father, Skier, Mountain Biker, Whitewater Rafter Web Framework Connoisseur Who is Matt Raible? Bus Lover Stormpath Developer Evangelist
  • 4. Speed to Market & Cost Reduction Complete Identity solution out-of-the- box Security best practices and updates by default Clean and elegant API/SDKs Little to code, no maintenance
  • 7. Jobs on LinkedIn (US) January 2017 0 1,500 3,000 4,500 6,000 Backbone AngularJS Ember Knockout React
  • 8. Jobs on LinkedIn (US) January 2017 0 650 1,300 1,950 2,600 Backbone Angular 2 Ember Knockout React
  • 9. Jobs on LinkedIn (US) #ItsJustAngular January 2017 0 2,250 4,500 6,750 9,000 Backbone Angular Ember Knockout React
  • 12. LinkedIn Skills #ItsJustAngular January 2017 0 50,000 100,000 150,000 200,000 Backbone Angular Knockout Ember React
  • 15. Who wants to learn ?
  • 16. Hello World with AngularJS <!doctype html> <html ng-app> <head> <title>Hello World</title> </head> <body> <div> <label>Name:</label> <input type="text" ng-model="name" placeholder="Enter a name here"> <hr> <h1>Hello {{name}}!</h1> </div> <script src="http://code.angularjs.org/1.5.8/angular.min.js"></script> </body> </html>
  • 18. Hello World with Angular <!DOCTYPE html> <html> <head> <title>Angular QuickStart</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="styles.css"> <!-- Polyfill(s) for older browsers --> <script src="node_modules/core-js/client/shim.min.js"></script> <script src="node_modules/zone.js/dist/zone.js"></script> <script src="node_modules/systemjs/dist/system.src.js"></script> <script src="systemjs.config.js"></script> <script> System.import('app').catch(function(err){ console.error(err); }); </script> </head> <body> <my-app>Loading AppComponent content here ...</my-app> </body> </html>
  • 19. app/main.ts import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app.module'; platformBrowserDynamic().bootstrapModule(AppModule);
  • 20. app/app.module.ts import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; @NgModule({ imports: [ BrowserModule ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }
  • 21. app/app.component.ts import { Component } from '@angular/core'; @Component({ selector: 'my-app', template: `<h1>Hello {{name}}</h1>`, }) export class AppComponent { name = 'Angular'; }
  • 22. Angular 2+ Choices Choose a language JavaScript (ES6 or ES5) TypeScript Dart Anything that transpiles to JS Setup dev environment Install Node Choose Package Manager Choose Module Loader Choose Transpiler Choose Build Tool
  • 23. Easiest ways to get started Angular QuickStart https://github.com/angular/quickstart Angular Seed https://github.com/mgechev/angular-seed Angular CLI https://github.com/angular/angular-cli
  • 24. Angular Demo! Start with angular-cli Build Search Feature Data via HTTP Form Validation CSS Frameworks Security
  • 25. Built-in Components <div *ngIf="str == 'yes'"></div> <div [ngSwitch]="myVar"> <div *ngSwitchWhen="'A'"></div> </div> <div [ngStyle]="{color: colorinput.value}"></div> <div [ngClass]="{bordered: true}"></div> <div *ngFor="let item of items; let num = index"></div>
  • 26. The asterisk (*) effect https://angular.io/docs/ts/latest/guide/structural-directives.html#!#asteris <div *ngIf="hero">{{hero}}</div> <div *ngFor="let hero of heroes">{{hero}}</div>
  • 27. The asterisk (*) effect <!-- Examples (A) and (B) are the same --> <!-- (A) *ngIf paragraph --> <p *ngIf="condition"> Our heroes are true! </p> <!-- (B) [ngIf] with template --> <template [ngIf]="condition"> <p> Our heroes are true! </p> </template>
  • 28. Angular Forms Template-Driven import { FormsModule } from '@angular/forms'; Reactive Forms import { ReactiveFormsModule } from '@angular/forms';
  • 29. Template-Driven Validation <label for="name">Name</label> <input type="text" class="form-control" id="name" required [(ngModel)]="model.name" name="name" #name="ngModel" > <div [hidden]="name.valid || name.pristine" class="alert alert-danger"> Name is required </div>
  • 30. Reactive Forms Validation <form [formGroup]="heroForm" *ngIf="active" (ngSubmit)="onSubmit()"> <label for="name">Name</label> <input type="text" id="name" class="form-control" formControlName="name" required > <div *ngIf="formErrors.name" class="alert alert-danger"> {{ formErrors.name }} </div> </form>
  • 31. Data Architectures MVW / Two-way binding Flux Observables
  • 32. Observables and RxJS Promises emit a single value whereas streams emit many values Imperative code “pulls” data whereas reactive streams “push” data RxJS is functional Streams are composable
  • 33. Style Guides John Papa’s Angular Style Guide https://github.com/johnpapa/angular-styleguide Official Angular Style Guide https://angular.io/styleguide
  • 34. Upgrading from Angular 1.x to 2.x Big Bang Incremental ngUpgrade import {UpgradeAdapter} from ‘@angular/upgrade'; var adapter = new UpgradeAdapter(); var app = angular.module('myApp', []); adapter.bootstrap(document.body, ['myApp']);
  • 35. Cool Projects Web Workers and Service Workers Universal Angular 2 Electron ng-bootstrap and Fuel-UI Angular Material JHipster, baby!
  • 36. ng-book 2 A comprehensive guide to developing with Angular 2 Sample apps: Reddit clone, Chat with RxJS Observables, YouTube search-as-you-type, Spotify Search How to write components, use forms and APIs Over 5,500+ lines of code!
  • 37. Who’s using Angular? Made with AngularJS https://www.madewithangular.com Angular Expo http://angularexpo.com Awesome Angular https://github.com/AngularClass/awesome-angular2
  • 38. Angular Performance Checklist Network performance Bundling Minification and Dead code elimination Ahead-of-Time (AoT) Compilation Compression Pre-fetching Resources Lazy-Loading of Resources Caching https://github.com/mgechev/angular-performance-checklist
  • 39. Shortcut to becoming an Angular Expert JUST DO IT.
  • 41. Open Source Angular Projects 
 AngularJS SDK Angular SDK (beta) JHipster 4 (almost beta)