Embracing Performance in Today's Multi-Platform Macrocosm

113
#bdconf Embracing performance in today’s multi-platform macrocosm

description

Link here: http://bdconf.com/2013/san-diego/schedule#bbinto Follow-up: http://bit.ly/bdconf-perf-macrocosm With over 5 million pages, CBC.ca is one of Canada's largest web properties. As the national Canadian broadcaster, in an ever changing world of news, CBC's multi-platform development is focused on delivering content to millions of Canadians daily on any platform they choose - at any time and any place they want. CBC's decision to go hybrid has helped facilitate fast turn-around times in mobile development and multi-platform delivery. This session will discuss the challenges and best practices regarding our hybrid app development and the integration of multiple content management systems with several content areas. The importance of focusing on performance during design and development, and placing great emphasize on setting performance budgets will also be discussed during this session. Performance optimization and automation are key components for delivering fast web app experiences, therefore, developing web apps without embracing performance, will not get you anywhere. Key learning objectives of this session, include: a better understanding of what to look out for when delivering content to your audience, no matter what platform or device they choose, as well as why you should enforce performance as part of your product, design and development life cycle.

Transcript of Embracing Performance in Today's Multi-Platform Macrocosm

Page 1: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Embracing performance in today’s multi-platform macrocosm

Page 2: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

BARBARA BERMESSenior Architect (Moblie Web)Digital OperationsCanadian Broadcasting Corporation (CBC)

bbinto

Page 3: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

More����������� ������������������  info����������� ������������������  under����������� ������������������  follow-up����������� ������������������  blog����������� ������������������  post����������� ������������������  (URL����������� ������������������  at����������� ������������������  end����������� ������������������  of����������� ������������������  slides)

Before we get started...

Page 4: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

CANADA!

Page 5: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

#bdconf

Page 6: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

National public radio and television broadcaster

#bdconf

Page 7: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

National public radio and television broadcaster

Kind of like the NPR

#bdconf

Page 8: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

National public radio and television broadcaster

Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding

#bdconf

Page 9: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

National public radio and television broadcaster

Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding

Large internal and external digital ecosystem

#bdconf

Page 10: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

National public radio and television broadcaster

Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding

Large internal and external digital ecosystem

3 mobile websites

#bdconf

Page 11: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

National public radio and television broadcaster

Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding

Large internal and external digital ecosystem

3 mobile websites11 iOS, 3 Android, 5 Blackberry, 3 Windows apps

#bdconf

Page 12: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

National public radio and television broadcaster

Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding

Desktop site page views ~5Mio/day

Large internal and external digital ecosystem

3 mobile websites11 iOS, 3 Android, 5 Blackberry, 3 Windows apps

#bdconf

Page 13: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

National public radio and television broadcaster

Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding

Desktop site page views ~5Mio/day

Mobile Touch site page views ~ 500K/day

Large internal and external digital ecosystem

3 mobile websites11 iOS, 3 Android, 5 Blackberry, 3 Windows apps

#bdconf

Page 14: Embracing Performance in Today's Multi-Platform Macrocosm

Canadian Broadcasting Corporation

National public radio and television broadcaster

Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding

Desktop site page views ~5Mio/day

Mobile Touch site page views ~ 500K/day

News app page views ~1Mio/day

Large internal and external digital ecosystem

3 mobile websites11 iOS, 3 Android, 5 Blackberry, 3 Windows apps

#bdconf

Page 15: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Embracing performance in today’s multi-platform macrocosm

Page 16: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

PERFORMANCEWHY THE NEED FOR SPEED?

Page 17: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Page 18: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Overestimating wait times for rides

Hidden lineups

Page 19: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

S L O W

Perception of Speed

FAST

Page 20: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

S L O W

Perception of Speed

Unpleasant

FAST

Page 21: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

S L O W

Perception of Speed

Unpleasant

Unknown

FAST

Page 22: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

S L O W

Perception of Speed

Unpleasant

Unknown

Boring

FAST

Page 23: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

S L O W

Perception of Speed

Unpleasant

Unknown

Boring

Task is successful

FAST

Page 24: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

S L O W

Perception of Speed

Unpleasant

Unknown

Boring

Task is successful

Responsive System

FAST

Page 25: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

S L O W

Perception of Speed

Unpleasant

Unknown

Boring

Task is successful

Responsive System

FAST

Informed about progress

Page 26: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

“Ultimately performance is about respect”

BRAD FROST

Page 27: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Embracing performance in today’s multi-platform macrocosm

Page 28: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Macrocosm

#bdconf

Page 29: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Macrocosm

Operating systems and platforms

#bdconf

Page 30: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Macrocosm

Operating systems and platforms

Browsers

#bdconf

Page 31: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Macrocosm

