Breaking Development: Performance in Today's Macrocosm

by Luke Wroblewski July 22, 2013

In her presentation at Breaking Development in San Diego CA Barbara Bermes shared how the Canadian Broadcasting Corporation approaches performance in the multi-platform world. Here's my notes from her talk on Embracing Performance in Today's Multi-Platform Macrocosm.

  • If something feels slow it is unpleasant, boring. If it is fast, you feel you are making progress and being successful.
  • Our current Internet is a macrocosm of different platforms, browsers, ISPs, cellular providers, devices, and more.
  • We are multi-screeners in a multi-platform macrocosm. How do we manage performance in this reality?
  • Comparing HTML5 performance to native app performance is like comparing a tailored suit to a store bought one. We need to make each experience as fast possible wherever it is accessed instead of comparing the two.
  • Mobile devices have latency and connectivity issues, data usage plans, battery drain, and small CPU/GPUs. Performance matters more under these circumstances.
  • Reduce http requests: each one costs around 200ms. Avoid latency issues as much as possible. Only load what is needed.
  • To reduce requests: concatenate and minify assets, make use of data URIs for images, use asynchronous module definitions, use single app pages to reduce page downloads.
  • Use conditional loading to add different stylesheets to Android vs. iOS stylesheets for web pages within a native WebView.
  • A hybrid layer can act as a communication layer between native & Web components by sending Javascript to a native Web wrapper.
  • Think of native components as progressive enhancement.
  • Focus on performance optimization during the build step. There's lots of build tools that can to automate performance optimization.
  • the Canadian Broadcast app uses 70% Web code and 30% native code in their hybrid app implementation for iOS.
  • The Javascript performance inside of Web UIviews is much slower than in the native Web browser.
  • New technologies are always coming out and can impact your process.
  • Old CMS systems, and ad tracking systems can cause issues.
  • 3rd party content needs to not only be supported but optimized as well.