embedjs
dojoconf 2011
Nikolai Onkenuxebu
Friday, September 16, 11
@nonken
Friday, September 16, 11
Friday, September 16, 11
We open the mobile web.
Friday, September 16, 11
How you totally should write code
Friday, September 16, 11
Lets look at
Friday, September 16, 11
Lets look at
1. embedjs
Friday, September 16, 11
Lets look at
1. embedjs
2. embedjs features
Friday, September 16, 11
embedjs
Friday, September 16, 11
History
Friday, September 16, 11
Friday, September 16, 11
Objective-C
Friday, September 16, 11
Objective-C Symbian C
Friday, September 16, 11
Objective-C JavaSymbian C
Friday, September 16, 11
Objective-C JavaSymbian C
Java
Friday, September 16, 11
Objective-C JavaSymbian C
.NETJava
Friday, September 16, 11
Objective-C JavaSymbian C
.NETJava ...
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
http://www.flickr.com/photos/tacoekkel/25538919/
Friday, September 16, 11
http://www.flickr.com/photos/hugo90/3916794427/
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
At RuntimeAt Build Time
Friday, September 16, 11
Shrink and customize your API
Friday, September 16, 11
25kB
Shrink and customize your API
Friday, September 16, 11
25kB
Shrink and customize your API
Friday, September 16, 11
25kB 8kB
Shrink and customize your API
Friday, September 16, 11
vs.
Simple queries > simple library functionOnly ".class" and "#id" queries
Friday, September 16, 11
vs.
Simple queries > simple library functionOnly ".class" and "#id" queries
Full fledged queries > Full blown library function
Friday, September 16, 11
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
Friday, September 16, 11
dojo-blackberry.js
Friday, September 16, 11
dojo-blackberry.js
dojo-blackberry46.js
Friday, September 16, 11
dojo-blackberry.js
dojo-blackberry46.js
dojo-nokia-wrt.js
Friday, September 16, 11
dojo-blackberry.js
dojo-blackberry46.js
dojo-nokia-wrt.js
dojo-opera.js
Friday, September 16, 11
dojo-blackberry.js
dojo-blackberry46.js
dojo-nokia-wrt.js
dojo-opera.js
dojo-webkit-mobile.js
Friday, September 16, 11
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
• Know the platform you are targeting
• Are developing apps using PhoneGap
Perfect for when you
Friday, September 16, 11
embedjs features
Friday, September 16, 11
• 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
Meet embedjs ‘features’building cross device apps
Friday, September 16, 11
Work with features and consistent APIs
Don’t branch your code
Friday, September 16, 11
Not cool
Friday, September 16, 11
Not cool
Friday, September 16, 11
Works:
Friday, September 16, 11
Works:
Friday, September 16, 11
Works:
Friday, September 16, 11
Works:
Friday, September 16, 11
vs
Friday, September 16, 11
Friday, September 16, 11
Implementing features is simple:
Friday, September 16, 11
Defining features is super simple:
Friday, September 16, 11
Requiring features is even simpler:
Friday, September 16, 11
• 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
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
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
Lets see this in the browser
Friday, September 16, 11
• EmbedJS in publishing
Does it work in real life?
Friday, September 16, 11
• http://embedjs.org
• http://github.com/uxebu/embedjs (AMD branch)
Where to get it
Friday, September 16, 11
• 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
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Dojo.beer tonight
Friday, September 16, 11
Questions?
Friday, September 16, 11