html5 apps

177
HTML5 Apps Appworks 2010 Oslo Nikolai Onken uxebu Friday, October 29, 2010

Post on 21-Sep-2014

23 views

Category:

Technology


0 download

DESCRIPTION

Slides of talk I gave at appworks in Oslo

TRANSCRIPT

Page 1: Html5 Apps

HTML5 AppsAppworks 2010 Oslo

Nikolai Onkenuxebu

Friday, October 29, 2010

Page 2: Html5 Apps

Friday, October 29, 2010

Page 3: Html5 Apps

@nonken

Friday, October 29, 2010

Page 4: Html5 Apps

Friday, October 29, 2010

Page 5: Html5 Apps

We open the mobile web.

Friday, October 29, 2010

Page 6: Html5 Apps

Friday, October 29, 2010

Page 7: Html5 Apps

JavaScript AJAX

CSS

dojoBrowser

OpenSourceWeb2.0

FrontEnd

Usability UserExperience

mobile

TouchScroll

Friday, October 29, 2010

Page 8: Html5 Apps

Friday, October 29, 2010

Page 9: Html5 Apps

Landscapehttp://www.flickr.com/photos/tillwe/146242691/

Friday, October 29, 2010

Page 10: Html5 Apps

Landscapehttp://www.flickr.com/photos/tillwe/146242691/

Friday, October 29, 2010

Page 11: Html5 Apps

http://bit.ly/distimo-appstores

30th July 200914 Stores

Friday, October 29, 2010

Page 12: Html5 Apps

http://bit.ly/distimo-appstores

30th July 200914 Stores23rd September 2009

23 Stores

Friday, October 29, 2010

Page 13: Html5 Apps

http://bit.ly/distimo-appstores

30th July 200914 Stores23rd September 2009

23 Stores2nd December 2009

26 Stores

Friday, October 29, 2010

Page 14: Html5 Apps

October 201096 Apptores - WOA

http://www.wipconnector.com/appstores

Friday, October 29, 2010

Page 15: Html5 Apps

Cross Platform

Friday, October 29, 2010

Page 16: Html5 Apps

Friday, October 29, 2010

Page 17: Html5 Apps

Objective-C

Friday, October 29, 2010

Page 18: Html5 Apps

Objective-C Symbian C

Friday, October 29, 2010

Page 19: Html5 Apps

Objective-C JavaSymbian C

Friday, October 29, 2010

Page 20: Html5 Apps

Objective-C JavaSymbian C

Java

Friday, October 29, 2010

Page 21: Html5 Apps

Objective-C JavaSymbian C

.NETJava

Friday, October 29, 2010

Page 22: Html5 Apps

Objective-C JavaSymbian C

.NETJava ...

Friday, October 29, 2010

Page 23: Html5 Apps

HTML

Friday, October 29, 2010

Page 24: Html5 Apps

http://www.flickr.com/photos/robadob/88901885/

Engine of the web

Friday, October 29, 2010

Page 25: Html5 Apps

http://www.flickr.com/photos/chris_radcliff/2947219465/

iPhone - First usable mobile browser

Friday, October 29, 2010

Page 26: Html5 Apps

http://uxebu.com/blog/2010/04/27/touchscroll-a-scrolling-layer-for-webkit-mobile/

Friday, October 29, 2010

Page 27: Html5 Apps

Friday, October 29, 2010

Page 28: Html5 Apps

http://bit.ly/tomiahonen-2010-almanac

Friday, October 29, 2010

Page 29: Html5 Apps

http://bit.ly/tomiahonen-2010-almanac

71% of all phoneshave a modern xTML web browser.

Friday, October 29, 2010

Page 30: Html5 Apps

App Store without Apple!

Friday, October 29, 2010

Page 31: Html5 Apps

Your Appshop facts

Friday, October 29, 2010

Page 32: Html5 Apps

Your Appshop facts

• 100% HTML5

Friday, October 29, 2010

Page 33: Html5 Apps

Your Appshop facts

• 100% HTML5

• Apps work offline

Friday, October 29, 2010

Page 34: Html5 Apps

Your Appshop facts

• 100% HTML5

• Apps work offline

• 43.000.000 downloads since december 2009

Friday, October 29, 2010

Page 35: Html5 Apps

Your Appshop facts

