JSConf - Mobile HTML5

Maximiliano Firtman
Maximiliano Firtmanmobile + web, speaker, author, developer at ITMaster / Entupalma
May, 19th, 2012
    Buenos Aires, AR



                       Maximiliano Firtman @firt
                        mobile+web developer


                       MOBILE HTML5 &
                        THE NEW APIS



Monday, May 21, 12
who am I?
                                 @firt
      mobile+web developer

      mobilexweb.com




Monday, May 21, 12
speaker




Monday, May 21, 12
Monday, May 21, 12
Cursos y Libros
                                 HTML5
                                 Android
                                    iOS
                                BlackBerry
                              Windows Phone


                     ITMaster.com.ar @ITMasterCursos

Monday, May 21, 12
ITMaster.com.ar
    @ITMasterCursos

Monday, May 21, 12
books




                     Image from my house
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
.com




Monday, May 21, 12
Monday, May 21, 12
mobile...




Monday, May 21, 12
mobile




Monday, May 21, 12
mobile
                     ‣   absolutely personal




Monday, May 21, 12
mobile
                     ‣ absolutely personal
                     ‣ +5 billions




Monday, May 21, 12
mobile
                     ‣ absolutely personal
                     ‣ +5 billions

                     ‣ make us focus




Monday, May 21, 12
mobile
                     ‣ absolutely personal
                     ‣ +5 billions

                     ‣ make us focus

                     ‣ read our context...




Monday, May 21, 12
mobile
                     ‣ absolutely personal
                     ‣ +5 billions

                     ‣ make us focus

                     ‣ read our context...

                     ‣ ... always...




Monday, May 21, 12
mobile
                     ‣ absolutely personal
                     ‣ +5 billions

                     ‣ make us focus

                     ‣ read our context...

                     ‣ ... always...

                     ‣ ... and everywhere.




Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
everybody
                       wants
                       mobile




Monday, May 21, 12
then... what is the
                         problem?



Monday, May 21, 12
mobile is a
  minefield



                     Photo by World of Good (Flickr)
        Malvinas / Falklands Islands



Monday, May 21, 12
lots of questions

     Photo by wayneandwax (Flickr)
Monday, May 21, 12
we need to learn
                     lots of questions

Monday, May 21, 12
lots of platforms
Monday, May 21, 12
mobile web appears




Monday, May 21, 12
but it’s different




Monday, May 21, 12
but it’s different
                     ‣   slower networks




Monday, May 21, 12
but it’s different
                     ‣ slower networks
                     ‣ higher latency




Monday, May 21, 12
but it’s different
                     ‣ slower networks
                     ‣ higher latency

                     ‣ slower hardware




Monday, May 21, 12
but it’s different
                     ‣ slower networks
                     ‣ higher latency

                     ‣ slower hardware

                     ‣ different browsing experience




Monday, May 21, 12
but it’s different
                     ‣ slower networks
                     ‣ higher latency

                     ‣ slower hardware

                     ‣ different browsing experience

                     ‣ different context




Monday, May 21, 12
but it’s different
                     ‣ slower networks
                     ‣ higher latency

                     ‣ slower hardware

                     ‣ different browsing experience

                     ‣ different context

                     ‣ different behaviors




Monday, May 21, 12
but it’s different
                     ‣ slower networks
                     ‣ higher latency

                     ‣ slower hardware

                     ‣ different browsing experience

                     ‣ different context

                     ‣ different behaviors

                     ‣ different possible networks


Monday, May 21, 12
mobile browsers




Monday, May 21, 12
mobile browsers
                     ‣   too many




Monday, May 21, 12
mobile browsers
                     ‣ too many
                     ‣ (some) too limited




Monday, May 21, 12
mobile browsers
                     ‣ too many
                     ‣ (some) too limited

                     ‣ (some) too innovative




Monday, May 21, 12
mobile browsers
                     ‣ too many
                     ‣ (some) too limited

                     ‣ (some) too innovative

                     ‣ (some) proxy based




Monday, May 21, 12
mobile browsers
                     ‣ too many
                     ‣ (some) too limited

                     ‣ (some) too innovative

                     ‣ (some) proxy based

                     ‣ (most) without documentation




Monday, May 21, 12
mobile browsers
                     ‣ too many
                     ‣ (some) too limited

                     ‣ (some) too innovative

                     ‣ (some) proxy based

                     ‣ (most) without documentation

                     ‣ (most) without a name




Monday, May 21, 12
mobile browsers
                     ‣ too many
                     ‣ (some) too limited

                     ‣ (some) too innovative

                     ‣ (some) proxy based

                     ‣ (most) without documentation

                     ‣ (most) without a name

                     ‣ (most) without debugging tools



Monday, May 21, 12
mobile browsers




Monday, May 21, 12
mobile browsers
                     ‣   (some) focus-based




Monday, May 21, 12
mobile browsers
                     ‣ (some) focus-based
                     ‣ (some) cursor-based




Monday, May 21, 12
mobile browsers
                     ‣ (some) focus-based
                     ‣ (some) cursor-based

                     ‣ (some) touch-based




Monday, May 21, 12
mobile browsers
                     ‣ (some) focus-based
                     ‣ (some) cursor-based

                     ‣ (some) touch-based

                     ‣ (some) multitouch-based




Monday, May 21, 12
mobile browsers
                     ‣ (some) focus-based
                     ‣ (some) cursor-based

                     ‣ (some) touch-based

                     ‣ (some) multitouch-based

                     ‣ (some) with zooming support




Monday, May 21, 12
mobile browsers
                     ‣ (some) focus-based
                     ‣ (some) cursor-based

                     ‣ (some) touch-based

                     ‣ (some) multitouch-based

                     ‣ (some) with zooming support

                     ‣ (most) unknown for web devs




Monday, May 21, 12
some are known




Monday, May 21, 12
some are known
                     ‣ Safari (on iOS)
                     ‣ Opera Mobile (on Android & Symbian)

                     ‣ Firefox (on Android)

                     ‣ Chrome (on Android)

                     ‣ Internet Explorer (on Windows Phone)




Monday, May 21, 12
some are unknown




Monday, May 21, 12
some are unknown
                     ‣ Nokia Browser (on Symbian, S40 & Meego 1.2)
                     ‣ BlackBerry Browser

                     ‣ Android Browser

                     ‣ webOS Browser

                     ‣ Amazon Silk

                     ‣ Bada Browser

                     ‣ Opera Mini

                     ‣ NetFront

                     ‣ Phantom

                     ‣ ...


Monday, May 21, 12
and with different
                        versions...



Monday, May 21, 12
and we can also
                      create native apps
                     -such as phonegap-


Monday, May 21, 12
native
                       vs
                      web


Monday, May 21, 12
native code
                          vs
                      javascript


Monday, May 21, 12
browser
                            vs
                     installed apps
                        & stores

Monday, May 21, 12
what is native?




Monday, May 21, 12
what is a webapp?




Monday, May 21, 12
standars?




Monday, May 21, 12
Photo by Ben Millett (Flickr)
Monday, May 21, 12
Monday, May 21, 12
Are you
         sure?




     Photo by Ricky David (Flickr)
Monday, May 21, 12
What is   ?



Monday, May 21, 12
html5




Monday, May 21, 12
html5
                     ‣   w3c standards (all in draft)




Monday, May 21, 12
html5
                     ‣ w3c standards (all in draft)
                     ‣ some are other w3c standards




