Embracing Performance in Today's Multi-Platform Macrocosm

#bdconf
Embracing performance in today’s
multi-platform macrocosm
#bdconf
BARBARA BERMES
Senior Architect (Moblie Web)
Digital Operations
Canadian Broadcasting Corporation (CBC)
bbinto
#bdconf
More
 info
 under
 follow-up
 blog
 post
 (URL
 at
 end
 of
 slides)
Before we get started...
#bdconf
CANADA!
Canadian Broadcasting Corporation
#bdconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
#bdconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
Kind of like the NPR
#bdconf
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
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
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
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
11 iOS, 3 Android, 5 Blackberry, 3 Windows apps
#bdconf
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 websites
11 iOS, 3 Android, 5 Blackberry, 3 Windows apps
#bdconf
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 websites
11 iOS, 3 Android, 5 Blackberry, 3 Windows apps
#bdconf
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 websites
11 iOS, 3 Android, 5 Blackberry, 3 Windows apps
#bdconf
#bdconf
Embracing performance in today’s
multi-platform macrocosm
#bdconf
PERFORMANCE
WHY THE NEED FOR SPEED?
#bdconf
#bdconf
Overestimating wait times for rides
Hidden lineups
#bdconf
SLOW
Perception of Speed
FAST
#bdconf
SLOW
Perception of Speed
Unpleasant
FAST
#bdconf
SLOW
Perception of Speed
Unpleasant
Unknown
FAST
#bdconf
SLOW
Perception of Speed
Unpleasant
Unknown
Boring
FAST
#bdconf
SLOW
Perception of Speed
Unpleasant
Unknown
Boring
Task is successful
FAST
#bdconf
SLOW
Perception of Speed
Unpleasant
Unknown
Boring
Task is successful
Responsive System
FAST
#bdconf
SLOW
Perception of Speed
Unpleasant
Unknown
Boring
Task is successful
Responsive System
FAST
Informed about progress
#bdconf
“Ultimately performance is about respect”
BRAD FROST
#bdconf
Embracing performance in today’s
multi-platform macrocosm
#bdconf
Macrocosm
#bdconf
#bdconf
Macrocosm
Operating systems and platforms
#bdconf
#bdconf
Macrocosm
Operating systems and platforms
Browsers
#bdconf
#bdconf
Macrocosm
Operating systems and platforms
Browsers
Internet service providers
#bdconf
#bdconf
Macrocosm
Operating systems and platforms
Browsers
Internet service providers
Cellular providers
#bdconf
#bdconf
Macrocosm
Operating systems and platforms
Browsers
Internet service providers
Cellular providers Internet connections
and speed
#bdconf
#bdconf
Macrocosm
Operating systems and platforms
Browsers
Internet service providers
Cellular providers Internet connections
and speed
Devices
#bdconf
#bdconf
We are multi-screeners in a
multi-platform macrocosm where
context drives our device choice
#bdconf
CBC’s MOBILE REALITY
AND JOURNEY
#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)
#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
#bdconf
Foster the idea of
build once publish to many
Many
 apps
 with
 limited
 budget
#bdconf
HOW
?
#bdconf
HTML5 vs. Native(Not again....!)
It depends...
#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
#bdconf
HTML5 + NATIVE = HYBRID
#bdconf
HTML5 + NATIVE = HYBRID
Marriage of web technology
and native execution
#bdconf
HTML5 + NATIVE = HYBRID
Marriage of web technology
and native execution
Downloadable app, stored on
the device
#bdconf
HTML5 + NATIVE = HYBRID
Marriage 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
#bdconf
WEBSITE
WITH NATIVE WRAPPER
GOAL
More
 frequent
 releases
#bdconf
BEFORE THE HYBRID JOURNEY BEGINS
#bdconf
SET EXPECTATIONS AND RULES
#bdconf
RULES OF THUMB
NATIVE AS A PROGRESSIVE
ENHANCEMENT STRATEGY
#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
#bdconf
WITH NATIVE WRAPPER
WEBSITE
GOAL
#bdconf
FOCUS ON MAKING (MOBILE) WEB FAST
WITH NATIVE WRAPPER
GOAL
Faster
 load
 time