Operating systems and platforms

Browsers

Internet service providers

#bdconf

Page 32: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Macrocosm

Operating systems and platforms

Browsers

Internet service providers

Cellular providers

#bdconf

Page 33: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Macrocosm

Operating systems and platforms

Browsers

Internet service providers

Cellular providers Internet connections and speed

#bdconf

Page 34: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Macrocosm

Operating systems and platforms

Browsers

Internet service providers

Cellular providers Internet connections and speed

Devices

#bdconf

Page 35: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

We are multi-screeners in amulti-platform macrocosm where context drives our device choice

Page 36: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

CBC’s MOBILE REALITYAND JOURNEY

Page 37: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

FACTS & WISHLIST

• Maintenance of several different code bases

• Slow news app

• Device and OS fragmentation

• Every content area wants to build their own app

• News broadcaster: Be able to push new features to apps as soon as possible (without review process)

Page 38: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Maintenance of several different code bases

• Slow news app

• Device and OS fragmentation

• Every content area wants to build their own app

• News broadcaster: Be able to push new features to apps as soon as possible (without review process)

Faster����������� ������������������  load����������� ������������������  time

More����������� ������������������  frequent����������� ������������������  releases

Many����������� ������������������  apps����������� ������������������  with����������� ������������������  

limited����������� ������������������  budget

FACTS & WISHLIST

Page 39: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Foster the idea ofbuild once publish to many

Many����������� ������������������  apps����������� ������������������  with����������� ������������������  limited����������� ������������������  budget

Page 40: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

HOW?

Page 41: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

HTML5 vs. Native(Not again....!)

It depends...

Page 42: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

HTML5 vs. Native

“Comparing an HTML5 application’s performance with a native App is comparing a tailored suit with one bought in a shop”

Chris Heilmann

Page 43: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

HTML5 + NATIVE = HYBRID

Page 44: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

HTML5 + NATIVE = HYBRIDMarriage of web technology and native execution

Page 45: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

HTML5 + NATIVE = HYBRIDMarriage of web technology and native execution

Downloadable app, stored on the device

Page 46: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

HTML5 + NATIVE = HYBRIDMarriage of web technology and native execution

Downloadable app, stored on the device

Runs all or some of its user interface in an embedded browser component

Page 47: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

WEBSITEWITH NATIVE WRAPPER

GOAL

More����������� ������������������  frequent����������� ������������������  releases

Page 48: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

BEFORE THE HYBRID JOURNEY BEGINS

Page 49: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

SET EXPECTATIONS AND RULES

Page 50: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

RULES OF THUMB

NATIVE AS A PROGRESSIVEENHANCEMENT STRATEGY

Page 51: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

1. Perfect Ratio

2. Admit web is not native

3. Be flexible

4. Learn from others

5. Follow native design guidelines

6. Define supported devices

7. Setup performance budgets

8. Web performance

RULES OF THUMB

Page 52: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

WITH NATIVE WRAPPERWEBSITE

GOAL

Page 53: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

FOCUS ON MAKING (MOBILE) WEB FASTWITH NATIVE WRAPPER

GOAL

Faster����������� ������������������  load����������� ������������������  time

Page 54: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

PERFORMANCE ON MOBILE

Page 55: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Battery-driven

PERFORMANCE ON MOBILE

Page 56: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Battery-driven Small CPU/GPU

PERFORMANCE ON MOBILE

Page 57: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Battery-driven Small CPU/GPU

Network connectivity and latency

PERFORMANCE ON MOBILE

Page 58: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Battery-driven Small CPU/GPU

Network connectivity and latency

Data usage

PERFORMANCE ON MOBILE

Page 59: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

REDUCE HTTP REQUESTS

Page 60: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

EACH HTTP REQUEST COSTS AROUND 200MS

Page 61: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Reduce HTTP requests

• Avoid latency issues as much as possible

• Only load what is needed

CONCEPT

Page 62: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

TECHNIQUES

Page 63: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

CONCATENATE AND MINIFY ASSETS

HTTP REQUESTS TECHNIQUES

Page 64: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

MAKE USE OF DATA URI FOR IMAGES

HTTP REQUESTS TECHNIQUES

Page 65: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

USE ASYNCHRONOUS MODULE DEFINITION (AMD)

HTTP REQUESTS TECHNIQUES

Page 66: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

SINGLE PAGE APPRELOAD ONLY PIECES OF PAGE

HTTP REQUESTS TECHNIQUES

Page 67: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

FOCUS ON MAKING (MOBILE) WEB FASTWITH NATIVE WRAPPER

GOAL

Page 68: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

FAST SINGLE PAGE APPWITH NATIVE WRAPPER

GOAL

Page 69: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

HYBRID ARCHITECTURE