Monday, May 21, 12
html5
                     ‣ w3c standards (all in draft)
                     ‣ some are other w3c standards

                     ‣ de-facto standards




Monday, May 21, 12
html5
                     ‣ w3c standards (all in draft)
                     ‣ some are other w3c standards

                     ‣ de-facto standards

                     ‣ w3c ex-standards




Monday, May 21, 12
html5
                     ‣ w3c standards (all in draft)
                     ‣ some are other w3c standards

                     ‣ de-facto standards

                     ‣ w3c ex-standards

                     ‣ everything “new” on the web




Monday, May 21, 12
html version 5?



Monday, May 21, 12
why mobile html5?



Monday, May 21, 12
typeof html5 != boolean




Monday, May 21, 12
some features safe




Monday, May 21, 12
some features only on
              few platforms



Monday, May 21, 12
some features
                     experimental



Monday, May 21, 12
some features with
                         prefixes



Monday, May 21, 12
and what about
                     capabilities today?



Monday, May 21, 12
Monday, May 21, 12
vendors hate
                      developers



Monday, May 21, 12
emulators
                     www.mobilexweb.com/emulators




Monday, May 21, 12
friends
                lots of them

                and with different devices




Monday, May 21, 12
virtual labs

           real devices on real networks




           www.perfectomobile.com   www.deviceanywhere.com

Monday, May 21, 12
debugging tools
            Remote Web Inspector

            • BlackBerry Smartphones 7
            • BlackBerry PlayBook
            • Google Chrome for Android 4
            • Opera Mobile


Monday, May 21, 12
debugging tools




                      iwebinspector.com
Monday, May 21, 12
debugging tools
        Adobe Shadow




           adobe.com/go/shadow

Monday, May 21, 12
users hate
                     developers



Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
mobile
                   web
                 is slow




Picture from Simon Howden freedigitalphotos.net!
Monday, May 21, 12
JS APIs have
                       evolved




Monday, May 21, 12
why?




Monday, May 21, 12
Monday, May 21, 12
mobile html5
                      capabilities
            offline & data storage
            geolocation
            hardware: motion, camera, battery
            drawing apis
            animations and transitions
            phone integration: calls, contacts
            touch and gesture events

Monday, May 21, 12
app.ft.com




Monday, May 21, 12
native web apps



Monday, May 21, 12
Boot2Gecko (B2G)




Monday, May 21, 12
Monday, May 21, 12
architecture



Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
Monday, May 21, 12
let’s see some code



Monday, May 21, 12
Monday, May 21, 12
offline installation




                HTML5   3.0+   2.1+   6.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline installation
                     ‣   Install a package on the device




                HTML5       3.0+   2.1+   6.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline installation
                     ‣ Install a package on the device
                     ‣ Complex to debug / reload




                HTML5     3.0+   2.1+   6.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline installation
                     ‣ Install a package on the device
                     ‣ Complex to debug / reload

                     ‣ Buggy on some platforms




                HTML5     3.0+   2.1+   6.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline installation
                     ‣ Install a package on the device
                     ‣ Complex to debug / reload

                     ‣ Buggy on some platforms

                     ‣ online / offline events




                HTML5     3.0+   2.1+   6.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline installation
                     ‣ Install a package on the device
                     ‣ Complex to debug / reload

                     ‣ Buggy on some platforms

                     ‣ online / offline events

                     ‣ on iOS can be mixed with icons and full-

                      screen webapp metatags




                HTML5    3.0+   2.1+   6.0+   Mobile 11+   5.0+

Monday, May 21, 12
geolocation




             Geolocation   2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
geolocation

                     ‣   GPS, A-GPS, Wi-Fi, cells




             Geolocation    2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
geolocation

                     ‣ GPS, A-GPS, Wi-Fi, cells
                     ‣ (some) force GPS “highAccuracy”




             Geolocation   2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
geolocation

                     ‣ GPS, A-GPS, Wi-Fi, cells
                     ‣ (some) force GPS “highAccuracy”

                     ‣ (some) heading




             Geolocation   2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
geolocation

                     ‣ GPS, A-GPS, Wi-Fi, cells
                     ‣ (some) force GPS “highAccuracy”

                     ‣ (some) heading

                     ‣ once or movement




             Geolocation   2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline web storage




             Web Storage   2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline web storage
                     ‣   persistent and session storage




             Web Storage    2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline web storage
                     ‣ persistent and session storage
                     ‣ key/value (strings)




             Web Storage   2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline web storage
                     ‣ persistent and session storage
                     ‣ key/value (strings)

                     ‣ (some) allow object storage




             Web Storage   2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline web storage
                     ‣ persistent and session storage
                     ‣ key/value (strings)

                     ‣ (some) allow object storage

                     ‣ limit space, non-standard ~5Mb




             Web Storage   2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline web storage
                     ‣ persistent and session storage
                     ‣ key/value (strings)

                     ‣ (some) allow object storage

                     ‣ limit space, non-standard ~5Mb

                     ‣ be careful with private browsing




             Web Storage   2.0+   2.0+   6.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
offline sql storage




              deprecated   2.2+   2.0+   6.0+   Mobile 11+

Monday, May 21, 12
offline sql storage
                     ‣   persistent and session storage




              deprecated    2.2+   2.0+   6.0+   Mobile 11+

Monday, May 21, 12
offline sql storage
                     ‣ persistent and session storage
                     ‣ key/value (strings)




              deprecated   2.2+   2.0+   6.0+   Mobile 11+

Monday, May 21, 12
offline sql storage
                     ‣ persistent and session storage
                     ‣ key/value (strings)

                     ‣ (some) allow object storage




              deprecated   2.2+   2.0+   6.0+   Mobile 11+

Monday, May 21, 12
offline sql storage
                     ‣ persistent and session storage
                     ‣ key/value (strings)

                     ‣ (some) allow object storage

                     ‣ limit space, non-standard ~5Mb




              deprecated   2.2+   2.0+   6.0+   Mobile 11+

Monday, May 21, 12
offline sql storage
                     ‣ persistent and session storage
                     ‣ key/value (strings)

                     ‣ (some) allow object storage

                     ‣ limit space, non-standard ~5Mb

                     ‣ be careful with private browsing




              deprecated   2.2+   2.0+   6.0+   Mobile 11+

Monday, May 21, 12
multimedia API




             Web Storage   3.0+   2.3+   7.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
multimedia API

                     ‣   audio and video tags




             Web Storage    3.0+   2.3+   7.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
multimedia API

                     ‣ audio and video tags
                     ‣ javascript api & events




             Web Storage   3.0+   2.3+   7.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
multimedia API

                     ‣ audio and video tags
                     ‣ javascript api & events

                     ‣ codecs nightmare




             Web Storage   3.0+   2.3+   7.0+   9.0+   Mobile 11+   5.0+

Monday, May 21, 12
2d drawing api (canvas)




                HTML5   1.0+   1.5+   6.0+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
2d drawing api (canvas)

                     ‣   great support




                HTML5       1.0+   1.5+   6.0+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
2d drawing api (canvas)

                     ‣ great support
                     ‣ javascript-based drawing




                HTML5    1.0+   1.5+   6.0+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
2d drawing api (canvas)

                     ‣ great support
                     ‣ javascript-based drawing

                     ‣ (some) allows data URI export




                HTML5    1.0+   1.5+   6.0+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
svg




                     SVG   2.2+   3.0+   4.7+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
svg
                       ‣   old standard




                     SVG      2.2+   3.0+   4.7+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