• 100% HTML5

• Apps work offline

• 43.000.000 downloads since december 2009

• Payment gateway

Friday, October 29, 2010

Page 36: Html5 Apps

Your Appshop facts

• 100% HTML5

• Apps work offline

• 43.000.000 downloads since december 2009

• Payment gateway

• It feels native

Friday, October 29, 2010

Page 37: Html5 Apps

Friday, October 29, 2010

Page 38: Html5 Apps

Friday, October 29, 2010

Page 39: Html5 Apps

Friday, October 29, 2010

Page 40: Html5 Apps

What is a HTML5 App?

Friday, October 29, 2010

Page 41: Html5 Apps

Friday, October 29, 2010

Page 42: Html5 Apps

Friday, October 29, 2010

Page 43: Html5 Apps

Friday, October 29, 2010

Page 44: Html5 Apps

}

Friday, October 29, 2010

Page 45: Html5 Apps

}?

Friday, October 29, 2010

Page 46: Html5 Apps

Types of "Apps"

Friday, October 29, 2010

Page 47: Html5 Apps

Types of "Apps"

• Preinstalled

Friday, October 29, 2010

Page 48: Html5 Apps

Types of "Apps"

• Preinstalled

• Native App (from "some" app store)

Friday, October 29, 2010

Page 49: Html5 Apps

Types of "Apps"

• Preinstalled

• Native App (from "some" app store)

• Websitelimited access to phone resources

Friday, October 29, 2010

Page 50: Html5 Apps

Types of "Apps"

• Preinstalled

• Native App (from "some" app store)

• Websitelimited access to phone resources

• HTML5 Appaccess by a capable runtime

Friday, October 29, 2010

Page 51: Html5 Apps

Friday, October 29, 2010

Page 52: Html5 Apps

Layoutindex.html

Friday, October 29, 2010

Page 53: Html5 Apps

Designstyle.css

Layoutindex.html

Friday, October 29, 2010

Page 54: Html5 Apps

Designstyle.css

Layoutindex.html

AJAX Library

Friday, October 29, 2010

Page 55: Html5 Apps

Database

Designstyle.css

Layoutindex.html

AJAX Library

Friday, October 29, 2010

Page 56: Html5 Apps

PhoneGap

Friday, October 29, 2010

Page 57: Html5 Apps

PhoneGap"An express goal of the PhoneGap project

is for the project to not exist."

Friday, October 29, 2010

Page 58: Html5 Apps

PhoneGap"An express goal of the PhoneGap project

is for the project to not exist."

Open Source

Friday, October 29, 2010

Page 59: Html5 Apps

PhoneGap"An express goal of the PhoneGap project

is for the project to not exist."

Open Source

Friday, October 29, 2010

Page 60: Html5 Apps

http://phonegap.pbworks.com/Roadmap

Friday, October 29, 2010

Page 61: Html5 Apps

Low level APIs

Camera Accelerometer Push Notifications...

Chromeless Browser

PhoneGap

browser.eval(“document.geolocation...”)

Friday, October 29, 2010

Page 62: Html5 Apps

Low level APIs

Camera Accelerometer Push Notifications...

Chromeless Browser

PhoneGap

browser.eval(“document.geolocation...”)

Friday, October 29, 2010

Page 63: Html5 Apps

Device support

Friday, October 29, 2010

Page 64: Html5 Apps

Pros

Cons

Friday, October 29, 2010

Page 65: Html5 Apps

Pros

•Not a standard (but based on standards)

Cons

Friday, October 29, 2010

Page 66: Html5 Apps

Pros

•Not a standard (but based on standards)

•Good browsers

Cons

Friday, October 29, 2010

Page 67: Html5 Apps

Pros

•Not a standard (but based on standards)

•Good browsers

•Many device APIs

Cons

Friday, October 29, 2010

Page 68: Html5 Apps

Pros

•Not a standard (but based on standards)

•Good browsers

•Many device APIs

•Extendable webview in most cases

Cons

Friday, October 29, 2010

Page 69: Html5 Apps

Pros

•Not a standard (but based on standards)

•Good browsers

•Many device APIs

•Extendable webview in most cases

•Open source

Cons

Friday, October 29, 2010

Page 70: Html5 Apps

W3C Widgets

Friday, October 29, 2010

