Mobile JavaScript Development - QCon 2010

126
Mobile JavaScript Development or HTML5 apps Nikolai Onken - uxebu Consulting Ltd. & Co. KG Monday, March 15, 2010

description

In this talk I am giving an overview of the current mobile landscape in regards to mobile JavaScript development.

Transcript of Mobile JavaScript Development - QCon 2010

Page 1: Mobile JavaScript Development - QCon 2010

Mobile JavaScript Development

or HTML5 appsNikolai Onken - uxebu Consulting Ltd. & Co. KG

Monday, March 15, 2010

Page 2: Mobile JavaScript Development - QCon 2010

Hi all@nonken | @uxebu

Monday, March 15, 2010

Page 3: Mobile JavaScript Development - QCon 2010

We open the mobile web

Monday, March 15, 2010

Page 4: Mobile JavaScript Development - QCon 2010

Agenda

Monday, March 15, 2010

Page 5: Mobile JavaScript Development - QCon 2010

Agenda

• Timetravel

Monday, March 15, 2010

Page 6: Mobile JavaScript Development - QCon 2010

Agenda

• Timetravel

• Why mobile JavaScript development?

Monday, March 15, 2010

Page 7: Mobile JavaScript Development - QCon 2010

Agenda

• Timetravel

• Why mobile JavaScript development?

• Tales of a mobile dev (EventNinja)

Monday, March 15, 2010

Page 8: Mobile JavaScript Development - QCon 2010

Agenda

• Timetravel

• Why mobile JavaScript development?

• Tales of a mobile dev (EventNinja)

• Outlook

Monday, March 15, 2010

Page 9: Mobile JavaScript Development - QCon 2010

Experiment

An ECG written in JavaScript/HTML/CSS

Monday, March 15, 2010

Page 11: Mobile JavaScript Development - QCon 2010

Agenda

• Timetravel

• Why mobile JavaScript development?

• Tales of a mobile dev (EventNinja)

• Outlook

Monday, March 15, 2010

Page 12: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 13: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 14: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 15: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 16: Mobile JavaScript Development - QCon 2010

2010

Monday, March 15, 2010

Page 17: Mobile JavaScript Development - QCon 2010

• Eric Schmidt (CEO Google Inc.): “Mobile first”

2010

Monday, March 15, 2010

Page 18: Mobile JavaScript Development - QCon 2010

• Eric Schmidt (CEO Google Inc.): “Mobile first”

• Steve Jobs (CEO Apple Inc.): “Apple is a mobile devices company.”

2010

Monday, March 15, 2010

Page 19: Mobile JavaScript Development - QCon 2010

Mobile browsing?

KhWWW

$

Monday, March 15, 2010

Page 20: Mobile JavaScript Development - QCon 2010

Mobile browsing?

Kh WWW

$

Monday, March 15, 2010

Page 21: Mobile JavaScript Development - QCon 2010

The past

K

h

KKKKKKKKO

Monday, March 15, 2010

Page 22: Mobile JavaScript Development - QCon 2010

The future

K

hhhhhhhhhO

Monday, March 15, 2010

Page 23: Mobile JavaScript Development - QCon 2010

Lets look at some very cool stuff

http://bit.ly/bqvQIG

Monday, March 15, 2010

Page 25: Mobile JavaScript Development - QCon 2010

Agenda

• Timetravel

• Why mobile JavaScript development?

• Tales of a mobile developmentev (EventNinja)

• Outlook

Monday, March 15, 2010

Page 26: Mobile JavaScript Development - QCon 2010

Mobile market

http://bit.ly/bPDn5b

5%2%3%3%

4%

4%

5%

5%

10%

20%

38%

Nokia Samsung LG Sony Ericsson Motorola ZTEKyocera RIM Sharp Apple Other

Monday, March 15, 2010

Page 27: Mobile JavaScript Development - QCon 2010

Smartphone market

http://bit.ly/bPDn5b

20%

5%

15%

20%

40%

Nokia RIM Apple HTC Others

Monday, March 15, 2010

Page 28: Mobile JavaScript Development - QCon 2010

d == 2%

Is this our (developers) world?

Monday, March 15, 2010

Page 29: Mobile JavaScript Development - QCon 2010

