+ All Categories
Home > Technology > Human APIs

Human APIs

Date post: 07-Nov-2014
Category:
Upload: nikolai-onken
View: 1,021 times
Download: 1 times
Share this document with a friend
Description:
These are the slides from my talk at the RiaWorld 2010, a mostly hands on session showcasing how to access hardware from within the browser.
Popular Tags:
87
Human APIs expanding the mobile web RiaWorld 2010 Nikolai Onken uxebu Wednesday, November 17, 2010
Transcript
Page 1: Human APIs

Human APIsexpanding the mobile web

RiaWorld 2010

Nikolai Onkenuxebu

Wednesday, November 17, 2010

Page 2: Human APIs

Wednesday, November 17, 2010

Page 3: Human APIs

@nonken

Wednesday, November 17, 2010

Page 4: Human APIs

Wednesday, November 17, 2010

Page 5: Human APIs

We open the mobile web.

Wednesday, November 17, 2010

Page 6: Human APIs

Wednesday, November 17, 2010

Page 7: Human APIs

JavaScript AJAX

CSS

dojoBrowser

OpenSourceWeb2.0

FrontEnd

Usability UserExperience

mobile

TouchScroll

Wednesday, November 17, 2010

Page 8: Human APIs

The Plan

• A little bit of history

• Lets build a mobile app

Wednesday, November 17, 2010

Page 9: Human APIs

http://news.bbc.co.uk/2/hi/technology/8552410.stm

Remember Risk?

Wednesday, November 17, 2010

Page 10: Human APIs

http://news.bbc.co.uk/2/hi/technology/8552410.stm

Remember Risk?

Wednesday, November 17, 2010

Page 11: Human APIs

Dec, 20091,802 millions

26.6 %

Wednesday, November 17, 2010

Page 12: Human APIs

The mobile web

Jan. 2008 Mar. 20100

5000000000

10000000000

15000000000

20000000000

AdMob Requests

Wednesday, November 17, 2010

Page 13: Human APIs

The mobile web

Jan. 2008 Mar. 20100

5000000000

10000000000

15000000000

20000000000

AdMob Requests

Wednesday, November 17, 2010

Page 14: Human APIs

The mobile web

Jan. 2008 Mar. 20100

5000000000

10000000000

15000000000

20000000000

AdMob Requests

Wednesday, November 17, 2010

Page 15: Human APIs

The reality

• Internet is growing (fast)

•Mobile is growing (fast)

•Mobile internet is growing (fast!)

Wednesday, November 17, 2010

Page 16: Human APIs

The browser is the central piece

Wednesday, November 17, 2010

Page 17: Human APIs

The browser is the interface to the

internet

Wednesday, November 17, 2010

Page 18: Human APIs

71% of all modern phones have a

browser

Tomi Ahonen

Wednesday, November 17, 2010

Page 19: Human APIs

IPv6

2128

Wednesday, November 17, 2010

Page 20: Human APIs

There will be a lot of things we should talk to :)

(using a browser)

Wednesday, November 17, 2010

Page 21: Human APIs

Wednesday, November 17, 2010

Page 22: Human APIs

Is JavaScript good enough?

Wednesday, November 17, 2010

Page 23: Human APIs

Flash with JavaScript?

Wednesday, November 17, 2010

Page 24: Human APIs

http://github.com/tobeytailor/gordon

Wednesday, November 17, 2010

Page 25: Human APIs

HTML5 Appsor web apps as we know them

Wednesday, November 17, 2010

Page 26: Human APIs

Wednesday, November 17, 2010

Page 27: Human APIs

Wednesday, November 17, 2010

Page 28: Human APIs

New HTML Elements

Wednesday, November 17, 2010

Page 29: Human APIs

<input type="speech" grammar="grammar-nav-en.grxml" onchange="handleSpeechInput">

http://bit.ly/audio-api

Wednesday, November 17, 2010

Page 30: Human APIs

High performance graphics

WebGL

Wednesday, November 17, 2010

Page 31: Human APIs

Wednesday, November 17, 2010

Page 32: Human APIs

Wednesday, November 17, 2010

Page 33: Human APIs

Media

Wednesday, November 17, 2010

Page 34: Human APIs

Wednesday, November 17, 2010

Page 35: Human APIs

Wednesday, November 17, 2010

Page 36: Human APIs

What more do we need?

Wednesday, November 17, 2010

Page 37: Human APIs

JavaScript HTTP

Wednesday, November 17, 2010

Page 38: Human APIs

JavaScript HTTP

Accelerometer

Camera

...Wednesday, November 17, 2010

Page 39: Human APIs

JavaScript HTTP

Accelerometer

Camera

...

Bluetooth

RFID

Wednesday, November 17, 2010

Page 40: Human APIs

JavaScript

CSS

HTML

HTTP

Accelerometer

Camera

...

Bluetooth

RFID

Wednesday, November 17, 2010

Page 41: Human APIs

JavaScript

CSS

HTML

HTTP

Accelerometer

Camera

...

Bluetooth

RFID

Wednesday, November 17, 2010

Page 42: Human APIs

The Hype

Wednesday, November 17, 2010

Page 43: Human APIs

o

The Hype

Wednesday, November 17, 2010

Page 44: Human APIs

oThe cloud

The Hype

Wednesday, November 17, 2010

Page 45: Human APIs

oThe cloud Location, etc.

The Hype

Wednesday, November 17, 2010

Page 46: Human APIs