In����������� ������������������  Development

Page 70: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Native Layer (Java, Objective C, ...)

Hybrid Layer (communication between native and web)

Web Layer (HTML5, CSS, JS, MVC frameworks, custom libraries)

Backend LayerServer, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)

Page 71: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Native Layer (Java, Objective C, ...)

Hybrid Layer (communication between native and web)

Web Layer (HTML5, CSS, JS, MVC frameworks, custom libraries)

Backend LayerServer, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)

Fo

cus

on

Pe

rfo

rma

nce

Fo

cus o

n P

erfo

rma

nce

Page 72: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Native Layer (Java, Objective C, ...)

Hybrid Layer (communication between native and web)

Web Layer (HTML5, CSS, JS, MVC frameworks, custom libraries)

Backend LayerServer, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)

Fo

cus

on

Pe

rfo

rma

nce

Fo

cus o

n P

erfo

rma

nce

Page 73: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• JSON feeds (content source and configuration)

• Using content delivery network (CDN)

• Edge Side Include & SSI (device, native/web detection)

• PHP (server-side ads implementation)

BACKEND LAYER

Page 74: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Native Layer (Java, Objective C, ...)

Hybrid Layer (communication between native and web)

Web Layer (HTML5, CSS, JS, MVC frameworks, custom libraries)

Backend LayerServer, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)

Fo

cus

on

Pe

rfo

rma

nce

Fo

cus o

n P

erfo

rma

nce

Page 75: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

WEB LAYER

jQuery

can.JS(MVC)

Modernizr (AMD)

CBC libscomtower

Other libs e.g.Detectizr, FTscroll

Data URIs SASS

Page 76: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

conditional����������� ������������������  styling

conditionallibrary����������� ������������������  loading

concatenation����������� ������������������  and����������� ������������������  minification

concatenation����������� ������������������  and����������� ������������������  minification

AMD AND MORE

Page 77: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

data����������� ������������������  uri����������� ������������������  encoded

data����������� ������������������  uri����������� ������������������  encoded

DATA URI IMAGES

Page 78: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Native Layer (Java, Objective C, ...)

Hybrid Layer (communication between native and web)

Web (Frontend) Layer (HTML5, CSS, JS, MVC frameworks, custom libraries)

Backend LayerServer, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)

Fo

cus

on

Pe

rfo

rma

nce

Fo

cus o

n P

erfo

rma

nce

Page 79: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Communication protocol between native to web (bi-directional)

• Inspired by communication + CN Tower = ComTower

• JavaScript sending messages to native app inside iFrame as “the window to the app”

• App executing JavaScript functions inside the webpage

COMTOWER

Page 80: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Startup:HTTP Header set via native app

$(HTTP_CBC_COMTOWER) =TRUE

comtower call

JavaScript callback

1

e.g. native sharing

e.g. app version

Web<iframe/>

2

NativeComTowerDelegate

3

Page 81: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Native Layer (Java, Objective C, ...)

Hybrid Layer (communication between native and web)

Web (Frontend) Layer (HTML5, CSS, JS, MVC frameworks, custom libraries)

Backend LayerServer, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)

Fo

cus

on

Pe

rfo

rma

nce

Fo

cus o

n P

erfo

rma

nce

Page 82: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

WebViewhttp://anyURL

WEBVIEW

Page 83: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

HOW DO WE BUILD?

Page 84: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

BUILD WEB APPImplementation of framework

Common elements (CSS, JS)

Platform specific CSS and JS

Framework

App specific widgets (not shared with other apps)

App specific styles

App

concatenated, minified, compiled

Maven build + SVN externalspulling in files from both modules

Page 85: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

FOCUS ON PERFORMANCE OPTIMIZATION DURING BUILD

Page 86: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Maven and Plugins

AUTOMATED BUILT-IN PERFORMANCE OPTIMIZATION

• Closure Compiler (Google)

• Minify-maven-plugin

• HTMLCompressor for html

• Integrated performance checks

• Confess based on Phantom JS

• compass for data URI

Page 87: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Compiled to point to hybrid URL

BUILD NATIVE APP

Page 88: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

NEWS APPRATIO IOS

Page 89: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

Navigation (Menu and horizontal sub navigation)Pull to Refresh

Push Notifications

Sharing Tools

Send your News

70:30

Offline

FavoritesMore...

WEB NATIVE Lineups

Stories and story swiping

Photo Galleries

Video & AudioBreaking News Ticker

Business Ticker

Weather

Tracking

Ads

IOS

??? ???

Page 90: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

NEWS APPRATIO ANDROID

Page 91: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

100:0 App launcher

WEB NATIVE Lineups

Stories and story swiping

Photo Galleries

Video & AudioBreaking News Ticker