Seriously?

Are we happy with a 2% market share?

Monday, March 15, 2010

Page 30: Mobile JavaScript Development - QCon 2010

ƒ a==

How open platforms really are

Monday, March 15, 2010

Page 31: Mobile JavaScript Development - QCon 2010

Reality check:

http://bit.ly/dgmJvN

“you're prohibited from distributing it (the app) through competing app stores like Cydia or Rock Your Phone”

Monday, March 15, 2010

Page 33: Mobile JavaScript Development - QCon 2010

Some things you actually don’t have to share, weird huh?

Monday, March 15, 2010

Page 34: Mobile JavaScript Development - QCon 2010

Showtime - a strong case for JavaScript

http://yourappshop.com - NSFW

App store without Apple

Monday, March 15, 2010

Page 35: Mobile JavaScript Development - QCon 2010

qWhat companies like Apple don’t like

wa

Monday, March 15, 2010

Page 36: Mobile JavaScript Development - QCon 2010

qWhat companies like Apple don’t like

wa

Monday, March 15, 2010

Page 37: Mobile JavaScript Development - QCon 2010

qWhat companies like Apple don’t like

wa

Monday, March 15, 2010

Page 38: Mobile JavaScript Development - QCon 2010

What companies like Apple don’t like

Monday, March 15, 2010

Page 39: Mobile JavaScript Development - QCon 2010

wWhat companies like Apple don’t like

Monday, March 15, 2010

Page 40: Mobile JavaScript Development - QCon 2010

What companies like Apple don’t like

Monday, March 15, 2010

Page 41: Mobile JavaScript Development - QCon 2010

Your Appshop facts

Monday, March 15, 2010

Page 42: Mobile JavaScript Development - QCon 2010

Your Appshop facts

• 100% HTML5

Monday, March 15, 2010

Page 43: Mobile JavaScript Development - QCon 2010

Your Appshop facts

• 100% HTML5

• Apps work offline

Monday, March 15, 2010

Page 44: Mobile JavaScript Development - QCon 2010

Your Appshop facts

• 100% HTML5

• Apps work offline

• 12.000.000 downloads since december 2009

Monday, March 15, 2010

Page 45: Mobile JavaScript Development - QCon 2010

Your Appshop facts

• 100% HTML5

• Apps work offline

• 12.000.000 downloads since december 2009

• Payment gateway

Monday, March 15, 2010

Page 46: Mobile JavaScript Development - QCon 2010

Your Appshop facts

• 100% HTML5

• Apps work offline

• 12.000.000 downloads since december 2009

• Payment gateway

• It feels native

Monday, March 15, 2010

Page 47: Mobile JavaScript Development - QCon 2010

Device APIs

What else is happening in the mobile world?

Monday, March 15, 2010

Page 48: Mobile JavaScript Development - QCon 2010

mCamera APIs (AR anyone?)

Monday, March 15, 2010

Page 49: Mobile JavaScript Development - QCon 2010

SCalendar APIs

Monday, March 15, 2010

Page 50: Mobile JavaScript Development - QCon 2010

vAccess to local data

Monday, March 15, 2010

Page 51: Mobile JavaScript Development - QCon 2010

Payment integration

Monday, March 15, 2010

Page 52: Mobile JavaScript Development - QCon 2010

KPayment integration

Monday, March 15, 2010

Page 53: Mobile JavaScript Development - QCon 2010

FMore device APIs

q0

Monday, March 15, 2010

Page 54: Mobile JavaScript Development - QCon 2010

It’s all in the works

Monday, March 15, 2010

Page 55: Mobile JavaScript Development - QCon 2010

It’s all in the works

• JIL - http://jil.orgVodafone, Verizon Wireless, China Mobile and Softbank Mobile (1.1 billion customers)

Monday, March 15, 2010

Page 56: Mobile JavaScript Development - QCon 2010

It’s all in the works

• JIL - http://jil.orgVodafone, Verizon Wireless, China Mobile and Softbank Mobile (1.1 billion customers)

• BONDI - http://bondi.omtp.org

Monday, March 15, 2010

Page 57: Mobile JavaScript Development - QCon 2010

It’s all in the works