svg
                       ‣ old standard
                       ‣ scalable vector graphics




                     SVG    2.2+   3.0+   4.7+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
svg
                       ‣ old standard
                       ‣ scalable vector graphics

                       ‣ (some) allows inline <svg> tag




                     SVG    2.2+   3.0+   4.7+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
svg
                       ‣ old standard
                       ‣ scalable vector graphics

                       ‣ (some) allows inline <svg> tag

                       ‣ (some) allows svg as background




                     SVG   2.2+   3.0+   4.7+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
svg
                       ‣ old standard
                       ‣ scalable vector graphics

                       ‣ (some) allows inline <svg> tag

                       ‣ (some) allows svg as background

                       ‣ (some) allows svg as font




                     SVG   2.2+   3.0+   4.7+   9.0+   Mob 10+ / Mini 5   4.0+

Monday, May 21, 12
motion sensors




           DeviceOrientation   4.2+   3.0+   4.7+ (basic)   6.0+ (moz)

Monday, May 21, 12
motion sensors
                     ‣   accelerometer / gyroscope / magnetometer




           DeviceOrientation   4.2+   3.0+   4.7+ (basic)   6.0+ (moz)

Monday, May 21, 12
motion sensors
                     ‣ accelerometer / gyroscope / magnetometer
                     ‣ onorientationchange




           DeviceOrientation   4.2+   3.0+   4.7+ (basic)   6.0+ (moz)

Monday, May 21, 12
motion sensors
                     ‣ accelerometer / gyroscope / magnetometer
                     ‣ onorientationchange

                     ‣ window.orientation




           DeviceOrientation   4.2+   3.0+   4.7+ (basic)   6.0+ (moz)

Monday, May 21, 12
motion sensors
                     ‣ accelerometer / gyroscope / magnetometer
                     ‣ onorientationchange

                     ‣ window.orientation

                     ‣ games, visual effects, pressure detection?




           DeviceOrientation   4.2+   3.0+   4.7+ (basic)   6.0+ (moz)

Monday, May 21, 12
motion sensors
                     ‣ accelerometer / gyroscope / magnetometer
                     ‣ onorientationchange

                     ‣ window.orientation

                     ‣ games, visual effects, pressure detection?



                     mobilexweb.com/samples/ball.html
                     mobilexweb.com/samples/pressure.html




           DeviceOrientation   4.2+   3.0+   4.7+ (basic)   6.0+ (moz)

Monday, May 21, 12
touch events




             Touch events   3.0+   2.1+   6.1+   6.0+

Monday, May 21, 12
touch events
                     ‣   iOS specification




             Touch events   3.0+   2.1+   6.1+   6.0+

Monday, May 21, 12
touch events
                     ‣ iOS specification
                     ‣ some differences between implementations




             Touch events   3.0+   2.1+   6.1+     6.0+

Monday, May 21, 12
touch events
                     ‣ iOS specification
                     ‣ some differences between implementations

                     ‣ (some) multi-touch




             Touch events   3.0+   2.1+   6.1+     6.0+

Monday, May 21, 12
touch events
                     ‣ iOS specification
                     ‣ some differences between implementations

                     ‣ (some) multi-touch

                     ‣ touchstart, touchmove, touchend,

                      touchcancel




             Touch events   3.0+   2.1+   6.1+     6.0+

Monday, May 21, 12
touch events
                     ‣ iOS specification
                     ‣ some differences between implementations

                     ‣ (some) multi-touch

                     ‣ touchstart, touchmove, touchend,

                      touchcancel
                     ‣ (some) touchenter, touchleave




             Touch events   3.0+   2.1+   6.1+     6.0+

Monday, May 21, 12
css3 basic




                     CSS 3   1.0+   1.0+   6.0+   9.0+   10+   6.0+   Anna+

Monday, May 21, 12
css3 basic

                        ‣    basic new styling




                     CSS 3      1.0+   1.0+   6.0+   9.0+   10+   6.0+   Anna+

Monday, May 21, 12
css3 basic

                        ‣ basic new styling
                        ‣ rounded borders, opacity




                     CSS 3   1.0+   1.0+   6.0+   9.0+   10+   6.0+   Anna+

Monday, May 21, 12
css3 basic

                        ‣ basic new styling
                        ‣ rounded borders, opacity

                        ‣ (some) still requires prefix




                     CSS 3   1.0+   1.0+   6.0+   9.0+   10+   6.0+   Anna+

Monday, May 21, 12
css3 basic

                        ‣ basic new styling
                        ‣ rounded borders, opacity

                        ‣ (some) still requires prefix

                        ‣ -webkit, -o, -moz, -ms




                     CSS 3   1.0+   1.0+   6.0+   9.0+   10+   6.0+   Anna+

Monday, May 21, 12
server-sent events




           Server-Sent events   4.1+   Mobile 11+   6.0+

Monday, May 21, 12
server-sent events

                     ‣   EventSource




           Server-Sent events   4.1+   Mobile 11+   6.0+

Monday, May 21, 12
server-sent events

                     ‣ EventSource
                     ‣ reduce AJAX/Comet solutions




           Server-Sent events   4.1+         Mobile 11+   6.0+

Monday, May 21, 12
server-sent events

                     ‣ EventSource
                     ‣ reduce AJAX/Comet solutions

                     ‣ be careful with proxies/3g connections




           Server-Sent events   4.1+           Mobile 11+   6.0+

Monday, May 21, 12
web sockets




               web sockets   4.2+   6.1+   Mobile 11+   6.0+

Monday, May 21, 12
web sockets
                      ‣ Evolution of bi-directional
                       communication




               web sockets   4.2+     6.1+       Mobile 11+   6.0+

Monday, May 21, 12
web sockets
                      ‣ Evolution of bi-directional
                       communication
                      ‣ reduce AJAX/Comet solutions




               web sockets   4.2+   6.1+      Mobile 11+   6.0+

Monday, May 21, 12
web sockets
                      ‣ Evolution of bi-directional
                       communication
                      ‣ reduce AJAX/Comet solutions

                      ‣ be careful with proxies/3g connections




               web sockets   4.2+    6.1+       Mobile 11+   6.0+

Monday, May 21, 12
web sockets
                      ‣ Evolution of bi-directional
                       communication
                      ‣ reduce AJAX/Comet solutions

                      ‣ be careful with proxies/3g connections

                      ‣ special server




               web sockets   4.2+    6.1+       Mobile 11+   6.0+

Monday, May 21, 12
web sockets
                      ‣ Evolution of bi-directional
                       communication
                      ‣ reduce AJAX/Comet solutions

                      ‣ be careful with proxies/3g connections

                      ‣ special server

                      ‣ standard changed months ago




               web sockets   4.2+    6.1+       Mobile 11+   6.0+

Monday, May 21, 12
web workers




              web workers   6.0+   Mobile 11+   6.0+

Monday, May 21, 12
web workers

                     ‣   threading in JavaScript




              web workers              6.0+        Mobile 11+   6.0+

Monday, May 21, 12
web workers

                     ‣ threading in JavaScript
                     ‣ important for performance




              web workers           6.0+      Mobile 11+   6.0+

Monday, May 21, 12
web workers

                     ‣ threading in JavaScript
                     ‣ important for performance

                     ‣ worker without DOM manipulation




              web workers          6.0+     Mobile 11+   6.0+

Monday, May 21, 12
what is just
                     starting...?



Monday, May 21, 12
apis starting to appear