Business Ticker

Weather

Tracking

Ads

ANDROID

More...

Page 92: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

WEB ONLY

Weather

Ads

Lineups

Galleries

COMMON AND NEWS SPECIFIC ELEMENTS

Page 93: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

WEB AND NATIVE

Web����������� ������������������  fed����������� ������������������  by����������� ������������������  

menu����������� ������������������  JSON

Native����������� ������������������  fed����������� ������������������  

by����������� ������������������  same����������� ������������������  

menu����������� ������������������  JSON

NAVIGATION

Page 94: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

CHALLENGES

Page 95: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• New technologies

• New CMS (re-thinking content)

• 3rd party content supported but NOT optimized

• Mobile ads and tracking strategy

• Balance between supporting and optimizing different browsers (Android fragmentation)

• Testing

CHALLENGES

Page 96: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• New technologies

• New CMS (re-thinking content)

• 3rd party content supported but NOT optimized

• Mobile ads and tracking strategy

• Balance between supporting and optimizing different browsers (Android fragmentation)

• Testing

CHALLENGES

It’s����������� ������������������  hard!

Page 97: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

IOS WRAPPER APP Things to watch out for

Page 98: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

WEBKIT CSSbody { /* Disables the default callout shown when you touch and hold a touch target */ -webkit-touch-callout: none;

/* Overrides the highlight color shown when the user taps a link */ -webkit-tap-highlight-color: rgba(0,0,0,0);}

Page 99: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

COMTOWER DROPPING CALLS

Page 100: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

COMTOWER DROPPING CALLSQUEUE

Page 101: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

JAVASCRIPT ENGINE INSIDE IOS WEBVIEW IS SLOWER THAN DEFAULT SAFARI

BUMMER!

Page 102: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

0

1000

2000

3000

4000

5000

6000

7000

8000

IE9/Win 7

Chrome24/Win 7

Firefox 18/Win 7

Opera11.61/Win 7

Safari/iOS 5/iPad 3

Safari/iOS 6/iPhone 4S

Chrome 24/Android 4.2.1/Nexus 4

Silk/KindleFire

IE 8/Win 7

WebView/iOS 6/iPhone 4s

WebView/iOS 5/iPad 3

tim

e (m

s)

Bad

Good

JAVASCRIPT PERFORMANCE ON VARIOUS PLATFORMS

Page 103: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 104: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Performance is especially important for battery-driven, smaller CPU devices

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 105: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Performance is especially important for battery-driven, smaller CPU devices

• Each HTTP request costs around 200ms

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 106: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Performance is especially important for battery-driven, smaller CPU devices

• Each HTTP request costs around 200ms

• Automate performance optimization

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 107: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Performance is especially important for battery-driven, smaller CPU devices

• Each HTTP request costs around 200ms

• Automate performance optimization

• Use AMD for conditional loading based on features and devices

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 108: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Performance is especially important for battery-driven, smaller CPU devices

• Each HTTP request costs around 200ms

• Automate performance optimization

• Use AMD for conditional loading based on features and devices

• Native = tailored suitHTML5 = one bought in a shop

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 109: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Performance is especially important for battery-driven, smaller CPU devices

• Each HTTP request costs around 200ms

• Automate performance optimization

• Use AMD for conditional loading based on features and devices

• Native = tailored suitHTML5 = one bought in a shop

• Hybrid

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 110: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Performance is especially important for battery-driven, smaller CPU devices

• Each HTTP request costs around 200ms

• Automate performance optimization

• Use AMD for conditional loading based on features and devices

• Native = tailored suitHTML5 = one bought in a shop

• Hybrid

• Native components as progressive enhancement strategy

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 111: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Performance is especially important for battery-driven, smaller CPU devices

• Each HTTP request costs around 200ms

• Automate performance optimization

• Use AMD for conditional loading based on features and devices

• Native = tailored suitHTML5 = one bought in a shop

• Hybrid

• Native components as progressive enhancement strategy

• Set expectations and rules when going hybrid

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 112: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

• Performance is especially important for battery-driven, smaller CPU devices

• Each HTTP request costs around 200ms

• Automate performance optimization

• Use AMD for conditional loading based on features and devices

• Native = tailored suitHTML5 = one bought in a shop

• Hybrid

• Native components as progressive enhancement strategy

• Set expectations and rules when going hybrid

• Strict focus on mobile web performance

TAKE AWAYSPERFORMANCE MULTI-PLATFORM

Page 113: Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf

THANK YOUQUESTIONS?http://bit.ly/bdconf-perf-macrocosm

More����������� ������������������  info����������� ������������������  under����������� ������������������  follow-up����������� ������������������  blog����������� ������������������  post����������� ������������������  (including����������� ������������������  slides)