Top Banner
Making Angular2 Lean and Fast Vinci Rufus @areai51
43

Making Angular2 lean and Fast

Apr 06, 2017

Download

Internet

Vinci Rufus
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Making Angular2 lean and Fast

Making Angular2 Lean and FastVinci Rufus@areai51

Page 2: Making Angular2 lean and Fast

Angular2 Final Released

Page 3: Making Angular2 lean and Fast

Give some

Page 4: Making Angular2 lean and Fast

You have Changed !!!

Page 5: Making Angular2 lean and Fast
Page 6: Making Angular2 lean and Fast

2011 -2013

Sublime Text

~ 2014

Page 7: Making Angular2 lean and Fast

Avg Human’s Attention Span

9 seconds8 seconds (2013)

* Microsoft Attention Span Research Report

Page 8: Making Angular2 lean and Fast

What’s taking you so long

Page 9: Making Angular2 lean and Fast

The ng-show@ngConf 2016

• https://www.youtube.com/watch?v=aSFfLVxT5vA

Page 10: Making Angular2 lean and Fast

Peek into the Angular2 Framework Platform

Angular 2

Mobile Server Material UI

CLI

IDE &

TypeScript Augury

Page 11: Making Angular2 lean and Fast

isAngular2 ===‘fast’

Page 12: Making Angular2 lean and Fast

Angular2 performance

Render

2.5x Faster

Re-Render

4.2x Faster

Always

5x Faster

Angular2 Beta Final

Page 13: Making Angular2 lean and Fast

Things that make Angular2 Fast …just some of them

Fast Change Detection

Unidirectional Data Flow

Lazy Loading of Routes

1

3

4

5

AoT Compilation

JavaScript VM Friendly Code

Tree Shake !!

+

Angular 1.x

Angular 2

Page 14: Making Angular2 lean and Fast

My India – Report CardThe journey

Page 15: Making Angular2 lean and Fast

Numbers

4.5sFirst Paint2.9

Bundle sizeMB

Page 16: Making Angular2 lean and Fast

Ahead of Time (AoT)The best thing ever since Angular

Page 17: Making Angular2 lean and Fast

Just in Time (JIT)

Develop in TypeScript

Compile using tsc

Bundle & Minify Deploy

Download JS Assets

Angular Bootstraps

JIT Compilation Render App

App Development

App Rendering

Page 18: Making Angular2 lean and Fast

Ahead of Time (AoT)

Develop in TypeScript

Compile using ngc

Bundle & Minify Deploy

Download JS Assets Angular Bootstraps Render App

App Development

App Rendering

Angular Templates+CSS into TypeScript

TS into JavaScript

Page 19: Making Angular2 lean and Fast

Component.ts

Component.ngfactory.ts

Component.Metadata.json

Page 20: Making Angular2 lean and Fast

app.component.ts

app.component.ngfactory.ts

app.component.metadata.json

Page 21: Making Angular2 lean and Fast

BootstrappingJust In Time (JIT)

Ahead of Time (AoT)

Page 22: Making Angular2 lean and Fast

54%

Bundle Size

JIT AoT0

0.5

1

1.5

2

2.5

3

3.5

Size

in M

B

Page 23: Making Angular2 lean and Fast

Time to Load

JIT AoT0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

67%

Page 24: Making Angular2 lean and Fast

Tree Shake

Rollup.js Google Closure Compiler

AoT+ Tree Shake 2.5x Smaller bundle sizes

Page 25: Making Angular2 lean and Fast

JIT AoT Tree Shake +gzip0

0.5

1

1.5

2

2.5

3

3.5

2.9

1.334

0.261

Size

in M

B

Page 26: Making Angular2 lean and Fast

Universal Rendering…because first impressions matter.

Page 27: Making Angular2 lean and Fast

Universal Rendering

Render the first page on the server and transfer state to client side once it is loaded

..more to come

Render Angular Universally using

Page 28: Making Angular2 lean and Fast
Page 29: Making Angular2 lean and Fast

The Uncanny Valley

Page 30: Making Angular2 lean and Fast

Preboot to the Rescue

0

100

Initial Request View Painted JS arrives JS parsed +evaled

Uncanny Valley

Record Events Relay EventsPreboot.js

Page 31: Making Angular2 lean and Fast

http://universal.angular.io

Page 32: Making Angular2 lean and Fast

Web Workers..the real workhorse

Page 33: Making Angular2 lean and Fast

Main Thread

Web Workers in Angular

Angular Application(View Parts)

Worker Thread

Angular Application(CPU intensive Parts)

ClientMessageBroker ServiceMessageBroker

Page 34: Making Angular2 lean and Fast

PWA & Service Workers..the new kid on the block

Page 35: Making Angular2 lean and Fast

"Its costs more to transmit a byte than to compute it"

especially on mobile devices

Page 36: Making Angular2 lean and Fast

App Shell Model

Instant Loading

Offline Support

Progressive Web App

60 fps Add to Home Screen

Render RootComponent Universally

Root Component as

App Shell

Service Worker via CLI

Web WorkerWeb App Manifest

via CLI

Page 37: Making Angular2 lean and Fast

Some Numbers

Standard App Shell +Service worker0

500

1000

1500

2000

2500

2356

287

128

Tim

e in

mse

c

Page 38: Making Angular2 lean and Fast

https://mobile.angular.io/

Page 39: Making Angular2 lean and Fast

PWA

Web Workers

UniversalAhead of Time (AoT)

+Tree ShakeFor All Applications

- Gets many new visitors - SEO is important - Social shares happen a lot #eCommerce

- Need consistent 60 fps - CPU Intensive Tasks #Data Visualization, #Number Crunching

Truly Mobile First Native App Replacement

Page 40: Making Angular2 lean and Fast

The Crew

Aakash Keshav Siddharth Visweshwaran

Nisheed Shafeeq Anup Bhumika

Page 41: Making Angular2 lean and Fast

जनहि�त में जारी

Be Nice!to people

Page 42: Making Angular2 lean and Fast

जनहि�त में जारी

EmbraceDiversity

In Opinions

Ways of working

Frameworks

Page 43: Making Angular2 lean and Fast

I’m done!!

Promise

Observables