• JIL - http://jil.orgVodafone, Verizon Wireless, China Mobile and Softbank Mobile (1.1 billion customers)

• BONDI - http://bondi.omtp.org

• W3C (Device APIs) - http://bit.ly/bdm4wv

Monday, March 15, 2010

Page 59: Mobile JavaScript Development - QCon 2010

• Timetravel

• Why mobile JavaScript development?

• Tales of a mobile dev (EventNinja)

• Outlook

Agenda

Monday, March 15, 2010

Page 60: Mobile JavaScript Development - QCon 2010

EventNinja

Tales of a mobile dev

Monday, March 15, 2010

Page 61: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 62: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 63: Mobile JavaScript Development - QCon 2010

http://www.eventninja.net

Monday, March 15, 2010

Page 64: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 65: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 66: Mobile JavaScript Development - QCon 2010

Mobile prototyping

Monday, March 15, 2010

Page 67: Mobile JavaScript Development - QCon 2010

The cloud

Monday, March 15, 2010

Page 68: Mobile JavaScript Development - QCon 2010

Google Calendar

Monday, March 15, 2010

Page 69: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 70: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 71: Mobile JavaScript Development - QCon 2010

The architecture of EventNinja

Monday, March 15, 2010

Page 72: Mobile JavaScript Development - QCon 2010