Page 71: Html5 Apps

Layoutindex.html

Designstyle.css

Database

AJAX Library

Friday, October 29, 2010

Page 72: Html5 Apps

Layoutindex.html

Designstyle.css

Database

AJAX Library

Friday, October 29, 2010

Page 73: Html5 Apps

Layoutindex.html

Designstyle.css

Database

AJAX LibraryConfiguration

config.xml

Friday, October 29, 2010

Page 74: Html5 Apps

Layoutindex.html

Designstyle.css

Database

AJAX LibraryConfiguration

config.xml

Icon

Friday, October 29, 2010

Page 75: Html5 Apps

Layoutindex.html

Designstyle.css

Database

AJAX LibraryConfiguration

config.xml

=Icon

Friday, October 29, 2010

Page 76: Html5 Apps

Layoutindex.html

Designstyle.css

Database

AJAX LibraryConfiguration

config.xml

W3C Widget =Icon

Friday, October 29, 2010

Page 77: Html5 Apps

What is a W3C Widget?

Friday, October 29, 2010

Page 78: Html5 Apps

What is a W3C Widget?

Friday, October 29, 2010

Page 79: Html5 Apps

What is a W3C Widget?

•HTML

•CSS

•JavaScript

•config.xml

•zip it

• rename to *.wgt

Friday, October 29, 2010

Page 80: Html5 Apps

Devices?

...yes

Friday, October 29, 2010

Page 81: Html5 Apps

Pros

Cons

Friday, October 29, 2010

Page 82: Html5 Apps

Pros

•Only few device APIs

Cons

Friday, October 29, 2010

Page 83: Html5 Apps

Pros

•Only few device APIs

•No possibility to introduce custom APIs

Cons

Friday, October 29, 2010

Page 84: Html5 Apps

Pros

•Only few device APIs

•No possibility to introduce custom APIs

•Sometimes annoying browser quirks

Cons

Friday, October 29, 2010

Page 85: Html5 Apps

Pros

•Only few device APIs

•No possibility to introduce custom APIs

•Sometimes annoying browser quirks

•Very simple to create

Cons

Friday, October 29, 2010

Page 86: Html5 Apps

Pros

•Only few device APIs

•No possibility to introduce custom APIs

•Sometimes annoying browser quirks

•Very simple to create

•Easy to test

Cons

Friday, October 29, 2010

Page 87: Html5 Apps

Pros

•Only few device APIs

•No possibility to introduce custom APIs

•Sometimes annoying browser quirks

•Very simple to create

•Easy to test

•For certain application usecaes the

Cons

Friday, October 29, 2010

Page 88: Html5 Apps

Other runtimes?

Friday, October 29, 2010

Page 89: Html5 Apps

Runtimes

•JIL Spec http://www.jil.org/

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

•W3C Spec http://w3.org/2009/dap/

•PhoneGap http://phonegap.pbworks.com/

•Nokia WRT http://bit.ly/nokia-WRT-APIs

•Appcelerator http://www.codestrong.com/timobile/api/

Nokia S60

iPhone

Android

Blackberry

WindowsMobile

Friday, October 29, 2010

Page 90: Html5 Apps

Runtimes

•JIL Spec http://www.jil.org/

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

•W3C Spec http://w3.org/2009/dap/

•PhoneGap http://phonegap.pbworks.com/

•Nokia WRT http://bit.ly/nokia-WRT-APIs

•Appcelerator http://www.codestrong.com/timobile/api/

Nokia S60

iPhone

Android

Blackberry

WindowsMobile

Friday, October 29, 2010

Page 94: Html5 Apps

Almost for free

Friday, October 29, 2010

Page 95: Html5 Apps

Almost for free

•Facebook widget

Friday, October 29, 2010

Page 96: Html5 Apps

Almost for free

•Facebook widget

•Dashboard widget

Friday, October 29, 2010

Page 97: Html5 Apps

Almost for free

•Facebook widget

•Dashboard widget

•Website widget

Friday, October 29, 2010

Page 98: Html5 Apps

Almost for free

•Facebook widget

•Dashboard widget

•Website widget

•TV Widget

Friday, October 29, 2010

Page 99: Html5 Apps

Almost for free

•Facebook widget

•Dashboard widget

•Website widget

•TV Widget