Monday, May 21, 12
apis starting to appear
                     ‣   XMLHttpRequest 2 - Partially on latest versions




Monday, May 21, 12
apis starting to appear
                     ‣ XMLHttpRequest 2 - Partially on latest versions
                     ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox




Monday, May 21, 12
apis starting to appear
                     ‣ XMLHttpRequest 2 - Partially on latest versions
                     ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox

                     ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF




Monday, May 21, 12
apis starting to appear
                     ‣ XMLHttpRequest 2 - Partially on latest versions
                     ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox

                     ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF

                     ‣ Web Sockets - Android 3.0




Monday, May 21, 12
apis starting to appear
                     ‣ XMLHttpRequest 2 - Partially on latest versions
                     ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox

                     ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF

                     ‣ Web Sockets - Android 3.0

                     ‣ Navigation Timing API - IE 9.0, Android 4, Chrome, FF 7




Monday, May 21, 12
apis starting to appear
                     ‣ XMLHttpRequest 2 - Partially on latest versions
                     ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox

                     ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF

                     ‣ Web Sockets - Android 3.0

                     ‣ Navigation Timing API - IE 9.0, Android 4, Chrome, FF 7

                     ‣ Notifications API - Firefox 6, PlayBook 2.0




Monday, May 21, 12
apis starting to appear
                     ‣ XMLHttpRequest 2 - Partially on latest versions
                     ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox

                     ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF

                     ‣ Web Sockets - Android 3.0

                     ‣ Navigation Timing API - IE 9.0, Android 4, Chrome, FF 7

                     ‣ Notifications API - Firefox 6, PlayBook 2.0

                     ‣ IndexedDB - Firefox 6.0, Chrome




Monday, May 21, 12
Monday, May 21, 12
and what to expect
                       in the future?



Monday, May 21, 12
for the near future...




Monday, May 21, 12
for the near future...
                     ‣   Augmented Reality on the web




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API

                     ‣ Page Visibility API




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API

                     ‣ Page Visibility API

                     ‣ Full Screen API




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API

                     ‣ Page Visibility API

                     ‣ Full Screen API

                     ‣ Animation Timing API




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API

                     ‣ Page Visibility API

                     ‣ Full Screen API

                     ‣ Animation Timing API

                     ‣ Speech detection




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API

                     ‣ Page Visibility API

                     ‣ Full Screen API

                     ‣ Animation Timing API

                     ‣ Speech detection

                     ‣ WebNFC




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API

                     ‣ Page Visibility API

                     ‣ Full Screen API

                     ‣ Animation Timing API

                     ‣ Speech detection

                     ‣ WebNFC

                     ‣ Native integration API




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API

                     ‣ Page Visibility API

                     ‣ Full Screen API

                     ‣ Animation Timing API

                     ‣ Speech detection

                     ‣ WebNFC

                     ‣ Native integration API

                     ‣ Contacts and Calendar API




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API

                     ‣ Page Visibility API

                     ‣ Full Screen API

                     ‣ Animation Timing API

                     ‣ Speech detection

                     ‣ WebNFC

                     ‣ Native integration API

                     ‣ Contacts and Calendar API

                     ‣ Messaging API




Monday, May 21, 12
for the near future...
                     ‣ Augmented Reality on the web
                     ‣ Camera API

                     ‣ Page Visibility API

                     ‣ Full Screen API

                     ‣ Animation Timing API

                     ‣ Speech detection

                     ‣ WebNFC

                     ‣ Native integration API

                     ‣ Contacts and Calendar API

                     ‣ Messaging API

                     ‣ Orientation Lock



Monday, May 21, 12
some last advices



Monday, May 21, 12
Monday, May 21, 12
performance,
                     performance




Monday, May 21, 12
good practices




Monday, May 21, 12
don’t be fanatic




  photo by Kurt Christensen
           (flickr)
Monday, May 21, 12
be multiplatform




Monday, May 21, 12
be




                     futurefriend.ly
Monday, May 21, 12
you can reach a good
                              thank you!
                          experience
                     firt.mobi               50% books
                firtman@gmail.com           20% trainings
                   twitter: @firt           Just Ask me!
               www.mobilexweb.com




    Pictures)from)freedigitalphotos.net)
Monday, May 21, 12
1 of 215

Recommended

Breaking HTML5 limits with Mobile JavaScript by
Breaking HTML5 limits with Mobile JavaScriptBreaking HTML5 limits with Mobile JavaScript
Breaking HTML5 limits with Mobile JavaScriptMaximiliano Firtman
22.1K views141 slides
Maximiliano Firtman by
Maximiliano FirtmanMaximiliano Firtman
Maximiliano FirtmanColombia3.0
472 views140 slides
Wikisym2008: Wiki For Kids by
Wikisym2008: Wiki For KidsWikisym2008: Wiki For Kids
Wikisym2008: Wiki For KidsNikolay Yaremko
429 views20 slides
Maso200708 Miss Pattern by
Maso200708 Miss PatternMaso200708 Miss Pattern
Maso200708 Miss Patternkyutae.kang
536 views4 slides
Copy Of Fthb Presentation2 by
Copy Of Fthb Presentation2Copy Of Fthb Presentation2
Copy Of Fthb Presentation2peglover
470 views30 slides
David Scott Cosmetics by
David Scott CosmeticsDavid Scott Cosmetics
David Scott CosmeticsDavid Scott
680 views42 slides

More Related Content

Viewers also liked

Going Once, Twice... Tech that Brings in More Money for Charity by
Going Once, Twice... Tech that Brings in More Money for CharityGoing Once, Twice... Tech that Brings in More Money for Charity
Going Once, Twice... Tech that Brings in More Money for CharityMichelle Bruno
436 views9 slides
Premier Global - Solutions and Values by
Premier Global - Solutions and ValuesPremier Global - Solutions and Values
Premier Global - Solutions and Valuespremierglobal
638 views10 slides
Sharing Superheroes - J.Boye Philadelphia 2012 Keynote by
Sharing Superheroes - J.Boye Philadelphia 2012 KeynoteSharing Superheroes - J.Boye Philadelphia 2012 Keynote
Sharing Superheroes - J.Boye Philadelphia 2012 KeynoteMichael Fienen
862 views21 slides
Memperbaharui Semangat Perubahan by
Memperbaharui Semangat PerubahanMemperbaharui Semangat Perubahan
Memperbaharui Semangat Perubahanpriarto
376 views14 slides
From User-centered Design to Activity-centered Design: The Paradigm Shift of ... by
From User-centered Design to Activity-centered Design: The Paradigm Shift of ...From User-centered Design to Activity-centered Design: The Paradigm Shift of ...
From User-centered Design to Activity-centered Design: The Paradigm Shift of ...悠識學院
880 views11 slides
Vvd Ppt Presentatie Infra Debatavond Regio Krimpenerwaard by
Vvd Ppt Presentatie Infra Debatavond Regio KrimpenerwaardVvd Ppt Presentatie Infra Debatavond Regio Krimpenerwaard
Vvd Ppt Presentatie Infra Debatavond Regio KrimpenerwaardLex_Hofstra
708 views15 slides

Viewers also liked(17)

