performance optimization for sencha touch

35

Upload: sencha

Post on 12-Jan-2015

16.011 views

Category:

Technology


1 download

DESCRIPTION

Mobile devices have very limited processing power compared to modern desktops. It's essential to keep performance optimization in mind when developing Touch applications. Here, we'll discuss how to keep your mobile web app fast and lightweight. We'll learn about such techniques as keeping your DOM slim, managing troublesome CSS3 properties, and other ways to keep your app sleek and responsive.

TRANSCRIPT

Page 1: Performance Optimization for Sencha Touch
Page 2: Performance Optimization for Sencha Touch

Performance Optimization for Sencha Touch

by Tommy Maintz@tommymaintz

Page 3: Performance Optimization for Sencha Touch

ProblemsDOM

EventsDrawing

AnimationsCode execution

Page 4: Performance Optimization for Sencha Touch

Device specific issuesLimited hardware acceleration

Translate3d

Page 5: Performance Optimization for Sencha Touch

DOM: Memory(Size matters)

Page 6: Performance Optimization for Sencha Touch

One small advantagePhones have a limited amount of screen estate

Page 7: Performance Optimization for Sencha Touch

SolutionDestroy components that are not visible on the screen anymore

Page 8: Performance Optimization for Sencha Touch

Cards

Page 9: Performance Optimization for Sencha Touch

Modal Components

Page 10: Performance Optimization for Sencha Touch

Events: Memory

Page 11: Performance Optimization for Sencha Touch

SolutionUse our Event ManagerAutomatic removal of listenersDelegation for Touch eventsUse event delegation when possible

Page 12: Performance Optimization for Sencha Touch

Elements

Page 13: Performance Optimization for Sencha Touch

Components

Page 14: Performance Optimization for Sencha Touch

Drawing: GPU

Page 15: Performance Optimization for Sencha Touch

No small advantageDevices will get faster

Better hardware acceleration

Page 16: Performance Optimization for Sencha Touch

SolutionKeep your DOM structures “light”

Page 17: Performance Optimization for Sencha Touch

Light?Limited amount of advanced CSS3opacity & rgbaborder-radiusgradientstext-shadow & box-shadowsLimit the amount and depth of DOM elements

Page 18: Performance Optimization for Sencha Touch

Don’t go too deep Prevent unnecessary layouts

Page 19: Performance Optimization for Sencha Touch
Page 20: Performance Optimization for Sencha Touch
Page 21: Performance Optimization for Sencha Touch

Animations: GPU

Page 22: Performance Optimization for Sencha Touch

Good enough

Getting There

Little behind

iPhone 3GS+ Most Android 2.2 devices

RIM

Page 23: Performance Optimization for Sencha Touch

SolutionOnly animate “light” DOM structures

Page 24: Performance Optimization for Sencha Touch

Slide to List

Page 25: Performance Optimization for Sencha Touch
Page 26: Performance Optimization for Sencha Touch

Code Execution: Compiler

Page 27: Performance Optimization for Sencha Touch

Not the usual suspectsCPU’s are actually fast enoughJavascript engines are powerful

Page 28: Performance Optimization for Sencha Touch

So what is the problem?

Page 29: Performance Optimization for Sencha Touch

JIT CompilerCompilation time is related to size of file that the method

exists in

Page 30: Performance Optimization for Sencha Touch

Extensive comments and documentation are

Complexity not relevant

Page 31: Performance Optimization for Sencha Touch

Write complicated undocumented code

Solution

Page 32: Performance Optimization for Sencha Touch

Actual solutionTest performance using minified and compressed code

Page 33: Performance Optimization for Sencha Touch

JSBuilder 3Cross-OS packaging, concatenation & minification

Page 34: Performance Optimization for Sencha Touch

Example .jsb3

Page 35: Performance Optimization for Sencha Touch

Questions?