#bdconf
PERFORMANCE ON MOBILE
#bdconf
Battery-driven
PERFORMANCE ON MOBILE
#bdconf
Battery-driven Small CPU/GPU
PERFORMANCE ON MOBILE
#bdconf
Battery-driven Small CPU/GPU
Network connectivity
and latency
PERFORMANCE ON MOBILE
#bdconf
Battery-driven Small CPU/GPU
Network connectivity
and latency
Data usage
PERFORMANCE ON MOBILE
#bdconf
REDUCE
HTTP REQUESTS
#bdconf
EACH HTTP REQUEST
COSTS AROUND 200MS
#bdconf
• Reduce HTTP requests
• Avoid latency issues as much as possible
• Only load what is needed
CONCEPT
#bdconf
TECHNIQUES
#bdconf
CONCATENATE AND MINIFY ASSETS
HTTP REQUESTS
TECHNIQUES
#bdconf
MAKE USE OF DATA URI FOR IMAGES
HTTP REQUESTS
TECHNIQUES
#bdconf
USE ASYNCHRONOUS MODULE DEFINITION
(AMD)
HTTP REQUESTS
TECHNIQUES
#bdconf
SINGLE PAGE APP
RELOAD ONLY PIECES OF PAGE
HTTP REQUESTS
TECHNIQUES
#bdconf
FOCUS ON MAKING (MOBILE) WEB FAST
WITH NATIVE WRAPPER
GOAL
#bdconf
FAST SINGLE PAGE APP
WITH NATIVE WRAPPER
GOAL
#bdconf
HYBRID
ARCHITECTURE
In
 Development
#bdconf
Native Layer (Java, Objective C, ...)
Hybrid Layer (communication between native and web)
Web Layer
(HTML5, CSS, JS, MVC frameworks, custom libraries)
Backend Layer
Server, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)
#bdconf
Native Layer (Java, Objective C, ...)
Hybrid Layer (communication between native and web)
Web Layer
(HTML5, CSS, JS, MVC frameworks, custom libraries)
Backend Layer
Server, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)
FocusonPerformance
FocusonPerformance
#bdconf
Native Layer (Java, Objective C, ...)
Hybrid Layer (communication between native and web)
Web Layer
(HTML5, CSS, JS, MVC frameworks, custom libraries)
Backend Layer
Server, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)
FocusonPerformance
FocusonPerformance
#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
#bdconf
Native Layer (Java, Objective C, ...)
Hybrid Layer (communication between native and web)
Web Layer
(HTML5, CSS, JS, MVC frameworks, custom libraries)
Backend Layer
Server, CDN (ESI, SSI, Java, Apache, CGI, Perl, PHP)
FocusonPerformance
FocusonPerformance
#bdconf
WEB LAYER
jQuery
can.JS
(MVC)
Modernizr
(AMD)
CBC libs
comtower
Other libs e.g.
Detectizr, FTscroll
Data URIs SASS
#bdconf
conditional
 
styling
conditional
library
 loading
concatenation
 and
 minification
concatenation
 and
 
minification
AMD AND MORE
#bdconf
data
 uri
 encoded
data
 uri
1 of 113

More Related Content

Recently uploaded(20)

Green Leaf Consulting: Capabilities DeckGreen Leaf Consulting: Capabilities Deck
Green Leaf Consulting: Capabilities Deck
GreenLeafConsulting147 views
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation22 views

Featured(20)

How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC3.7K views
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy82K views
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
Alireza Esmikhani30.2K views
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Project for Public Spaces & National Center for Biking and Walking6.9K views
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago25K views
9 Tips for a Work-free Vacation9 Tips for a Work-free Vacation
9 Tips for a Work-free Vacation
Weekdone.com7.1K views
I Rock Therefore I Am. 20 Legendary Quotes from PrinceI Rock Therefore I Am. 20 Legendary Quotes from Prince
I Rock Therefore I Am. 20 Legendary Quotes from Prince
Empowered Presentations142.8K views
How to Map Your FutureHow to Map Your Future
How to Map Your Future
SlideShop.com275.1K views

Embracing Performance in Today's Multi-Platform Macrocosm