oThe cloud Location, etc.

The Potential

Wednesday, November 17, 2010

Page 47: Human APIs

oThe cloud Location, etc.

Hardware

The Potential

Wednesday, November 17, 2010

Page 48: Human APIs

Use cases

Wednesday, November 17, 2010

Page 49: Human APIs

Transportation

Wednesday, November 17, 2010

Page 50: Human APIs

Wednesday, November 17, 2010

Page 51: Human APIs

Wednesday, November 17, 2010

Page 52: Human APIs

Home automation

Wednesday, November 17, 2010

Page 53: Human APIs

http://digitalstrom.org

Wednesday, November 17, 2010

Page 54: Human APIs

http://home-pad.com

Wednesday, November 17, 2010

Page 55: Human APIs

Health

Wednesday, November 17, 2010

Page 56: Human APIs

3311 Health/Fitness Apps in Apple app store

Wednesday, November 17, 2010

Page 57: Human APIs

HumanAPI

Wednesday, November 17, 2010

Page 58: Human APIs

HumanAPI

Wednesday, November 17, 2010

Page 59: Human APIs

How can we do this?

Wednesday, November 17, 2010

Page 60: Human APIs

Mobile SDKs

Wednesday, November 17, 2010

Page 61: Human APIs

Mobile SDKs

Objective-C

Wednesday, November 17, 2010

Page 62: Human APIs

Mobile SDKs

Objective-C Java

Wednesday, November 17, 2010

Page 63: Human APIs

Mobile SDKs

Objective-C Java ...

Wednesday, November 17, 2010

Page 64: Human APIs

How the magic happens

Wednesday, November 17, 2010

Page 65: Human APIs

Low level APIs

Camera Accelerometer Push Notifications

How the magic happens

Wednesday, November 17, 2010

Page 66: Human APIs

Low level APIs

Camera Accelerometer Push Notifications

Chromeless Browser

How the magic happens

Wednesday, November 17, 2010

Page 67: Human APIs

Low level APIs

Camera Accelerometer Push Notifications

Chromeless Browser

How the magic happens

browserInstance.eval(“alert(1);”)

Wednesday, November 17, 2010

Page 68: Human APIs

PhoneGap

Wednesday, November 17, 2010

Page 69: Human APIs

Low level APIs

Camera Accelerometer Push Notifications...

Chromeless Browser

PhoneGap

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

Android, iPhone, iPad, Nokia S60, BlackberryWednesday, November 17, 2010

Page 70: Human APIs

Low level APIs

Camera Accelerometer Push Notifications...

Chromeless Browser

PhoneGap

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

Android, iPhone, iPad, Nokia S60, BlackberryWednesday, November 17, 2010

Page 71: Human APIs

mAppView.loadUrl("javascript:navigator.compass.setHeading(" + heading + ")");

Android

Wednesday, November 17, 2010

Page 72: Human APIs

jsCallBack = [[NSString alloc] initWithFormat:@"navigator. accelerometer._onAccelUpdate(%f,%f,%f);", acceleration.x, acceleration.y, acceleration.z];

[webView stringByEvaluatingJavaScriptFromString:jsCallBack];

iPhone/iPad

Wednesday, November 17, 2010

Page 73: Human APIs

Lowlevel APIs

The browser

For things you can’t do in the browser (yet)

For anything else :)

Wednesday, November 17, 2010

Page 74: Human APIs

Enough talking, lets see some hardware

Wednesday, November 17, 2010

Page 75: Human APIs

ArduinoJS

Wednesday, November 17, 2010

Page 76: Human APIs

ArduinoJS Stack

• Arduino (http://arduino.cc/)

• Node-Serial (Chris Williams)

• Node

• Websockets (Socket.io)

http://github.com/nonken/arduinojs

Wednesday, November 17, 2010

Page 77: Human APIs

Node

ArduinoJS

Websockets

Arduino

Browser

Serial connection

Light Motors Robots

One

API

to

rule

the

m a

ll

Wednesday, November 17, 2010

Page 78: Human APIs

Node

ArduinoJS

Websockets

Arduino

Browser

Serial connection

Light Motors Robots

One

API

to

rule

the

m a

ll

Wednesday, November 17, 2010

Page 79: Human APIs

available APIs

• digitalWrite(pin, val)

• digitalRead(pin, val)

• analogWrite(pin, val)

• analogRead(pin, val)

http://github.com/nonken/arduinojs

Wednesday, November 17, 2010

Page 80: Human APIs

Try it out

• 10.0.2.1:8888

Wednesday, November 17, 2010

Page 81: Human APIs

Wednesday, November 17, 2010

Page 82: Human APIs

Only the beginning

Wednesday, November 17, 2010

Page 83: Human APIs

Serverside JS

Wednesday, November 17, 2010

Page 84: Human APIs

http://groups.google.com/group/nodejs/browse_thread/thread/ee11c077e5f89f7a?hl=en

$(".living-room").delegate(".motion-sensor", "onmotion", function(){   $(".living-room .lights").css("intensity", 0.75) });

Your house == DOM

Wednesday, November 17, 2010

Page 85: Human APIs

Raphaël can do this!

Wednesday, November 17, 2010

Page 86: Human APIs

Getting started

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

•PhoneGap - http://phonegap.com

•http://blog.uxebu.com

•http://www.humanapi.org

Wednesday, November 17, 2010

Page 87: Human APIs

Thank you

@nonken

Wednesday, November 17, 2010


Recommended