SLIDE 1 Max Firtman @firt
MULTIPLATFORM, PROMISES AND HTML5
Nov, 7th, 2012 San Francisco, USA
Wednesday, November 7, 12
SLIDE 2
who am I?
Wednesday, November 7, 12
SLIDE 3 mobile+web developer
who am I?
@firt
Wednesday, November 7, 12
SLIDE 4
where?
Wednesday, November 7, 12
SLIDE 5
speaker
Wednesday, November 7, 12
SLIDE 6 Wednesday, November 7, 12
SLIDE 7 Image from my house
books
Wednesday, November 7, 12
SLIDE 8 Wednesday, November 7, 12
SLIDE 9 Wednesday, November 7, 12
SLIDE 10 Wednesday, November 7, 12
SLIDE 11 50% off
Code: AUTHD
at oreilly.com
Wednesday, November 7, 12
SLIDE 12 Wednesday, November 7, 12
SLIDE 13
Let’s start
Wednesday, November 7, 12
SLIDE 14
the track
Wednesday, November 7, 12
SLIDE 15 Cross Platform mobile
10.30 Maximiliano Firtman
Multiplatform, promises and HTML5
11.40 James Pearce
Building social apps for all mobile platforms
13.30 Pete LePage
The Mobile Web Developer’s Tool belt
14.40 Christophe Coenraets
Cross-Platform Mobile Apps with PhoneGap
16.00 Robert Shilston
Developing the FT web app
Wednesday, November 7, 12
SLIDE 16
how many...?
Wednesday, November 7, 12
SLIDE 17
why mobile?
Wednesday, November 7, 12
SLIDE 18
why cross platform?
Wednesday, November 7, 12
SLIDE 19 mobile is a minefield
Photo by World of Good (Flickr)
Malvinas / Falklands Islands
Wednesday, November 7, 12
SLIDE 20
lots of platforms
Wednesday, November 7, 12
SLIDE 21 Wednesday, November 7, 12
SLIDE 22 Hey you!
I have a BlackBerry
Wednesday, November 7, 12
SLIDE 23 Hey you!
I have a Nokia
Wednesday, November 7, 12
SLIDE 24 Hey you!
I have a Windows Phone
Wednesday, November 7, 12
SLIDE 25 Hey you!
I have a Surface
Wednesday, November 7, 12
SLIDE 26 Hey you!
I’m using Firefox
Wednesday, November 7, 12
SLIDE 27 Hey you!
I have a TouchPad and browse with Internet Explorer!
Wednesday, November 7, 12
SLIDE 28
Discrimination
Wednesday, November 7, 12
SLIDE 29
Frustration
Wednesday, November 7, 12
SLIDE 30 Wednesday, November 7, 12
SLIDE 31
market share
Wednesday, November 7, 12
SLIDE 32
cross platform
Wednesday, November 7, 12
SLIDE 33 Wednesday, November 7, 12
SLIDE 34
cross form-factor
Wednesday, November 7, 12
SLIDE 35 Wednesday, November 7, 12
SLIDE 36 Wednesday, November 7, 12
SLIDE 37 Wednesday, November 7, 12
SLIDE 38 Source: informationweek
Wednesday, November 7, 12
SLIDE 39
cross version
Wednesday, November 7, 12
SLIDE 40 http://developer.android.com/about/dashboards
Wednesday, November 7, 12
SLIDE 41 Wednesday, November 7, 12
SLIDE 42
cross form-factor
Wednesday, November 7, 12
SLIDE 43
QQVGA QVGA WQVGA FWQVGA LQVGA HVGA nHD FWXGA Sq.HD XGA WXGA WUXGA QXGA WQXGA WVGA FWVGA VGA DVGA WDVGA QHD WSVGA HD
Wednesday, November 7, 12
SLIDE 44 Wednesday, November 7, 12
SLIDE 45 Wednesday, November 7, 12
SLIDE 46 Wednesday, November 7, 12
SLIDE 47 Wednesday, November 7, 12
SLIDE 48 Wednesday, November 7, 12
SLIDE 49 Wednesday, November 7, 12
SLIDE 50 Wednesday, November 7, 12
SLIDE 51 Wednesday, November 7, 12
SLIDE 52 Wednesday, November 7, 12
SLIDE 53 Give me a break!
Gold museum, Bogotá, Colombia
Wednesday, November 7, 12
SLIDE 54 mobile apps
- 1. distribution channel
- 2. development platform
- 3. native vs. web?
Wednesday, November 7, 12
SLIDE 55
distribution
Wednesday, November 7, 12
SLIDE 56 distribution
Wednesday, November 7, 12
SLIDE 57 distribution
- web: browser - url
- installed webapp
Wednesday, November 7, 12
SLIDE 58 distribution
- web: browser - url
- installed webapp
- apps
Wednesday, November 7, 12
SLIDE 59 development
Native SDKs Cross-compilers/runtime
Wednesday, November 7, 12
SLIDE 60 development
Native SDKs Cross-compilers/runtime
Wednesday, November 7, 12
SLIDE 61 development
- web: browser - url
- installed webapp
Native SDKs Cross-compilers/runtime
Wednesday, November 7, 12
SLIDE 62 development
- web: browser - url
- installed webapp
- apps
Native SDKs Cross-compilers/runtime
Wednesday, November 7, 12
SLIDE 63
native sdks
Wednesday, November 7, 12
SLIDE 64 native sdks
Wednesday, November 7, 12
SLIDE 65 native sdks
- no cross platform
- no code sharing
Wednesday, November 7, 12
SLIDE 66 native sdks
- no cross platform
- no code sharing
- high cost
Wednesday, November 7, 12
SLIDE 67 native sdks
- no cross platform
- no code sharing
- high cost
- high performance
Wednesday, November 7, 12
SLIDE 68 native sdks
- no cross platform
- no code sharing
- high cost
- high performance
- high flexibility
Wednesday, November 7, 12
SLIDE 69
cross compilers / runtimes
Wednesday, November 7, 12
SLIDE 70 cross compilers / runtimes
Wednesday, November 7, 12
SLIDE 71 cross compilers / runtimes
- medium cross platform
- code sharing
Wednesday, November 7, 12
SLIDE 72 cross compilers / runtimes
- medium cross platform
- code sharing
- lot of promises
Wednesday, November 7, 12
SLIDE 73 cross compilers / runtimes
- medium cross platform
- code sharing
- lot of promises
- performance analysis
Wednesday, November 7, 12
SLIDE 74 cross compilers / runtimes
- medium cross platform
- code sharing
- lot of promises
- performance analysis
- risk analysis
Wednesday, November 7, 12
SLIDE 75
cross compilers / runtimes
...
Wednesday, November 7, 12
SLIDE 76
native vs web
Wednesday, November 7, 12
SLIDE 77
native code vs javascript
Wednesday, November 7, 12
SLIDE 78
native ui elements vs html/css
Wednesday, November 7, 12
SLIDE 79
browser vs installed apps & stores
Wednesday, November 7, 12
SLIDE 80 Wednesday, November 7, 12
SLIDE 81 Photo by Ben Millett (Flickr)
Wednesday, November 7, 12
SLIDE 82 Are you sure?
Photo by Ricky David (Flickr)
Wednesday, November 7, 12
SLIDE 83
What is ?
Wednesday, November 7, 12
SLIDE 84
html5
Wednesday, November 7, 12
SLIDE 85
html5
Wednesday, November 7, 12
SLIDE 86
advantages
Wednesday, November 7, 12
SLIDE 87 advantages
Wednesday, November 7, 12
SLIDE 88 advantages
Wednesday, November 7, 12
SLIDE 89 advantages
- multiplataforma
- apis
- know how
Wednesday, November 7, 12
SLIDE 90 advantages
- multiplataforma
- apis
- know how
- “future friendly”
Wednesday, November 7, 12
SLIDE 91
disadvantages
Wednesday, November 7, 12
SLIDE 92 disadvantages
Wednesday, November 7, 12
SLIDE 93 disadvantages
- multiplataform
- underestimation
Wednesday, November 7, 12
SLIDE 94 disadvantages
- multiplataform
- underestimation
- performance
Wednesday, November 7, 12
SLIDE 95 disadvantages
- multiplataform
- underestimation
- performance
- native ui
Wednesday, November 7, 12
SLIDE 96
typeof html5 != boolean
Wednesday, November 7, 12
SLIDE 97
some features safe
Wednesday, November 7, 12
SLIDE 98
some features only on few platforms
Wednesday, November 7, 12
SLIDE 99
some features experimental
Wednesday, November 7, 12
SLIDE 100
some features with prefixes
Wednesday, November 7, 12
SLIDE 101 Wednesday, November 7, 12
SLIDE 102
second class developers
Wednesday, November 7, 12
SLIDE 103
- vague, non-existent or outdated info
second class developers
Wednesday, November 7, 12
SLIDE 104
- vague, non-existent or outdated info
- new features discovered by third-parties
second class developers
Wednesday, November 7, 12
SLIDE 105
- vague, non-existent or outdated info
- new features discovered by third-parties
- lack of samples
second class developers
Wednesday, November 7, 12
SLIDE 106
- vague, non-existent or outdated info
- new features discovered by third-parties
- lack of samples
- no developer tools on some platforms
second class developers
Wednesday, November 7, 12
SLIDE 107 Picture from Simon Howden freedigitalphotos.net!
mobile html5 is slow
Wednesday, November 7, 12
SLIDE 108
performance
Wednesday, November 7, 12
SLIDE 109
performance
Wednesday, November 7, 12
SLIDE 110
- do we need jQuery?
- performance best practices
performance
Wednesday, November 7, 12
SLIDE 111
- do we need jQuery?
- performance best practices
- JIT compilers
performance
Wednesday, November 7, 12
SLIDE 112
- do we need jQuery?
- performance best practices
- JIT compilers
- hardware acceleration
performance
Wednesday, November 7, 12
SLIDE 113 battery consumption
Who Killed My Battery ~ mobilexweb.com/go/battery
5 10 15 20 25 30 35 40 45 50
3G setup baidu live.com gmail wall st. journal youtube ebay picasa cnn bbc amazon microsoft engadget natgeo nytimes yahoo aol weather facebook wordpress blogger go.com imdb tumblr wikipedia apple Energy (Joules)
Figure 6: Energy consumption of top websites
Wednesday, November 7, 12
SLIDE 114 battery consumption
Apple has no mobile website Amazon consumes 17% energy in a non used JS jQuery.js ~ 4 joules (0,02%)
~5000 jQuery parsings per charge
Who Killed My Battery ~ mobilexweb.com/go/battery
Wednesday, November 7, 12
SLIDE 115 Wednesday, November 7, 12
SLIDE 116
now the fun part
Wednesday, November 7, 12
SLIDE 117 html5
websites => url installed webapps => url and store? native webapps (aka hybrid) => store
Wednesday, November 7, 12
SLIDE 118 native webapps
BlackBerry WebWorks
Wednesday, November 7, 12
SLIDE 119 native webapps
Windows 8 HTML5 dev
Wednesday, November 7, 12
SLIDE 120 native webapps
firefox apps
Wednesday, November 7, 12
SLIDE 121 native webapps
chrome apps
Wednesday, November 7, 12
SLIDE 122
native webapps
Wednesday, November 7, 12
SLIDE 123 Wednesday, November 7, 12
SLIDE 124 Wednesday, November 7, 12
SLIDE 125 Wednesday, November 7, 12
SLIDE 126 Wednesday, November 7, 12
SLIDE 127 Wednesday, November 7, 12
SLIDE 128 Wednesday, November 7, 12
SLIDE 129 Wednesday, November 7, 12
SLIDE 130
live demos!
Wednesday, November 7, 12
SLIDE 131
so...
Wednesday, November 7, 12
SLIDE 132
conclusions
Wednesday, November 7, 12
SLIDE 133 conclusions
- Multiplatform is a key for success
Wednesday, November 7, 12
SLIDE 134 conclusions
- Multiplatform is a key for success
- HTML5 is good for cross platform on some situations
Wednesday, November 7, 12
SLIDE 135 conclusions
- Multiplatform is a key for success
- HTML5 is good for cross platform on some situations
- HTML5 is not a heaven
Wednesday, November 7, 12
SLIDE 136 conclusions
- Multiplatform is a key for success
- HTML5 is good for cross platform on some situations
- HTML5 is not a heaven
- write once, deploy anywhere is... a promise
Wednesday, November 7, 12
SLIDE 137 conclusions
- Multiplatform is a key for success
- HTML5 is good for cross platform on some situations
- HTML5 is not a heaven
- write once, deploy anywhere is... a promise
- However, it’s better than 10 SDKs or than create only
elite users
Wednesday, November 7, 12
SLIDE 138 conclusions
- Multiplatform is a key for success
- HTML5 is good for cross platform on some situations
- HTML5 is not a heaven
- write once, deploy anywhere is... a promise
- However, it’s better than 10 SDKs or than create only
elite users
- On some situations you will need native SDKs
Wednesday, November 7, 12
SLIDE 139 conclusions
- Multiplatform is a key for success
- HTML5 is good for cross platform on some situations
- HTML5 is not a heaven
- write once, deploy anywhere is... a promise
- However, it’s better than 10 SDKs or than create only
elite users
- On some situations you will need native SDKs
- Some problems will be gone in the future
Wednesday, November 7, 12
SLIDE 140 conclusions
- Multiplatform is a key for success
- HTML5 is good for cross platform on some situations
- HTML5 is not a heaven
- write once, deploy anywhere is... a promise
- However, it’s better than 10 SDKs or than create only
elite users
- On some situations you will need native SDKs
- Some problems will be gone in the future
- Use the best technology for every situation
Wednesday, November 7, 12
SLIDE 141
some last advices
Wednesday, November 7, 12
SLIDE 142 Wednesday, November 7, 12
SLIDE 143
performance, performance
Wednesday, November 7, 12
SLIDE 144
good practices
Wednesday, November 7, 12
SLIDE 145 don’t be fanatic
photo by Kurt Christensen (flickr)
Wednesday, November 7, 12
SLIDE 146
be multiplatform
Wednesday, November 7, 12
SLIDE 147
be futurefriend.ly
Wednesday, November 7, 12
SLIDE 148 you can reach a good experience
Pictures)from)freedigitalphotos.net)
thanks!
firt.mobi firtman@gmail.com twitter: @firt www.mobilexweb.com
Wednesday, November 7, 12