• ...

Friday, October 29, 2010

Page 100: Html5 Apps

Almost for free

•Facebook widget

•Dashboard widget

•Website widget

•TV Widget

• ...

Friday, October 29, 2010

Page 101: Html5 Apps

Almost for free

•Facebook widget

•Dashboard widget

•Website widget

•TV Widget

• ...

Friday, October 29, 2010

Page 102: Html5 Apps

Almost for free

•Facebook widget

•Dashboard widget

•Website widget

•TV Widget

• ...

Friday, October 29, 2010

Page 103: Html5 Apps

Almost for free

•Facebook widget

•Dashboard widget

•Website widget

•TV Widget

• ...

Friday, October 29, 2010

Page 104: Html5 Apps

A Phone is ...

Friday, October 29, 2010

Page 105: Html5 Apps

http://www.flickr.com/photos/kratz/1984004945/

Friday, October 29, 2010

Page 106: Html5 Apps

http://www.flickr.com/photos/mbiddulph/3087388964/

Friday, October 29, 2010

Page 107: Html5 Apps

http://www.flickr.com/photos/redstamp/4222841946/

Friday, October 29, 2010

Page 108: Html5 Apps

• Camera

• Compass

• GPS

• Accelerometer

• Calendar

• Email

• Address book

• Watch

• Alarm clock

• ...

Friday, October 29, 2010

Page 109: Html5 Apps

Multiple Ways

• W3C Spechttp://w3.org/2009/dap/

• JIL Spechttp://www.jil.org/

• BONDI Spechttp://bondi.omtp.org/

• Your own Spec :)http://phonegap.com/

Friday, October 29, 2010

Page 110: Html5 Apps

Cross Platform?

Friday, October 29, 2010

Page 111: Html5 Apps

EventNinja

Friday, October 29, 2010

Page 112: Html5 Apps

Database

Layoutindex.html

Designstyle.css

AJAX LibraryConfiguration

config.xml

Icon

Friday, October 29, 2010

Page 113: Html5 Apps

Database

Layoutindex.html

Designstyle.css

AJAX LibraryConfiguration

config.xml

Icon

Friday, October 29, 2010

Page 114: Html5 Apps

Database

Layoutindex.html

Designstyle.css

AJAX LibraryConfiguration

config.xml

Icon

Events,a Calendar

Friday, October 29, 2010

Page 115: Html5 Apps

http://bit.ly/webdev-events

Friday, October 29, 2010

Page 116: Html5 Apps

http://bit.ly/webdev-events

Friday, October 29, 2010

Page 117: Html5 Apps

http://bit.ly/webdev-events

Friday, October 29, 2010

Page 118: Html5 Apps

Friday, October 29, 2010

Page 119: Html5 Apps

Friday, October 29, 2010

Page 120: Html5 Apps

Friday, October 29, 2010

Page 121: Html5 Apps

Friday, October 29, 2010

Page 122: Html5 Apps

Friday, October 29, 2010

Page 123: Html5 Apps

Friday, October 29, 2010

Page 124: Html5 Apps

Friday, October 29, 2010

Page 125: Html5 Apps

Friday, October 29, 2010

Page 126: Html5 Apps

Friday, October 29, 2010

Page 127: Html5 Apps

Friday, October 29, 2010

Page 128: Html5 Apps

Testing

Friday, October 29, 2010

Page 129: Html5 Apps

Best Practices

Friday, October 29, 2010

Page 130: Html5 Apps

Best Practices• test on the desktop

Friday, October 29, 2010

Page 131: Html5 Apps

Best Practices• test on the desktop

• test on the desktop

Friday, October 29, 2010

Page 132: Html5 Apps

Best Practices• test on the desktop

• test on the desktop

• test on the desktop

Friday, October 29, 2010

Page 133: Html5 Apps

Best Practices• test on the desktop

• test on the desktop

• test on the desktop

• try-catch a lot

Friday, October 29, 2010

Page 134: Html5 Apps

Best Practices• test on the desktop

• test on the desktop

• test on the desktop

• try-catch a lot

• alert() IS your friend!

Friday, October 29, 2010

Page 135: Html5 Apps

Best Practices• test on the desktop

• test on the desktop

• test on the desktop

• try-catch a lot

• alert() IS your friend!

