JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

18
Mobile web technologies - an overview Martin Naumann

description

http://guide13.jazoon.com/#/submissions/121

Transcript of JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

Page 1: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

Mobile web technologies- an overviewMartin Naumann

Page 2: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

Hi there!

|

Page 3: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

There’s only one web

|

Page 4: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

Let’s talk about performance

Page 5: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

Repeat after me:

The DOM isn’t slow

|

DOM Performance

Page 6: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

DOM Performance

•Beware of layout thrashing!

•Read first, Write second

•Batch up writes

•Test test test!

Page 7: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

Reflow, Paint & the browser

Reflow

•If dimensions or positions changed

•reconstruction of the render tree

Examples:

elem.style.display = “none”;

elem.addChild(childElem);

Page 8: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

Reflow, Paint & the browser

Repaint

•If there was a reflow or appearance changed

•repainting the screen content, tile- and layer-based*

Examples:

elem.style.backgroundColor = “red”;

elem.style.visibility = “hidden”;

Page 9: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

3 nice ’n’ hackety hacks!

•Use canvas (> 256px width or height) for complicated graphic elements

•Use translateZ(0) to bring elements on their own layer

•Use CSS 3D Transitions for HW acceleration

•Using FastDOM (https://github.com/wilsonpage/fastdom)

Page 10: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

Let’s go hybrid!

|

And now...

Page 11: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

What’s hybrid?

Page 12: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

What technology can I use?

PhoneGap

SenchaTitanium

Calatrava

Trigger.ioRhoMobileM Project

MoSync

AppFramework Steroids.js

Page 13: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

What technology can I use?

PhoneGap

SenchaTitanium

Calatrava

Trigger.ioRhoMobileM Project

MoSync

AppFramework Steroids.js

Page 14: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

Woah! Wait - what?

Page 15: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

The rest of the stack

•Javascript MV* Libraries / Frameworks○ Backbone○ Ember○ Knockout○ Angular

•UI Frameworks○ Lungo○ TopCoat○ jQTouch○ jQuery mobile

Page 16: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

Find a combo that works together

● Our toolset:○ Phonegap: Fully agnostic container○ Angular: Fully agnostic MV*-Framework○ Lungo: Pretty agnostic UI Framework

● Other potential candidates: ○ Knockout + Phonegap + Lungo○ Angular 1.2 + Phonegap + TopCoat

Page 17: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

|

Case study: The C-App

● Internal app to do the various admin tasks● Users are on iOS, Android, Blackberry and the web● Prototype rapidly, iterate quickly, roll out often

Page 18: JAZOON'13 - Martin Naumann - Mobile web technologies - an overview

Thanks for the attention!

Follow @olivertupman

[email protected] | @avgp | engine.centralway.com

www.centralway.com