Going Once, Twice... Tech that Brings in More Money for Charity by Michelle Bruno
Going Once, Twice... Tech that Brings in More Money for CharityGoing Once, Twice... Tech that Brings in More Money for Charity
Going Once, Twice... Tech that Brings in More Money for Charity
Michelle Bruno436 views
Premier Global - Solutions and Values by premierglobal
Premier Global - Solutions and ValuesPremier Global - Solutions and Values
Premier Global - Solutions and Values
premierglobal638 views
Sharing Superheroes - J.Boye Philadelphia 2012 Keynote by Michael Fienen
Sharing Superheroes - J.Boye Philadelphia 2012 KeynoteSharing Superheroes - J.Boye Philadelphia 2012 Keynote
Sharing Superheroes - J.Boye Philadelphia 2012 Keynote
Michael Fienen862 views
Memperbaharui Semangat Perubahan by priarto
Memperbaharui Semangat PerubahanMemperbaharui Semangat Perubahan
Memperbaharui Semangat Perubahan
priarto376 views
From User-centered Design to Activity-centered Design: The Paradigm Shift of ... by 悠識學院
From User-centered Design to Activity-centered Design: The Paradigm Shift of ...From User-centered Design to Activity-centered Design: The Paradigm Shift of ...
From User-centered Design to Activity-centered Design: The Paradigm Shift of ...
悠識學院880 views
Vvd Ppt Presentatie Infra Debatavond Regio Krimpenerwaard by Lex_Hofstra
Vvd Ppt Presentatie Infra Debatavond Regio KrimpenerwaardVvd Ppt Presentatie Infra Debatavond Regio Krimpenerwaard
Vvd Ppt Presentatie Infra Debatavond Regio Krimpenerwaard
Lex_Hofstra708 views
The value of a good story jm 2010 by James Mitchell
The value of a good story   jm 2010The value of a good story   jm 2010
The value of a good story jm 2010
James Mitchell1.7K views
E Biz Cluster Sept 19 M&A by mwrjh
E Biz Cluster Sept 19 M&AE Biz Cluster Sept 19 M&A
E Biz Cluster Sept 19 M&A
mwrjh254 views
feliz navidad 2008/2009 by arqueomaria
feliz navidad 2008/2009feliz navidad 2008/2009
feliz navidad 2008/2009
arqueomaria365 views
Location Based Marketing from Media2Go by hometown
Location Based Marketing from Media2GoLocation Based Marketing from Media2Go
Location Based Marketing from Media2Go
hometown1K views
Bl Consulting Ltd I Scala Pm Overview by guest408cb05
Bl Consulting Ltd I Scala Pm OverviewBl Consulting Ltd I Scala Pm Overview
Bl Consulting Ltd I Scala Pm Overview
guest408cb05306 views
Chemistry Jeopardy by ginaarnold
Chemistry JeopardyChemistry Jeopardy
Chemistry Jeopardy
ginaarnold643 views
Greg Linch - Publish2 contest by Greg Linch
Greg Linch - Publish2 contestGreg Linch - Publish2 contest
Greg Linch - Publish2 contest
Greg Linch634 views
Aim Capacity Building Workshop X007 E Adrian Bailey by Mary Rose
Aim Capacity Building Workshop  X007 E  Adrian BaileyAim Capacity Building Workshop  X007 E  Adrian Bailey
Aim Capacity Building Workshop X007 E Adrian Bailey
Mary Rose584 views
Fha Presentation 2009 by peglover
Fha Presentation 2009Fha Presentation 2009
Fha Presentation 2009
peglover1.1K views

More from Maximiliano Firtman

ChatGPT and AI for Web Developers by
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web DevelopersMaximiliano Firtman
195 views82 slides
PWA Cheat Sheet 2023 by
PWA Cheat Sheet 2023PWA Cheat Sheet 2023
PWA Cheat Sheet 2023Maximiliano Firtman
197 views136 slides
Hacking Web Performance en Español - JSConf México 2020 by
Hacking Web Performance en Español - JSConf México 2020Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020Maximiliano Firtman
277 views110 slides
The modern PWA Cheat Sheet by
The modern PWA Cheat SheetThe modern PWA Cheat Sheet
The modern PWA Cheat SheetMaximiliano Firtman
3.1K views93 slides
Hacking Web Performance 2019 by
Hacking Web Performance 2019Hacking Web Performance 2019
Hacking Web Performance 2019Maximiliano Firtman
1.1K views130 slides
Progressive Web Apps Keynote by
Progressive Web Apps KeynoteProgressive Web Apps Keynote
Progressive Web Apps KeynoteMaximiliano Firtman
228 views91 slides

More from Maximiliano Firtman(20)

Hacking Web Performance en Español - JSConf México 2020 by Maximiliano Firtman
Hacking Web Performance en Español - JSConf México 2020Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020
La Web Salta al Mundo Físico - Web meets Physical World (spanish) by Maximiliano Firtman
La Web Salta al Mundo Físico - Web meets Physical World (spanish)La Web Salta al Mundo Físico - Web meets Physical World (spanish)
La Web Salta al Mundo Físico - Web meets Physical World (spanish)
Extreme Web Performance for Mobile Devices by Maximiliano Firtman
Extreme Web Performance for Mobile Devices Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices
Maximiliano Firtman4.2K views
Extreme Web Performance for Mobile Device Fluent 2015 by Maximiliano Firtman
Extreme Web Performance for Mobile Device Fluent 2015Extreme Web Performance for Mobile Device Fluent 2015
Extreme Web Performance for Mobile Device Fluent 2015
Maximiliano Firtman2.9K views
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014 by Maximiliano Firtman
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Maximiliano Firtman2.6K views
Extreme Web Performance for Mobile Devices - Velocity NY by Maximiliano Firtman
Extreme Web Performance for Mobile Devices - Velocity NYExtreme Web Performance for Mobile Devices - Velocity NY
Extreme Web Performance for Mobile Devices - Velocity NY
Maximiliano Firtman3.2K views
Extreme Web Performance for Mobile Devices by Maximiliano Firtman
Extreme Web Performance for Mobile DevicesExtreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices
Maximiliano Firtman78.7K views

Recently uploaded

Unit 1_Lecture 2_Physical Design of IoT.pdf by
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdfStephenTec
15 views36 slides
PharoJS - Zürich Smalltalk Group Meetup November 2023 by
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
139 views17 slides
SAP Automation Using Bar Code and FIORI.pdf by
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdfVirendra Rai, PMP
25 views38 slides
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe by
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe
2024: A Travel Odyssey The Role of Generative AI in the Tourism UniverseSimone Puorto
13 views61 slides
STPI OctaNE CoE Brochure.pdf by
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdfmadhurjyapb
14 views1 slide
virtual reality.pptx by
virtual reality.pptxvirtual reality.pptx
virtual reality.pptxG036GaikwadSnehal
18 views15 slides

Recently uploaded(20)

Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec15 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi139 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe by Simone Puorto
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe
Simone Puorto13 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10345 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab23 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software317 views

