SlideShare a Scribd company logo
1 of 86
Download to read offline
Human APIs
                              expanding the mobile web
                                         or
                           are robots coming to JavaScript?

                                       Nikolai Onken
                                          uxebu



Sunday, October 17, 2010
Sunday, October 17, 2010
@nonken



Sunday, October 17, 2010
Sunday, October 17, 2010
We open the mobile web.




Sunday, October 17, 2010
Sunday, October 17, 2010
JavaScript                               AJAX
                                  FrontEnd
      Usability                   UserExperience

                           CSS     mobile
       Browser                               Web2.0
                           dojo
                 TouchScroll      OpenSource
Sunday, October 17, 2010
Remember Risk?




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

Sunday, October 17, 2010
Remember Risk?




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

Sunday, October 17, 2010
Dec, 2009
                           1,802 millions
                               26.6 %


Sunday, October 17, 2010
The mobile web
                                             AdMob Requests

       20000000000


       15000000000


       10000000000


         5000000000


                           0
                                 Jan. 2008                    Mar. 2010



Sunday, October 17, 2010
The mobile web
                                             AdMob Requests

       20000000000


       15000000000


       10000000000


         5000000000


                           0
                                 Jan. 2008                    Mar. 2010



Sunday, October 17, 2010
The mobile web
                                             AdMob Requests

       20000000000


       15000000000


       10000000000


         5000000000


                           0
                                 Jan. 2008                    Mar. 2010



Sunday, October 17, 2010
The reality

                    • Internet is growing (fast)
                    • Mobile is growing (fast)
                    • Mobile internet is growing (fast!)


Sunday, October 17, 2010
The browser is the
                             central piece


Sunday, October 17, 2010
The browser is the
                            interface to the
                                internet


Sunday, October 17, 2010
71% of all modern
                             phones have a
                               browser
                                Tomi Ahonen

Sunday, October 17, 2010
IPv6

                           2 128




Sunday, October 17, 2010
There will be a lot of
    things we should talk to :)

                           (using a browser)
Sunday, October 17, 2010
Sunday, October 17, 2010
Is JavaScript good
                                enough?


Sunday, October 17, 2010
Flash with
                           JavaScript?



Sunday, October 17, 2010
http://github.com/tobeytailor/gordon

Sunday, October 17, 2010
HTML5 Apps
                            or web apps as we know them




Sunday, October 17, 2010
Sunday, October 17, 2010
Sunday, October 17, 2010
New HTML Elements



Sunday, October 17, 2010
<input type="speech" grammar="grammar-nav-en.grxml" onchange="handleSpeechInput">




                                      http://bit.ly/audio-api



Sunday, October 17, 2010
High performance
                               graphics
                                 WebGL



Sunday, October 17, 2010
Sunday, October 17, 2010
Sunday, October 17, 2010
Media



Sunday, October 17, 2010
Sunday, October 17, 2010
Sunday, October 17, 2010
What more do we need?



Sunday, October 17, 2010
JavaScript       HTTP




Sunday, October 17, 2010
JavaScript          HTTP
                           Accelerometer
                             Camera
                                ...
Sunday, October 17, 2010
RFID
                            Bluetooth

          JavaScript          HTTP
                           Accelerometer
                             Camera
                                ...
Sunday, October 17, 2010
RFID
                           CSS     Bluetooth

          JavaScript                 HTTP
                           HTML   Accelerometer
                                    Camera
                                       ...
Sunday, October 17, 2010
RFID
                           CSS     Bluetooth

          JavaScript                 HTTP
                           HTML   Accelerometer
                                    Camera
                                       ...
Sunday, October 17, 2010
The Hype




Sunday, October 17, 2010
The Hype




                            o

Sunday, October 17, 2010
The Hype

                      The cloud



                                   o

Sunday, October 17, 2010
The Hype

                      The cloud              Location, etc.



                                   o

Sunday, October 17, 2010
The Potential

                      The cloud                   Location, etc.



                                     o

Sunday, October 17, 2010
The Potential

                      The cloud                   Location, etc.



                                     o
                                   Hardware


Sunday, October 17, 2010
Use cases



Sunday, October 17, 2010
Transportation



Sunday, October 17, 2010
Sunday, October 17, 2010
Sunday, October 17, 2010
Home automation



Sunday, October 17, 2010
http://digitalstrom.org