• simplify your CSS

Friday, October 29, 2010

Page 136: Html5 Apps

Ripple

Friday, October 29, 2010

Page 137: Html5 Apps

Libraries

Friday, October 29, 2010

Page 138: Html5 Apps

What is out there?

Friday, October 29, 2010

Page 139: Html5 Apps

What is out there?

•XUI

Friday, October 29, 2010

Page 140: Html5 Apps

What is out there?

•XUI

•Sencha Touch

Friday, October 29, 2010

Page 141: Html5 Apps

What is out there?

•XUI

•Sencha Touch

•jQuery Mobile (coming)

Friday, October 29, 2010

Page 142: Html5 Apps

What is out there?

•XUI

•Sencha Touch

•jQuery Mobile (coming)

•Dojo mobile

Friday, October 29, 2010

Page 143: Html5 Apps

What is out there?

•XUI

•Sencha Touch

•jQuery Mobile (coming)

•Dojo mobile

•EmbedJS

Friday, October 29, 2010

Page 144: Html5 Apps

What is out there?

•XUI

•Sencha Touch

•jQuery Mobile (coming)

•Dojo mobile

•EmbedJS

•...

Friday, October 29, 2010

Page 145: Html5 Apps

EmbedJSan approach to cross platform development

Friday, October 29, 2010

Page 146: Html5 Apps

Friday, October 29, 2010

Page 147: Html5 Apps

Friday, October 29, 2010

Page 148: Html5 Apps

Friday, October 29, 2010

Page 149: Html5 Apps

The Supported Devices

... and there will be moreto embed JavaScript on

Friday, October 29, 2010

Page 150: Html5 Apps

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

Friday, October 29, 2010

Page 151: Html5 Apps

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

Friday, October 29, 2010

Page 152: Html5 Apps

Shrink Your API

20kB 8kB

Friday, October 29, 2010

Page 153: Html5 Apps

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

Friday, October 29, 2010

Page 154: Html5 Apps

vs.

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

Friday, October 29, 2010

Page 155: Html5 Apps

vs.

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

Full fledged queries > Full blown library function

Friday, October 29, 2010

Page 156: Html5 Apps

vs.

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

Full fledged queries > Full blown library function

13 LOC

~200 LOC

Friday, October 29, 2010

Page 157: Html5 Apps

Friday, October 29, 2010

Page 158: Html5 Apps

At RuntimeAt Build Time

Friday, October 29, 2010

Page 159: Html5 Apps

dojo-blackberry.js

dojo-blackberry46.js

dojo-nokia-wrt.js

dojo-opera.js

dojo-webkit-mobile.js

dojo-windows-mobile.js

Friday, October 29, 2010

Page 160: Html5 Apps

Tooling

Friday, October 29, 2010

Page 161: Html5 Apps

Friday, October 29, 2010

Page 162: Html5 Apps

Friday, October 29, 2010

Page 163: Html5 Apps

Friday, October 29, 2010

Page 164: Html5 Apps

Friday, October 29, 2010

Page 165: Html5 Apps

Friday, October 29, 2010

Page 166: Html5 Apps

Friday, October 29, 2010

Page 167: Html5 Apps

Friday, October 29, 2010

Page 168: Html5 Apps

The future

Friday, October 29, 2010

Page 169: Html5 Apps

HumanApi

Friday, October 29, 2010

Page 170: Html5 Apps

HumanApi

•The browser accessing hardware

Friday, October 29, 2010

Page 171: Html5 Apps

HumanApi

•The browser accessing hardware

•Reading your heartrate

Friday, October 29, 2010

Page 172: Html5 Apps

HumanApi

•The browser accessing hardware

•Reading your heartrate

•All JavaScript/HTML/CSS

Friday, October 29, 2010

Page 173: Html5 Apps

http://uxebu.com/blog/2010/01/25/humanapi-the-browser-in-the-real-world/

Friday, October 29, 2010

Page 174: Html5 Apps

http://uxebu.com/blog/2010/01/25/humanapi-the-browser-in-the-real-world/

Friday, October 29, 2010

Page 175: Html5 Apps

Turn on the lights

Friday, October 29, 2010

Page 176: Html5 Apps

Turn on the lights

•http://github.com/nonken/arduinojs

Friday, October 29, 2010