JSConf - Mobile HTML5

  • 1. May, 19th, 2012 Buenos Aires, AR Maximiliano Firtman @firt mobile+web developer MOBILE HTML5 & THE NEW APIS Monday, May 21, 12
  • 2. who am I? @firt mobile+web developer mobilexweb.com Monday, May 21, 12
  • 5. Cursos y Libros HTML5 Android iOS BlackBerry Windows Phone ITMaster.com.ar @ITMasterCursos Monday, May 21, 12
  • 6. ITMaster.com.ar @ITMasterCursos Monday, May 21, 12
  • 7. books Image from my house Monday, May 21, 12
  • 17. mobile ‣ absolutely personal Monday, May 21, 12
  • 18. mobile ‣ absolutely personal ‣ +5 billions Monday, May 21, 12
  • 19. mobile ‣ absolutely personal ‣ +5 billions ‣ make us focus Monday, May 21, 12
  • 20. mobile ‣ absolutely personal ‣ +5 billions ‣ make us focus ‣ read our context... Monday, May 21, 12
  • 21. mobile ‣ absolutely personal ‣ +5 billions ‣ make us focus ‣ read our context... ‣ ... always... Monday, May 21, 12
  • 22. mobile ‣ absolutely personal ‣ +5 billions ‣ make us focus ‣ read our context... ‣ ... always... ‣ ... and everywhere. Monday, May 21, 12
  • 25. everybody wants mobile Monday, May 21, 12
  • 26. then... what is the problem? Monday, May 21, 12
  • 27. mobile is a minefield Photo by World of Good (Flickr) Malvinas / Falklands Islands Monday, May 21, 12
  • 28. lots of questions Photo by wayneandwax (Flickr) Monday, May 21, 12
  • 29. we need to learn lots of questions Monday, May 21, 12
  • 33. but it’s different ‣ slower networks Monday, May 21, 12
  • 34. but it’s different ‣ slower networks ‣ higher latency Monday, May 21, 12
  • 35. but it’s different ‣ slower networks ‣ higher latency ‣ slower hardware Monday, May 21, 12
  • 36. but it’s different ‣ slower networks ‣ higher latency ‣ slower hardware ‣ different browsing experience Monday, May 21, 12
  • 37. but it’s different ‣ slower networks ‣ higher latency ‣ slower hardware ‣ different browsing experience ‣ different context Monday, May 21, 12
  • 38. but it’s different ‣ slower networks ‣ higher latency ‣ slower hardware ‣ different browsing experience ‣ different context ‣ different behaviors Monday, May 21, 12
  • 39. but it’s different ‣ slower networks ‣ higher latency ‣ slower hardware ‣ different browsing experience ‣ different context ‣ different behaviors ‣ different possible networks Monday, May 21, 12
  • 41. mobile browsers ‣ too many Monday, May 21, 12
  • 42. mobile browsers ‣ too many ‣ (some) too limited Monday, May 21, 12
  • 43. mobile browsers ‣ too many ‣ (some) too limited ‣ (some) too innovative Monday, May 21, 12
  • 44. mobile browsers ‣ too many ‣ (some) too limited ‣ (some) too innovative ‣ (some) proxy based Monday, May 21, 12
  • 45. mobile browsers ‣ too many ‣ (some) too limited ‣ (some) too innovative ‣ (some) proxy based ‣ (most) without documentation Monday, May 21, 12
  • 46. mobile browsers ‣ too many ‣ (some) too limited ‣ (some) too innovative ‣ (some) proxy based ‣ (most) without documentation ‣ (most) without a name Monday, May 21, 12
  • 47. mobile browsers ‣ too many ‣ (some) too limited ‣ (some) too innovative ‣ (some) proxy based ‣ (most) without documentation ‣ (most) without a name ‣ (most) without debugging tools Monday, May 21, 12
  • 49. mobile browsers ‣ (some) focus-based Monday, May 21, 12
  • 50. mobile browsers ‣ (some) focus-based ‣ (some) cursor-based Monday, May 21, 12
  • 51. mobile browsers ‣ (some) focus-based ‣ (some) cursor-based ‣ (some) touch-based Monday, May 21, 12
  • 52. mobile browsers ‣ (some) focus-based ‣ (some) cursor-based ‣ (some) touch-based ‣ (some) multitouch-based Monday, May 21, 12
  • 53. mobile browsers ‣ (some) focus-based ‣ (some) cursor-based ‣ (some) touch-based ‣ (some) multitouch-based ‣ (some) with zooming support Monday, May 21, 12
  • 54. mobile browsers ‣ (some) focus-based ‣ (some) cursor-based ‣ (some) touch-based ‣ (some) multitouch-based ‣ (some) with zooming support ‣ (most) unknown for web devs Monday, May 21, 12
  • 56. some are known ‣ Safari (on iOS) ‣ Opera Mobile (on Android & Symbian) ‣ Firefox (on Android) ‣ Chrome (on Android) ‣ Internet Explorer (on Windows Phone) Monday, May 21, 12
  • 58. some are unknown ‣ Nokia Browser (on Symbian, S40 & Meego 1.2) ‣ BlackBerry Browser ‣ Android Browser ‣ webOS Browser ‣ Amazon Silk ‣ Bada Browser ‣ Opera Mini ‣ NetFront ‣ Phantom ‣ ... Monday, May 21, 12
  • 59. and with different versions... Monday, May 21, 12
  • 60. and we can also create native apps -such as phonegap- Monday, May 21, 12
  • 61. native vs web Monday, May 21, 12
  • 62. native code vs javascript Monday, May 21, 12
  • 63. browser vs installed apps & stores Monday, May 21, 12
  • 65. what is a webapp? Monday, May 21, 12
  • 67. Photo by Ben Millett (Flickr) Monday, May 21, 12
  • 69. Are you sure? Photo by Ricky David (Flickr) Monday, May 21, 12
  • 70. What is ? Monday, May 21, 12
  • 72. html5 ‣ w3c standards (all in draft) Monday, May 21, 12
  • 73. html5 ‣ w3c standards (all in draft) ‣ some are other w3c standards Monday, May 21, 12
  • 74. html5 ‣ w3c standards (all in draft) ‣ some are other w3c standards ‣ de-facto standards Monday, May 21, 12
  • 75. html5 ‣ w3c standards (all in draft) ‣ some are other w3c standards ‣ de-facto standards ‣ w3c ex-standards Monday, May 21, 12
  • 76. html5 ‣ w3c standards (all in draft) ‣ some are other w3c standards ‣ de-facto standards ‣ w3c ex-standards ‣ everything “new” on the web Monday, May 21, 12
  • 79. typeof html5 != boolean Monday, May 21, 12
  • 81. some features only on few platforms Monday, May 21, 12
  • 82. some features experimental Monday, May 21, 12
  • 83. some features with prefixes Monday, May 21, 12
  • 84. and what about capabilities today? Monday, May 21, 12
  • 86. vendors hate developers Monday, May 21, 12
  • 87. emulators www.mobilexweb.com/emulators Monday, May 21, 12
  • 88. friends lots of them and with different devices Monday, May 21, 12
  • 89. virtual labs real devices on real networks www.perfectomobile.com www.deviceanywhere.com Monday, May 21, 12
  • 90. debugging tools Remote Web Inspector • BlackBerry Smartphones 7 • BlackBerry PlayBook • Google Chrome for Android 4 • Opera Mobile Monday, May 21, 12
  • 91. debugging tools iwebinspector.com Monday, May 21, 12
  • 92. debugging tools Adobe Shadow adobe.com/go/shadow Monday, May 21, 12
  • 93. users hate developers Monday, May 21, 12
  • 98. mobile web is slow Picture from Simon Howden freedigitalphotos.net! Monday, May 21, 12
  • 99. JS APIs have evolved Monday, May 21, 12
  • 102. mobile html5 capabilities offline & data storage geolocation hardware: motion, camera, battery drawing apis animations and transitions phone integration: calls, contacts touch and gesture events Monday, May 21, 12
  • 104. native web apps Monday, May 21, 12
  • 115. let’s see some code Monday, May 21, 12
  • 117. offline installation HTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 118. offline installation ‣ Install a package on the device HTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 119. offline installation ‣ Install a package on the device ‣ Complex to debug / reload HTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 120. offline installation ‣ Install a package on the device ‣ Complex to debug / reload ‣ Buggy on some platforms HTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 121. offline installation ‣ Install a package on the device ‣ Complex to debug / reload ‣ Buggy on some platforms ‣ online / offline events HTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 122. offline installation ‣ Install a package on the device ‣ Complex to debug / reload ‣ Buggy on some platforms ‣ online / offline events ‣ on iOS can be mixed with icons and full- screen webapp metatags HTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 123. geolocation Geolocation 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 124. geolocation ‣ GPS, A-GPS, Wi-Fi, cells Geolocation 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 125. geolocation ‣ GPS, A-GPS, Wi-Fi, cells ‣ (some) force GPS “highAccuracy” Geolocation 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 126. geolocation ‣ GPS, A-GPS, Wi-Fi, cells ‣ (some) force GPS “highAccuracy” ‣ (some) heading Geolocation 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 127. geolocation ‣ GPS, A-GPS, Wi-Fi, cells ‣ (some) force GPS “highAccuracy” ‣ (some) heading ‣ once or movement Geolocation 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 128. offline web storage Web Storage 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 129. offline web storage ‣ persistent and session storage Web Storage 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 130. offline web storage ‣ persistent and session storage ‣ key/value (strings) Web Storage 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 131. offline web storage ‣ persistent and session storage ‣ key/value (strings) ‣ (some) allow object storage Web Storage 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 132. offline web storage ‣ persistent and session storage ‣ key/value (strings) ‣ (some) allow object storage ‣ limit space, non-standard ~5Mb Web Storage 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 133. offline web storage ‣ persistent and session storage ‣ key/value (strings) ‣ (some) allow object storage ‣ limit space, non-standard ~5Mb ‣ be careful with private browsing Web Storage 2.0+ 2.0+ 6.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 134. offline sql storage deprecated 2.2+ 2.0+ 6.0+ Mobile 11+ Monday, May 21, 12
  • 135. offline sql storage ‣ persistent and session storage deprecated 2.2+ 2.0+ 6.0+ Mobile 11+ Monday, May 21, 12
  • 136. offline sql storage ‣ persistent and session storage ‣ key/value (strings) deprecated 2.2+ 2.0+ 6.0+ Mobile 11+ Monday, May 21, 12
  • 137. offline sql storage ‣ persistent and session storage ‣ key/value (strings) ‣ (some) allow object storage deprecated 2.2+ 2.0+ 6.0+ Mobile 11+ Monday, May 21, 12
  • 138. offline sql storage ‣ persistent and session storage ‣ key/value (strings) ‣ (some) allow object storage ‣ limit space, non-standard ~5Mb deprecated 2.2+ 2.0+ 6.0+ Mobile 11+ Monday, May 21, 12
  • 139. offline sql storage ‣ persistent and session storage ‣ key/value (strings) ‣ (some) allow object storage ‣ limit space, non-standard ~5Mb ‣ be careful with private browsing deprecated 2.2+ 2.0+ 6.0+ Mobile 11+ Monday, May 21, 12
  • 140. multimedia API Web Storage 3.0+ 2.3+ 7.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 141. multimedia API ‣ audio and video tags Web Storage 3.0+ 2.3+ 7.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 142. multimedia API ‣ audio and video tags ‣ javascript api & events Web Storage 3.0+ 2.3+ 7.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 143. multimedia API ‣ audio and video tags ‣ javascript api & events ‣ codecs nightmare Web Storage 3.0+ 2.3+ 7.0+ 9.0+ Mobile 11+ 5.0+ Monday, May 21, 12
  • 144. 2d drawing api (canvas) HTML5 1.0+ 1.5+ 6.0+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 145. 2d drawing api (canvas) ‣ great support HTML5 1.0+ 1.5+ 6.0+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 146. 2d drawing api (canvas) ‣ great support ‣ javascript-based drawing HTML5 1.0+ 1.5+ 6.0+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 147. 2d drawing api (canvas) ‣ great support ‣ javascript-based drawing ‣ (some) allows data URI export HTML5 1.0+ 1.5+ 6.0+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 148. svg SVG 2.2+ 3.0+ 4.7+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 149. svg ‣ old standard SVG 2.2+ 3.0+ 4.7+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 150. svg ‣ old standard ‣ scalable vector graphics SVG 2.2+ 3.0+ 4.7+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 151. svg ‣ old standard ‣ scalable vector graphics ‣ (some) allows inline <svg> tag SVG 2.2+ 3.0+ 4.7+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 152. svg ‣ old standard ‣ scalable vector graphics ‣ (some) allows inline <svg> tag ‣ (some) allows svg as background SVG 2.2+ 3.0+ 4.7+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 153. svg ‣ old standard ‣ scalable vector graphics ‣ (some) allows inline <svg> tag ‣ (some) allows svg as background ‣ (some) allows svg as font SVG 2.2+ 3.0+ 4.7+ 9.0+ Mob 10+ / Mini 5 4.0+ Monday, May 21, 12
  • 154. motion sensors DeviceOrientation 4.2+ 3.0+ 4.7+ (basic) 6.0+ (moz) Monday, May 21, 12
  • 155. motion sensors ‣ accelerometer / gyroscope / magnetometer DeviceOrientation 4.2+ 3.0+ 4.7+ (basic) 6.0+ (moz) Monday, May 21, 12
  • 156. motion sensors ‣ accelerometer / gyroscope / magnetometer ‣ onorientationchange DeviceOrientation 4.2+ 3.0+ 4.7+ (basic) 6.0+ (moz) Monday, May 21, 12
  • 157. motion sensors ‣ accelerometer / gyroscope / magnetometer ‣ onorientationchange ‣ window.orientation DeviceOrientation 4.2+ 3.0+ 4.7+ (basic) 6.0+ (moz) Monday, May 21, 12
  • 158. motion sensors ‣ accelerometer / gyroscope / magnetometer ‣ onorientationchange ‣ window.orientation ‣ games, visual effects, pressure detection? DeviceOrientation 4.2+ 3.0+ 4.7+ (basic) 6.0+ (moz) Monday, May 21, 12
  • 159. motion sensors ‣ accelerometer / gyroscope / magnetometer ‣ onorientationchange ‣ window.orientation ‣ games, visual effects, pressure detection? mobilexweb.com/samples/ball.html mobilexweb.com/samples/pressure.html DeviceOrientation 4.2+ 3.0+ 4.7+ (basic) 6.0+ (moz) Monday, May 21, 12
  • 160. touch events Touch events 3.0+ 2.1+ 6.1+ 6.0+ Monday, May 21, 12
  • 161. touch events ‣ iOS specification Touch events 3.0+ 2.1+ 6.1+ 6.0+ Monday, May 21, 12
  • 162. touch events ‣ iOS specification ‣ some differences between implementations Touch events 3.0+ 2.1+ 6.1+ 6.0+ Monday, May 21, 12
  • 163. touch events ‣ iOS specification ‣ some differences between implementations ‣ (some) multi-touch Touch events 3.0+ 2.1+ 6.1+ 6.0+ Monday, May 21, 12
  • 164. touch events ‣ iOS specification ‣ some differences between implementations ‣ (some) multi-touch ‣ touchstart, touchmove, touchend, touchcancel Touch events 3.0+ 2.1+ 6.1+ 6.0+ Monday, May 21, 12
  • 165. touch events ‣ iOS specification ‣ some differences between implementations ‣ (some) multi-touch ‣ touchstart, touchmove, touchend, touchcancel ‣ (some) touchenter, touchleave Touch events 3.0+ 2.1+ 6.1+ 6.0+ Monday, May 21, 12
  • 166. css3 basic CSS 3 1.0+ 1.0+ 6.0+ 9.0+ 10+ 6.0+ Anna+ Monday, May 21, 12
  • 167. css3 basic ‣ basic new styling CSS 3 1.0+ 1.0+ 6.0+ 9.0+ 10+ 6.0+ Anna+ Monday, May 21, 12
  • 168. css3 basic ‣ basic new styling ‣ rounded borders, opacity CSS 3 1.0+ 1.0+ 6.0+ 9.0+ 10+ 6.0+ Anna+ Monday, May 21, 12
  • 169. css3 basic ‣ basic new styling ‣ rounded borders, opacity ‣ (some) still requires prefix CSS 3 1.0+ 1.0+ 6.0+ 9.0+ 10+ 6.0+ Anna+ Monday, May 21, 12
  • 170. css3 basic ‣ basic new styling ‣ rounded borders, opacity ‣ (some) still requires prefix ‣ -webkit, -o, -moz, -ms CSS 3 1.0+ 1.0+ 6.0+ 9.0+ 10+ 6.0+ Anna+ Monday, May 21, 12
  • 171. server-sent events Server-Sent events 4.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 172. server-sent events ‣ EventSource Server-Sent events 4.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 173. server-sent events ‣ EventSource ‣ reduce AJAX/Comet solutions Server-Sent events 4.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 174. server-sent events ‣ EventSource ‣ reduce AJAX/Comet solutions ‣ be careful with proxies/3g connections Server-Sent events 4.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 175. web sockets web sockets 4.2+ 6.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 176. web sockets ‣ Evolution of bi-directional communication web sockets 4.2+ 6.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 177. web sockets ‣ Evolution of bi-directional communication ‣ reduce AJAX/Comet solutions web sockets 4.2+ 6.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 178. web sockets ‣ Evolution of bi-directional communication ‣ reduce AJAX/Comet solutions ‣ be careful with proxies/3g connections web sockets 4.2+ 6.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 179. web sockets ‣ Evolution of bi-directional communication ‣ reduce AJAX/Comet solutions ‣ be careful with proxies/3g connections ‣ special server web sockets 4.2+ 6.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 180. web sockets ‣ Evolution of bi-directional communication ‣ reduce AJAX/Comet solutions ‣ be careful with proxies/3g connections ‣ special server ‣ standard changed months ago web sockets 4.2+ 6.1+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 181. web workers web workers 6.0+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 182. web workers ‣ threading in JavaScript web workers 6.0+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 183. web workers ‣ threading in JavaScript ‣ important for performance web workers 6.0+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 184. web workers ‣ threading in JavaScript ‣ important for performance ‣ worker without DOM manipulation web workers 6.0+ Mobile 11+ 6.0+ Monday, May 21, 12
  • 185. what is just starting...? Monday, May 21, 12
  • 186. apis starting to appear Monday, May 21, 12
  • 187. apis starting to appear ‣ XMLHttpRequest 2 - Partially on latest versions Monday, May 21, 12
  • 188. apis starting to appear ‣ XMLHttpRequest 2 - Partially on latest versions ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox Monday, May 21, 12
  • 189. apis starting to appear ‣ XMLHttpRequest 2 - Partially on latest versions ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF Monday, May 21, 12
  • 190. apis starting to appear ‣ XMLHttpRequest 2 - Partially on latest versions ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF ‣ Web Sockets - Android 3.0 Monday, May 21, 12
  • 191. apis starting to appear ‣ XMLHttpRequest 2 - Partially on latest versions ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF ‣ Web Sockets - Android 3.0 ‣ Navigation Timing API - IE 9.0, Android 4, Chrome, FF 7 Monday, May 21, 12
  • 192. apis starting to appear ‣ XMLHttpRequest 2 - Partially on latest versions ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF ‣ Web Sockets - Android 3.0 ‣ Navigation Timing API - IE 9.0, Android 4, Chrome, FF 7 ‣ Notifications API - Firefox 6, PlayBook 2.0 Monday, May 21, 12
  • 193. apis starting to appear ‣ XMLHttpRequest 2 - Partially on latest versions ‣ Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox ‣ Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF ‣ Web Sockets - Android 3.0 ‣ Navigation Timing API - IE 9.0, Android 4, Chrome, FF 7 ‣ Notifications API - Firefox 6, PlayBook 2.0 ‣ IndexedDB - Firefox 6.0, Chrome Monday, May 21, 12
  • 195. and what to expect in the future? Monday, May 21, 12
  • 196. for the near future... Monday, May 21, 12
  • 197. for the near future... ‣ Augmented Reality on the web Monday, May 21, 12
  • 198. for the near future... ‣ Augmented Reality on the web ‣ Camera API Monday, May 21, 12
  • 199. for the near future... ‣ Augmented Reality on the web ‣ Camera API ‣ Page Visibility API Monday, May 21, 12
  • 200. for the near future... ‣ Augmented Reality on the web ‣ Camera API ‣ Page Visibility API ‣ Full Screen API Monday, May 21, 12
  • 201. for the near future... ‣ Augmented Reality on the web ‣ Camera API ‣ Page Visibility API ‣ Full Screen API ‣ Animation Timing API Monday, May 21, 12
  • 202. for the near future... ‣ Augmented Reality on the web ‣ Camera API ‣ Page Visibility API ‣ Full Screen API ‣ Animation Timing API ‣ Speech detection Monday, May 21, 12
  • 203. for the near future... ‣ Augmented Reality on the web ‣ Camera API ‣ Page Visibility API ‣ Full Screen API ‣ Animation Timing API ‣ Speech detection ‣ WebNFC Monday, May 21, 12
  • 204. for the near future... ‣ Augmented Reality on the web ‣ Camera API ‣ Page Visibility API ‣ Full Screen API ‣ Animation Timing API ‣ Speech detection ‣ WebNFC ‣ Native integration API Monday, May 21, 12
  • 205. for the near future... ‣ Augmented Reality on the web ‣ Camera API ‣ Page Visibility API ‣ Full Screen API ‣ Animation Timing API ‣ Speech detection ‣ WebNFC ‣ Native integration API ‣ Contacts and Calendar API Monday, May 21, 12
  • 206. for the near future... ‣ Augmented Reality on the web ‣ Camera API ‣ Page Visibility API ‣ Full Screen API ‣ Animation Timing API ‣ Speech detection ‣ WebNFC ‣ Native integration API ‣ Contacts and Calendar API ‣ Messaging API Monday, May 21, 12
  • 207. for the near future... ‣ Augmented Reality on the web ‣ Camera API ‣ Page Visibility API ‣ Full Screen API ‣ Animation Timing API ‣ Speech detection ‣ WebNFC ‣ Native integration API ‣ Contacts and Calendar API ‣ Messaging API ‣ Orientation Lock Monday, May 21, 12
  • 210. performance, performance Monday, May 21, 12
  • 212. don’t be fanatic photo by Kurt Christensen (flickr) Monday, May 21, 12
  • 214. be futurefriend.ly Monday, May 21, 12
  • 215. you can reach a good thank you! experience firt.mobi 50% books firtman@gmail.com 20% trainings twitter: @firt Just Ask me! www.mobilexweb.com Pictures)from)freedigitalphotos.net) Monday, May 21, 12