210 likes | 324 Views
Mobile Consumer Experience: designing for fast response time. OSCON 2013 David Elfi Intel. Introduction. Working for AppUp since its conception More than 3 years of experience on application store businesses for different devices and areas (Consumers, Enterprise, Developers). Motivation.
E N D
Mobile Consumer Experience: designing for fast response time OSCON 2013 David Elfi Intel
Introduction • Working for AppUp since its conception • More than 3 years of experience on application store businesses for different devices and areas (Consumers, Enterprise, Developers)
Motivation • Mobile applications present several challenges related to performance • Scope: Data driven applications • This talk is based on the experience collected in the development of Tizen Common Store (v0.5)
Challenges - UX “3 seconds is the limit. 57% of consumers will abandon after 3 seconds of delay”1 “Bad designed websites and slow loading times are causing ‘web stress’ for internet users”2 1. http://www.strangeloopnetworks.com/resources/infographics/web-stress/poster/ 2. http://www.thestrategyweb.com/neurological-study-bad-websites-causing-web-stress
Challenges - Mobile • Mobile Network • Unreliable, High Variability in latency and bandwidth • Switch 3g/Wifi Source: http://blog.davidsingleton.org/mobiletcp/ (2011)
Challenges - Mobile • Device fragmentation • Deployment: no-control over Updates
Your current thoughts: I know all of these, so, what is your proposal?
Hybrid application: • Beta testing • Make use of platform capabilities: HTML5 • Out of the box caching capabilities • Deals with different devices
Prepare Data: Decouple Backend logic from presentation into two layers
Presentation Layer Services requests 3rd party services Services requests Backend logic Load Balancer …… Caching & Syndication Cache and DB syndication
Comparing Presentation Layer • Pros • Adapt the data to be cached according to UX • Services mash ups just for presentation • Horizontal scalability • Specialized teams (Backend vs Presentation + FrontEnd) • Cons • More infrastructure to maintain • More pieces to join for a single application
Be cache-ful: • Data as close to the device helps response time • Minimizes data transfer
Date Design - Key Task • Split data flows into general and user specific • Adapt General Data with user specific at Presentation layer
Application details • Skeleton cached • Asynch call for specific info
Identify Caching Points • Device Network: • Carrier Caching • Proxies CDN with WW Coverage User Caching Presentation Layer Cache by period of time User Caching Caching & Syndication User Caching Cache and DB syndication Caching Point General Data User Specific Data
Results • Be cache-ful using Presentation Layer • Immediate response time (warm start) • Cold start: CDN publishing minimizes round trip • Reduce data transfer (almost 50%) • Hybrid application • Continuous development • Minimize Testing resources (AB Testing)
Network Optimization • CDN caching static and “dynamic” content • Minimum number of HTTP requests • Optimize CSS/JS files • Avoid HTTPS for public data (cost/configuration) • Sign resources in case you want to validate source • Zip data transfers (HTTP compression + packages to be installed) • HTTP Pipelining
Remember! Always check performance on the client
Thanks! david.r.elfi@intel.com @elfoTech