Sunday, October 17, 2010
http://home-pad.com




Sunday, October 17, 2010
Health



Sunday, October 17, 2010
3311 Health/Fitness
           Apps in Apple app store


Sunday, October 17, 2010
HumanAPI




Sunday, October 17, 2010
HumanAPI




Sunday, October 17, 2010
How can we do this?



Sunday, October 17, 2010
Mobile SDKs




Sunday, October 17, 2010
Mobile SDKs


              Objective-C




Sunday, October 17, 2010
Mobile SDKs


              Objective-C      Java




Sunday, October 17, 2010
Mobile SDKs


              Objective-C      Java      ...

Sunday, October 17, 2010
How the magic happens




Sunday, October 17, 2010
How the magic happens




                                 Low level APIs

                   Camera Accelerometer Push Notifications


Sunday, October 17, 2010
How the magic happens


                             Chromeless Browser




                                 Low level APIs

                   Camera Accelerometer Push Notifications


Sunday, October 17, 2010
How the magic happens


                                Chromeless Browser



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


                                      Low level APIs

                   Camera Accelerometer Push Notifications


Sunday, October 17, 2010
PhoneGap



Sunday, October 17, 2010
PhoneGap


                                    Chromeless Browser



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


                                         Low level APIs

                   Camera Accelerometer Push Notifications
                                                   ...

                     Android, iPhone, iPad, Nokia S60, Blackberry
Sunday, October 17, 2010
PhoneGap


                                    Chromeless Browser



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


                                         Low level APIs

                   Camera Accelerometer Push Notifications
                                                   ...

                     Android, iPhone, iPad, Nokia S60, Blackberry
Sunday, October 17, 2010
Android



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




Sunday, October 17, 2010
iPhone/iPad



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

        [webView stringByEvaluatingJavaScriptFromString:jsCallBack];




Sunday, October 17, 2010
Lowlevel APIs
                  For things you can’t do in the browser (yet)




                           The browser
                              For anything else :)


Sunday, October 17, 2010
Enough talking, lets
                      see some hardware



Sunday, October 17, 2010
ArduinoJS