• PhoneGap (http://phonegap.com)

• W3C Widgets (Opera)

• (Others) Palm

Runtimes used

Monday, March 15, 2010

Page 73: Mobile JavaScript Development - QCon 2010

Appstore coverage

Monday, March 15, 2010

Page 74: Mobile JavaScript Development - QCon 2010

Dojo

Monday, March 15, 2010

Page 75: Mobile JavaScript Development - QCon 2010

Performance

Monday, March 15, 2010

Page 76: Mobile JavaScript Development - QCon 2010

Why performance?

• Datavolume (Someone has to pay for it)

• Like or Dislike - mobile apps get thrown away very quickly

What we do has direct Impact!

Monday, March 15, 2010

Page 77: Mobile JavaScript Development - QCon 2010

Dojo’s toolchain

Monday, March 15, 2010

Page 78: Mobile JavaScript Development - QCon 2010

Dojos Buildsystem

Monday, March 15, 2010

Page 79: Mobile JavaScript Development - QCon 2010

• Minify and shrink JavaScript

• Build into single or several files

• Build and concatenate CSS

• Optimize images

Monday, March 15, 2010

Page 80: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 81: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 82: Mobile JavaScript Development - QCon 2010

Other Dojo goodness

Monday, March 15, 2010

Page 83: Mobile JavaScript Development - QCon 2010

• Class inheritance - dojo.declare

Other Dojo goodness

Monday, March 15, 2010

Page 84: Mobile JavaScript Development - QCon 2010

• Class inheritance - dojo.declare

• Dojos event system - dojo.connect

Other Dojo goodness

Monday, March 15, 2010

Page 85: Mobile JavaScript Development - QCon 2010

• Class inheritance - dojo.declare

• Dojos event system - dojo.connect

• Powerful extendable query engine - dojo.query

Other Dojo goodness

Monday, March 15, 2010

Page 86: Mobile JavaScript Development - QCon 2010

• Class inheritance - dojo.declare

• Dojos event system - dojo.connect

• Powerful extendable query engine - dojo.query

• Much much more (See Dylans talk today)

Other Dojo goodness

Monday, March 15, 2010

Page 87: Mobile JavaScript Development - QCon 2010

document.getElement...

But!

Don’t forget about “real” JavaScript

Monday, March 15, 2010

Page 88: Mobile JavaScript Development - QCon 2010

What we have learned

Monday, March 15, 2010

Page 89: Mobile JavaScript Development - QCon 2010

Code simple!

Monday, March 15, 2010

Page 90: Mobile JavaScript Development - QCon 2010

Step back!

Especially if the desktop browser was your runtime of the past

Monday, March 15, 2010

Page 91: Mobile JavaScript Development - QCon 2010

Semantics?A short story

Monday, March 15, 2010

Page 92: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 93: Mobile JavaScript Development - QCon 2010

<ul> <li>Hi</li></ul>

Monday, March 15, 2010

Page 94: Mobile JavaScript Development - QCon 2010

<ul> <li>Hi</li></ul>

<ul> <li><a href=””>Hi</a></li></ul>

Monday, March 15, 2010

Page 95: Mobile JavaScript Development - QCon 2010

<ul> <li>Hi</li></ul>

<ul> <li><a href=””>Hi</a></li></ul>

<a href=””>Hi</a>Monday, March 15, 2010

Page 96: Mobile JavaScript Development - QCon 2010

IE anyone?

Monday, March 15, 2010

Page 97: Mobile JavaScript Development - QCon 2010

IE anyone?

Monday, March 15, 2010

Page 98: Mobile JavaScript Development - QCon 2010

IE anyone?

Monday, March 15, 2010

Page 99: Mobile JavaScript Development - QCon 2010

Do what your runtime can do

Not more

Monday, March 15, 2010

Page 100: Mobile JavaScript Development - QCon 2010

Communications

Monday, March 15, 2010

Page 101: Mobile JavaScript Development - QCon 2010

• XMLHttpRequest?

Communications

Monday, March 15, 2010

Page 102: Mobile JavaScript Development - QCon 2010

• XMLHttpRequest?

• JSONP / JSON?

Communications

Monday, March 15, 2010

Page 103: Mobile JavaScript Development - QCon 2010

Monday, March 15, 2010

Page 104: Mobile JavaScript Development - QCon 2010

Look ahead

Monday, March 15, 2010

Page 105: Mobile JavaScript Development - QCon 2010

Look aheadBut don’t implement

everything

Monday, March 15, 2010

Page 106: Mobile JavaScript Development - QCon 2010

Scaling and ppiBe aware

Monday, March 15, 2010

Page 107: Mobile JavaScript Development - QCon 2010

Testing

Monday, March 15, 2010

Page 108: Mobile JavaScript Development - QCon 2010

The browser is your friend

Monday, March 15, 2010

Page 109: Mobile JavaScript Development - QCon 2010

The browser is your friend

Really

Monday, March 15, 2010

Page 110: Mobile JavaScript Development - QCon 2010

The browser is your friend

ReallyReally

Monday, March 15, 2010

Page 111: Mobile JavaScript Development - QCon 2010

The browser is your friend

ReallyReallyReally

Monday, March 15, 2010

Page 112: Mobile JavaScript Development - QCon 2010

The browser is your friend

ReallyReallyReallyReally

Monday, March 15, 2010

Page 113: Mobile JavaScript Development - QCon 2010

The browser is your friend

ReallyReallyReallyReallyReally

Monday, March 15, 2010

Page 114: Mobile JavaScript Development - QCon 2010

Set headers... and steal

Send iPhone headers from within Firefox for exampleMonday, March 15, 2010

Page 115: Mobile JavaScript Development - QCon 2010

Hmmmm, alert(“Hi”);

Monday, March 15, 2010

Page 116: Mobile JavaScript Development - QCon 2010

Automate

Create routines

Monday, March 15, 2010

Page 117: Mobile JavaScript Development - QCon 2010

Agenda

• Timetravel

• Why mobile JavaScript development?

• Tales of a mobile dev (EventNinja)

• Outlook

Monday, March 15, 2010

Page 118: Mobile JavaScript Development - QCon 2010

Better browsers

Monday, March 15, 2010

Page 119: Mobile JavaScript Development - QCon 2010

Faster devices

Monday, March 15, 2010

Page 120: Mobile JavaScript Development - QCon 2010

More market coverage

Monday, March 15, 2010

Page 121: Mobile JavaScript Development - QCon 2010

Richer device APIs

Monday, March 15, 2010

Page 123: Mobile JavaScript Development - QCon 2010

thx to @wolframkriesing for the link

Other advantages of mobile development

Monday, March 15, 2010

Page 124: Mobile JavaScript Development - QCon 2010

thx to @wolframkriesing for the link

Other advantages of mobile development

Monday, March 15, 2010

Page 125: Mobile JavaScript Development - QCon 2010

Share your knowledgeMobile JavaScript development is young

Monday, March 15, 2010

Page 126: Mobile JavaScript Development - QCon 2010

@nonken | @uxebu

@dojo | @dojocampus

Monday, March 15, 2010