77
embedjs dojoconf 2011 Nikolai Onken uxebu Friday, September 16, 11

Embedjs

Embed Size (px)

DESCRIPTION

EmbedJS talk from DojoConf 2011

Citation preview

Page 1: Embedjs

embedjs

dojoconf 2011

Nikolai Onkenuxebu

Friday, September 16, 11

Page 2: Embedjs

@nonken

Friday, September 16, 11

Page 3: Embedjs

Friday, September 16, 11

Page 4: Embedjs

We open the mobile web.

Friday, September 16, 11

Page 5: Embedjs

How you totally should write code

Friday, September 16, 11

Page 6: Embedjs

Lets look at

Friday, September 16, 11

Page 7: Embedjs

Lets look at

1. embedjs

Friday, September 16, 11

Page 8: Embedjs

Lets look at

1. embedjs

2. embedjs features

Friday, September 16, 11

Page 9: Embedjs

embedjs

Friday, September 16, 11

Page 10: Embedjs

History

Friday, September 16, 11

Page 11: Embedjs

Friday, September 16, 11

Page 12: Embedjs

Objective-C

Friday, September 16, 11

Page 13: Embedjs

Objective-C Symbian C

Friday, September 16, 11

Page 14: Embedjs

Objective-C JavaSymbian C

Friday, September 16, 11

Page 15: Embedjs

Objective-C JavaSymbian C

Java

Friday, September 16, 11

Page 16: Embedjs

Objective-C JavaSymbian C

.NETJava

Friday, September 16, 11

Page 17: Embedjs

Objective-C JavaSymbian C

.NETJava ...

Friday, September 16, 11

Page 18: Embedjs

Friday, September 16, 11

Page 19: Embedjs

Friday, September 16, 11

Page 20: Embedjs

Friday, September 16, 11

Page 21: Embedjs

Friday, September 16, 11

Page 22: Embedjs

Friday, September 16, 11

Page 23: Embedjs

Friday, September 16, 11

Page 24: Embedjs

Friday, September 16, 11

Page 25: Embedjs

Friday, September 16, 11

Page 26: Embedjs

Friday, September 16, 11

Page 27: Embedjs

http://www.flickr.com/photos/tacoekkel/25538919/

Friday, September 16, 11

Page 28: Embedjs

http://www.flickr.com/photos/hugo90/3916794427/

Friday, September 16, 11

Page 29: Embedjs

Friday, September 16, 11

Page 30: Embedjs

Friday, September 16, 11

Page 31: Embedjs

Friday, September 16, 11

Page 32: Embedjs

Friday, September 16, 11

Page 33: Embedjs

Friday, September 16, 11

Page 34: Embedjs

At RuntimeAt Build Time

Friday, September 16, 11

Page 35: Embedjs

Shrink and customize your API

Friday, September 16, 11

Page 36: Embedjs

25kB

Shrink and customize your API

Friday, September 16, 11

Page 37: Embedjs

25kB

Shrink and customize your API

Friday, September 16, 11

Page 38: Embedjs

25kB 8kB

Shrink and customize your API

Friday, September 16, 11

Page 39: Embedjs

vs.

Simple queries > simple library functionOnly ".class" and "#id" queries

Friday, September 16, 11

Page 40: Embedjs

vs.

Simple queries > simple library functionOnly ".class" and "#id" queries

Full fledged queries > Full blown library function

Friday, September 16, 11

Page 41: Embedjs

vs.

Simple queries > simple library functionOnly ".class" and "#id" queries

Full fledged queries > Full blown library function

13 LOC

~200 LOC

Friday, September 16, 11

Page 42: Embedjs

Friday, September 16, 11

Page 43: Embedjs

dojo-blackberry.js

Friday, September 16, 11

Page 44: Embedjs

dojo-blackberry.js

dojo-blackberry46.js

Friday, September 16, 11

Page 45: Embedjs

dojo-blackberry.js

dojo-blackberry46.js

dojo-nokia-wrt.js

Friday, September 16, 11

Page 46: Embedjs

dojo-blackberry.js

dojo-blackberry46.js

dojo-nokia-wrt.js

dojo-opera.js

Friday, September 16, 11

Page 47: Embedjs

dojo-blackberry.js

dojo-blackberry46.js

dojo-nokia-wrt.js

dojo-opera.js

dojo-webkit-mobile.js

Friday, September 16, 11

Page 48: Embedjs

dojo-blackberry.js

dojo-blackberry46.js

dojo-nokia-wrt.js

dojo-opera.js

dojo-webkit-mobile.js

dojo-windows-mobile.js

Friday, September 16, 11

Page 49: Embedjs

• Know the platform you are targeting

• Are developing apps using PhoneGap

Perfect for when you

Friday, September 16, 11

Page 50: Embedjs

embedjs features

Friday, September 16, 11

Page 51: Embedjs

• We need: AMD compatible modules

• We need: has.js (Peters talk)

• We need: require ‘feature’ plugin

Embedjs builds vs. feature detection -

mwuahahaha

Friday, September 16, 11

Page 52: Embedjs

Meet embedjs ‘features’building cross device apps

Friday, September 16, 11

Page 53: Embedjs

Work with features and consistent APIs

Don’t branch your code

Friday, September 16, 11

Page 54: Embedjs

Not cool

Friday, September 16, 11

Page 55: Embedjs

Not cool

Friday, September 16, 11

Page 56: Embedjs

Works:

Friday, September 16, 11

Page 57: Embedjs

Works:

Friday, September 16, 11

Page 58: Embedjs

Works:

Friday, September 16, 11

Page 59: Embedjs

Works:

Friday, September 16, 11

Page 60: Embedjs

vs

Friday, September 16, 11

Page 61: Embedjs

Friday, September 16, 11

Page 62: Embedjs

Implementing features is simple:

Friday, September 16, 11

Page 63: Embedjs

Defining features is super simple:

Friday, September 16, 11

Page 64: Embedjs

Requiring features is even simpler:

Friday, September 16, 11

Page 65: Embedjs

• Ship everything and do feature tests at runtime

• Make targeted builds using specific implementations

Two ways you can run a build

Friday, September 16, 11

Page 66: Embedjs

Runtime detection:

./buildj.sh name=../../src/js/main out=../../debug/js/main.js baseUrl=../../src/js/ paths.implementations=implementations/dynamic paths.feature=lib/feature

Friday, September 16, 11

Page 67: Embedjs

Targeted build:

./buildj.sh name=../../src/js/main out=../../debug/js/main.js baseUrl=../../src/js/ paths.implementations=implementations/touch paths.feature=lib/feature

Friday, September 16, 11

Page 68: Embedjs

Lets see this in the browser

Friday, September 16, 11

Page 69: Embedjs

• EmbedJS in publishing

Does it work in real life?

Friday, September 16, 11

Page 70: Embedjs

• http://embedjs.org

• http://github.com/uxebu/embedjs (AMD branch)

Where to get it

Friday, September 16, 11

Page 71: Embedjs

• Lots of highly optimized CommonJS compatible modules

• Mobile optimized features (components)

• Development patterns / paradigms for cross device development

The future of embedjs

Friday, September 16, 11

Page 72: Embedjs

Friday, September 16, 11

Page 73: Embedjs

Friday, September 16, 11

Page 74: Embedjs

Friday, September 16, 11

Page 75: Embedjs

Dojo.beer tonight

Friday, September 16, 11

Page 76: Embedjs

Questions?

Friday, September 16, 11

Page 77: Embedjs

@nonken

http://uxebu.com - @uxebu

Friday, September 16, 11