Sunday, October 17, 2010
ArduinoJS Stack

                    • Arduino (http://arduino.cc/)
                    • Node-Serial (Chris Williams)
                    • Node
                    • Websockets (Socket.io)
                           http://github.com/nonken/arduinojs

Sunday, October 17, 2010
ArduinoJS
                                                           Browser




                           One API to rule them all
                                                        Websockets

                                                            Node


                                                      Serial connection

                                                           Arduino



                                            Light          Motors    Robots

Sunday, October 17, 2010
ArduinoJS
                                                           Browser




                           One API to rule them all
                                                        Websockets

                                                            Node


                                                      Serial connection

                                                           Arduino



                                            Light          Motors    Robots

Sunday, October 17, 2010
available APIs

                    • digitalWrite(pin, val)
                    • digitalRead(pin, val)
                    • analogWrite(pin, val)
                    • analogRead(pin, val)
                           http://github.com/nonken/arduinojs

Sunday, October 17, 2010
Try it out


                    • 10.0.2.1:8888



Sunday, October 17, 2010
Sunday, October 17, 2010
Only the beginning



Sunday, October 17, 2010
Serverside JS



Sunday, October 17, 2010
Your house == DOM

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




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




Sunday, October 17, 2010
Raphaël can do this!
Sunday, October 17, 2010
Getting started

     • ArduinoJS - http://github.com/nonken/arduinojs
     • PhoneGap - http://phonegap.com
     • http://blog.uxebu.com
     • http://www.humanapi.org

Sunday, October 17, 2010
Thank you
                             @nonken




Sunday, October 17, 2010

More Related Content

Similar to Mobile Web Apps Using JavaScript and HTML5

Creative Commons: What Every Educator Needs to Know
Creative Commons: What Every Educator Needs to KnowCreative Commons: What Every Educator Needs to Know
Creative Commons: What Every Educator Needs to KnowRodd Lucier
 
Scareware Traversing the World via Ireland
Scareware Traversing the World via IrelandScareware Traversing the World via Ireland
Scareware Traversing the World via IrelandMark Hillick
 
Architecting for the Enterprise
Architecting for the EnterpriseArchitecting for the Enterprise
Architecting for the EnterpriseSencha
 
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptSencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptDavid Kaneda
 
iBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebiBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebESUG
 
Delivery strategies: Apps don't deploy themselves
Delivery strategies: Apps don't deploy themselvesDelivery strategies: Apps don't deploy themselves
Delivery strategies: Apps don't deploy themselvesAlistair Croll
 
Mobile Web Applications with jQuery
Mobile Web Applications with jQueryMobile Web Applications with jQuery
Mobile Web Applications with jQueryChad Pytel
 
Human APIs, the future of mobile
Human APIs, the future of mobileHuman APIs, the future of mobile
Human APIs, the future of mobileNikolai Onken
 
Advanced android
Advanced androidAdvanced android
Advanced androiddonnfelker
 
HTML5 Apps - Cross platform
HTML5 Apps - Cross platformHTML5 Apps - Cross platform
HTML5 Apps - Cross platformwolframkriesing
 
Dojo Mobile
Dojo MobileDojo Mobile
Dojo Mobiledylanks
 
InterACT2010: Alex Pinheiro - MiniCurso de Advergames
InterACT2010: Alex Pinheiro - MiniCurso de AdvergamesInterACT2010: Alex Pinheiro - MiniCurso de Advergames
InterACT2010: Alex Pinheiro - MiniCurso de AdvergamesiMasters
 
Document-Oriented Databases: Couchdb Primer
Document-Oriented Databases: Couchdb PrimerDocument-Oriented Databases: Couchdb Primer
Document-Oriented Databases: Couchdb Primerjsiarto
 
Muruca: Linked Data in Art History
Muruca: Linked Data in Art HistoryMuruca: Linked Data in Art History
Muruca: Linked Data in Art HistoryMichele Barbera
 
When is a Website Not Enough? Now.
When is a Website Not Enough? Now.When is a Website Not Enough? Now.
When is a Website Not Enough? Now.bethgsanders
 
Html5 apps nikolaionken-08-06
Html5 apps nikolaionken-08-06Html5 apps nikolaionken-08-06
Html5 apps nikolaionken-08-06Skills Matter
 
OvertheAir 2010 html5 impact on application programming
OvertheAir 2010 html5 impact on application programmingOvertheAir 2010 html5 impact on application programming
OvertheAir 2010 html5 impact on application programmingTor Björn Minde
 
HTML5 impact on application programming
HTML5 impact on application programmingHTML5 impact on application programming
HTML5 impact on application programmingEricsson Labs
 

Similar to Mobile Web Apps Using JavaScript and HTML5 (20)

Creative Commons: What Every Educator Needs to Know
Creative Commons: What Every Educator Needs to KnowCreative Commons: What Every Educator Needs to Know
Creative Commons: What Every Educator Needs to Know
 
Is these a bug
Is these a bugIs these a bug
Is these a bug
 
Scareware Traversing the World via Ireland
Scareware Traversing the World via IrelandScareware Traversing the World via Ireland
Scareware Traversing the World via Ireland
 
Architecting for the Enterprise
Architecting for the EnterpriseArchitecting for the Enterprise
Architecting for the Enterprise
 
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptSencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
 
App in a Browser
App in a BrowserApp in a Browser
App in a Browser
 
iBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebiBizLog. Smalltalking the Web
iBizLog. Smalltalking the Web
 
Delivery strategies: Apps don't deploy themselves
Delivery strategies: Apps don't deploy themselvesDelivery strategies: Apps don't deploy themselves
Delivery strategies: Apps don't deploy themselves
 
Mobile Web Applications with jQuery
Mobile Web Applications with jQueryMobile Web Applications with jQuery
Mobile Web Applications with jQuery
 
Human APIs, the future of mobile
Human APIs, the future of mobileHuman APIs, the future of mobile
Human APIs, the future of mobile
 
Advanced android
Advanced androidAdvanced android
Advanced android
 
HTML5 Apps - Cross platform
HTML5 Apps - Cross platformHTML5 Apps - Cross platform
HTML5 Apps - Cross platform
 
Dojo Mobile
Dojo MobileDojo Mobile
Dojo Mobile
 
InterACT2010: Alex Pinheiro - MiniCurso de Advergames
InterACT2010: Alex Pinheiro - MiniCurso de AdvergamesInterACT2010: Alex Pinheiro - MiniCurso de Advergames
InterACT2010: Alex Pinheiro - MiniCurso de Advergames
 
Document-Oriented Databases: Couchdb Primer
Document-Oriented Databases: Couchdb PrimerDocument-Oriented Databases: Couchdb Primer
Document-Oriented Databases: Couchdb Primer
 
Muruca: Linked Data in Art History
Muruca: Linked Data in Art HistoryMuruca: Linked Data in Art History
Muruca: Linked Data in Art History
 
When is a Website Not Enough? Now.
When is a Website Not Enough? Now.When is a Website Not Enough? Now.
When is a Website Not Enough? Now.
 
Html5 apps nikolaionken-08-06
Html5 apps nikolaionken-08-06Html5 apps nikolaionken-08-06
Html5 apps nikolaionken-08-06
 
OvertheAir 2010 html5 impact on application programming
OvertheAir 2010 html5 impact on application programmingOvertheAir 2010 html5 impact on application programming
OvertheAir 2010 html5 impact on application programming
 
HTML5 impact on application programming
HTML5 impact on application programmingHTML5 impact on application programming
HTML5 impact on application programming
 

More from Nikolai Onken

Running a cloud-based developer platform
Running a cloud-based developer platformRunning a cloud-based developer platform
Running a cloud-based developer platformNikolai Onken
 
The Art Of Practicing - WebSummit 2014
The Art Of Practicing - WebSummit 2014The Art Of Practicing - WebSummit 2014
The Art Of Practicing - WebSummit 2014Nikolai Onken
 
The Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile developmentThe Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile developmentNikolai Onken
 
Mobile Cross Platform
Mobile Cross PlatformMobile Cross Platform
Mobile Cross PlatformNikolai Onken
 
Mobile JavaScript Development - QCon 2010
Mobile JavaScript Development - QCon 2010Mobile JavaScript Development - QCon 2010
Mobile JavaScript Development - QCon 2010Nikolai Onken
 
Mobile cross platform development with Dojo
Mobile cross platform development with DojoMobile cross platform development with Dojo
Mobile cross platform development with DojoNikolai Onken
 
Dojo, from scratch to result
Dojo, from scratch to resultDojo, from scratch to result
Dojo, from scratch to resultNikolai Onken
 
EventNinja, Dojo and mobile
EventNinja, Dojo and mobileEventNinja, Dojo and mobile
EventNinja, Dojo and mobileNikolai Onken
 
RIA/UI development with Dojo
RIA/UI development with DojoRIA/UI development with Dojo
RIA/UI development with DojoNikolai Onken
 

More from Nikolai Onken (15)

Running a cloud-based developer platform
Running a cloud-based developer platformRunning a cloud-based developer platform
Running a cloud-based developer platform
 
The Art Of Practicing - WebSummit 2014
The Art Of Practicing - WebSummit 2014The Art Of Practicing - WebSummit 2014
The Art Of Practicing - WebSummit 2014
 
Embedjs
EmbedjsEmbedjs
Embedjs
 
The Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile developmentThe Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile development
 
Html5 Development
Html5 DevelopmentHtml5 Development
Html5 Development
 
Html5 Apps
Html5 AppsHtml5 Apps
Html5 Apps
 
Robotic JavaScript
Robotic JavaScriptRobotic JavaScript
Robotic JavaScript
 
Mobile Cross Platform
Mobile Cross PlatformMobile Cross Platform
Mobile Cross Platform
 
Mobile JavaScript Development - QCon 2010
Mobile JavaScript Development - QCon 2010Mobile JavaScript Development - QCon 2010
Mobile JavaScript Development - QCon 2010
 
Mobile cross platform development with Dojo
Mobile cross platform development with DojoMobile cross platform development with Dojo
Mobile cross platform development with Dojo
 
Dojo, from scratch to result
Dojo, from scratch to resultDojo, from scratch to result
Dojo, from scratch to result
 
EventNinja, Dojo and mobile
EventNinja, Dojo and mobileEventNinja, Dojo and mobile
EventNinja, Dojo and mobile
 
Dojo Introduction
Dojo IntroductionDojo Introduction
Dojo Introduction
 
Dojo and Adobe AIR
Dojo and Adobe AIRDojo and Adobe AIR
Dojo and Adobe AIR
 
RIA/UI development with Dojo
RIA/UI development with DojoRIA/UI development with Dojo
RIA/UI development with Dojo
 

Mobile Web Apps Using JavaScript and HTML5