SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
Mobile WPO


 Presented by Tim Kadlec




                           http://www.flickr.com/photos/vlastula/300102949/
Sunday, May 29, 2011
It’s a Mobile World



2                                 http://www.flickr.com/photos/ivyfield/4731067532/
Sunday, May 29, 2011
5.6 billion mobile subscriptions
                       6.9 billion people

3                          http://www.flickr.com/photos/wwworks/2222523486/in/photostream/
Sunday, May 29, 2011
More smart phones and
                       tablets shipped than PCs

4                                   http://www.flickr.com/photos/wwworks/4472384764/
Sunday, May 29, 2011
Mobile traffic will grow by 26x in 5 years




5                                http://www.flickr.com/photos/epsos/5591761716/
Sunday, May 29, 2011
25% mobile only in US
                       22% mobile only in UK

6                                  http://www.flickr.com/photos/perspective/49671901/
Sunday, May 29, 2011
Things have changed...

7                                   http://www.flickr.com/photos/spine/2261612821/
Sunday, May 29, 2011
In the last twelve months, customers
             around the world have ordered more than
             US $1 billion of products from Amazon
             using a mobile device.
                                  - Jeff Bezos (July 2010)




8                      Source: http://phx.corporate-ir.net/phoenix.zhtml?c=97664&p=irol-newsArticle&ID=1451041&highlight=
Sunday, May 29, 2011
2010: eBay mobile transactions were > $2 billion

            2009: 600 million




9    Source: http://files.shareholder.com/downloads/ebay/1156981139x0x435896/9bd99676-b782-4784-87de-2899abe14a6d/eBay_Q42010EarningsRelease_Draft011911_FINAL.pdf

Sunday, May 29, 2011
If you’re not optimizing, you’re
             throwing money away




10                     http://www.flickr.com/photos/lisa_yarost/1592436195/in/photostream/
Sunday, May 29, 2011
Mobile users want fast experiences!


11                                http://www.flickr.com/photos/thatguyfromcchs08/2300190277/
Sunday, May 29, 2011
58% of mobile users expect websites
               to load as quickly, almost as quickly
               or faster on their mobile phone,
               compared to the computer they use
               at home




12
Sunday, May 29, 2011
73% of users are willing to wait a
               minute or less to complete a simple
               transaction - like checking their bank
               balance




13
Sunday, May 29, 2011
14                     Source: The business case for assuring the customer mobile Web experience
Sunday, May 29, 2011
So how are we doing?

15                                http://www.flickr.com/photos/deepphoto/463648209/
Sunday, May 29, 2011
HTTP Archive Mobile

16                                  http://mobile.httparchive.org/index.php
Sunday, May 29, 2011
17                     Source: http://mobile.httparchive.org/trends.php
Sunday, May 29, 2011
18                     Source: http://mobile.httparchive.org/trends.php
Sunday, May 29, 2011
Retail and Banking




19                         Source: http://www.gomez.com/benchmarks/sitemap/?region=US_Benchmarks
Sunday, May 29, 2011
Definitely room for improvement

20                                    http://www.flickr.com/photos/jonathansuzuki/2198667658/
Sunday, May 29, 2011
This Is Gonna Hurt




21                              http://www.flickr.com/photos/scottfeldstein/372141970/
Sunday, May 29, 2011
22                     http://www.pcworld.com/zoom?id=167391&page=1&zoomIdx=1
Sunday, May 29, 2011
Latency sucks

23                        http://developer.yahoo.com/blogs/ydn/posts/2009/10/a_engineers_gui/
Sunday, May 29, 2011
Just how bad is it?




24                         http://www.yuiblog.com/blog/2010/04/08/analyzing-bandwidth-and-latency/
Sunday, May 29, 2011
Uh oh!

25                     http://developer.yahoo.com/blogs/ydn/posts/2009/10/a_engineers_gui/
Sunday, May 29, 2011
Reduce Requests



26
Sunday, May 29, 2011
Replace images with Data URIs




27                      http://www.flickr.com/photos/orinrobertjohn/2189064194/
Sunday, May 29, 2011
They’re a little ugly...

     data:image/
     png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAASCAMAAACQGyXoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZ
     SBJbWFnZVJlYWR5ccllPAAAAUdQTFRFFxUOJiMMFBIOkYsCjIYDioQDGxkNk40CYVwHNDALgHoENTILHRoNJSIMb
     WgFnJYBnpcBJCEMiYMDKygMPzwKWlUHREAJSUUJlo8CgXsEkIoCGBYNmJECIh8NXFgHHx0NExEOp6AAcWwFjYcD
     RkMJcm0Fgn0EHRsNUEwIY14GpJ0AcGoFIiAMT0sITEgJKCUMHBoNpp8Al5ECjogCa2YGaWQGIB0Nd3IFmZMBFhMOJ
     yQMGhgNiIIDWVQHOjcKLSoLIyAMODQKKicMVVEIPToKd3EFQj4KenQEaGQGS0cJh4EDlY8CoJkBfHcEZWAGaGMG
     hX8DZ2IGo5wAi4UDopsBlY4CeHIFRUEJXFcHdG8FKSYMeHMEmpMBV1MISkYJfnkEf3oEc24FnZcBVFAIeXQEQ0AJNj
     MLmJIBYl0Hn5gBVlEIqKEAEhAOjBZoxgAAAG10Uk5T/////////////////////////////////////////////////////////////////////////
     ///////////////////////////////////////////////////////////////////////
     AC221EsAAAEWSURBVHjabNHlVwMxDADw3u1kbGPK3NhwGe7uvuE+3En+/8/k2h6sQD70pf3l9aUNQ0Q9dj5/
     WWjFv8EQI2kAaJvA/
     7WTcKr513kgL9UkTcpar9En6ljHttBVgBFL6D4VeiI8TUAL1+ljMAQugxOZopPne3MWqY4LMCoavuEKUY3yoRC8kJYL2
     FNnXCtCwaZL/QBB0mvw3YZXuF6dSC4Z4ynqgHRwl7anTzNZ4jFojJzTVaB96y4Fwx925iKp6Doy
     +XpzL354tvauaMJVKzRH66eCnqzULh8MYP+BguEm/hu46H2EOOKkgvYr/8nZ8tHbA9XhZiM+L8kpaJrOry/uuFRK
     +78n+DPNjVo1at4Hu2PuyZcAAwA2KbSDyyYFcAAAAABJRU5ErkJggg==




28
Sunday, May 29, 2011
...but they don’t have to be hard

29                     http://www.nczonline.net/blog/2009/11/03/automatic-data-uri-embedding-in-css-files/
Sunday, May 29, 2011
java -jar cssembed-x.y.z.jar -o styles_new.css styles.css




30
Sunday, May 29, 2011
Inline JS & CSS
                        (but be smart about it)




31
Sunday, May 29, 2011
m.bing.com

                       Desktop: 93kB
                       iPad: 59kB
                       iPhone: 198kb
                       iPhone repeat: 30kb




32                               http://www.stevesouders.com/blog/2011/03/14/mobile-comparison-of-top-11/
Sunday, May 29, 2011
_load:function(b){
                          var a=null;
                          if(localStorage)
                             try{a=localStorage.getItem(b)}
                          catch(c){}
                          return a
                       }



33
Sunday, May 29, 2011
<style data-rms="save" id="CUX.Keyframes.B8625FEE"
         rel="stylesheet" type="text/css">
         .....
         </style>




34
Sunday, May 29, 2011
<script type="text/javascript">
         RMS.Load('CUX.Keyframes.B8625FEE')
         </script>




35
Sunday, May 29, 2011
Javascript on Desktop




36                           Source: http://ie.microsoft.com/testdrive/benchmarks/sunspider/default.html
Sunday, May 29, 2011
Javascript on Mobile




37                             Source: http://jeftek.com/1942/motorola-xoom-sunspider-results/
Sunday, May 29, 2011
Write Better Javascript
                                                   (duh)




38                       http://www.amazon.com/Performance-JavaScript-Faster-Application-Interfaces/dp/059680279X
Sunday, May 29, 2011
Don’t parse JS until needed


                       1kB of JS = 1ms



39                          Source: http://code.google.com/speed/page-speed/docs/mobile.html
Sunday, May 29, 2011
Use a script loader
               <script>
                 $LAB
                 .script("myScript.js")
                 .script("bonusScript.js");
               </script>

               http://labjs.com/

               <script>
                 $script(“myScript.js”);
                 $script(“bonusScript.js”);
               </script>

               http://dustindiaz.com/scriptjs




40
Sunday, May 29, 2011
Lazy-loading JS
               <html>
               ...
               <script id="lazy">
               // Make sure you strip out (or replace) comment blocks in your JavaScript first.
               /*
               JavaScript of lazy module
               */
               </script>

               <script>
                 function lazyLoad() {
                   var lazyElement = document.getElementById('lazy');
                   var lazyElementBody = lazyElement.innerHTML;
                   var jsCode = stripOutCommentBlock(lazyElementBody);
                   eval(jsCode);
                }
               </script>

               <div onclick=lazyLoad()> Lazy Load </div>
               </html>




41                           Source: http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html
Sunday, May 29, 2011
Prefer touch over click
                                 300/500ms delay for click
                                 events

                                 Penalty is consistent cross-
                                 platform

                                 Remember - perception is
                                 important!




42                                       Source: http://pcapperf.appspot.com/fastbutton
Sunday, May 29, 2011
Make use of AppCache



43
Sunday, May 29, 2011
CACHE MANIFEST
                       someJS.js
                       someMoreJS.js
                       styles.css
                       /images/myGoodSide.png
                       /images/myBadSide.png


                       <html manifest="mySite.appcache">

                       AddType text/cache-manifest .appcache


                             Simple example
44
Sunday, May 29, 2011
CACHE MANIFEST

                       CACHE
                       someJS.js

                       NETWORK
                       login.php

                       FALLBACK
                       /online.php /offline.php



                       A bit more complicated
45
Sunday, May 29, 2011
Confess.js




46                              https://github.com/jamesgpearce/confess
Sunday, May 29, 2011
Confess.js


         phantomjs confess.js http://functionsource.com




47
Sunday, May 29, 2011
CACHE MANIFEST

            # This manifest was created by confess.js, http://github.com/jamesgpearce/
            confess
            #
            # Time: Wed Apr 13 2011 15:40:27 GMT-0700 (PDT)
            # URL: http://functionsource.com
            # UA: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/533.3
            (KHTML, like Gecko) PhantomJS/1.1.0 Safari/533.3
            #
            # Any console output generated by this page or app is shown immediately
            below. You'll need to remove this to create a valid manifest syntax.
            # [Start of console output]
            # [End of console output]

            CACHE:
            /javascripts/lib/jquery.js
            /javascripts/lib/underscore.js
            /javascripts/lib/backbone.js
            ........
            http://functionsource.com/images/icons/rss.png
            http://functionsource.com/images/icons/podcast.png
            http://functionsource.com/images/icons/firehose.png

            NETWORK:
            *
Sunday, May 29, 2011
A few AppCache resources

          http://www.html5rocks.com/tutorials/
          appcache/beginner/

          http://appcachefacts.info/




49
Sunday, May 29, 2011
Test. Rinse. Repeat.

50                                http://www.flickr.com/photos/jurvetson/2798315677/
Sunday, May 29, 2011
Let’s look at some tools

51                                   http://www.flickr.com/photos/olibac/560079597/
Sunday, May 29, 2011
Page Speed Online




52
Sunday, May 29, 2011
Sunday, May 29, 2011
Sunday, May 29, 2011
Charles Proxy

55
Sunday, May 29, 2011
56
Sunday, May 29, 2011
Blaze.io

57
Sunday, May 29, 2011
Sunday, May 29, 2011
Mobile Performance Bookmarklet




59
Sunday, May 29, 2011
Jdrop
60
Sunday, May 29, 2011
61
Sunday, May 29, 2011
We need more data!



62
Sunday, May 29, 2011
It took our community almost ten years to
            generate meaningful data around regular
            web performance. We don’t have that
            luxury with the mobile internet.
                                          - Joshua Bixby




63         Source: http://www.webperformancetoday.com/2010/07/22/mobile-web-performance-desperately-seeking-data/
Sunday, May 29, 2011
Experiment. Create. Share.




64
Sunday, May 29, 2011
Thank you!

   Tim Kadlec
   http://www.timkadlec.com
   Twitter: @tkadlec




Sunday, May 29, 2011

Weitere ähnliche Inhalte

Andere mochten auch

Marthapacheco actividad1 2mapac
Marthapacheco actividad1 2mapacMarthapacheco actividad1 2mapac
Marthapacheco actividad1 2mapacMarthika Pacheco
 
Die neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
Die neuen Features der 1&1 Do-It-Yourself Homepage im ÜberblickDie neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
Die neuen Features der 1&1 Do-It-Yourself Homepage im Überblick1&1
 
Manual: Whatsapp en Tablet
Manual: Whatsapp en TabletManual: Whatsapp en Tablet
Manual: Whatsapp en TabletPlatinum
 
Lect.02.09.13
Lect.02.09.13Lect.02.09.13
Lect.02.09.13h_tixid
 
GWT 2014: Emergency Conference - 01 Introduzione
GWT 2014: Emergency Conference - 01 IntroduzioneGWT 2014: Emergency Conference - 01 Introduzione
GWT 2014: Emergency Conference - 01 IntroduzionePlanetek Italia Srl
 
CLICKNL kick-off Built Environment - FUTURE METROPOLIS
CLICKNL kick-off Built Environment - FUTURE METROPOLISCLICKNL kick-off Built Environment - FUTURE METROPOLIS
CLICKNL kick-off Built Environment - FUTURE METROPOLISCLICKNL
 
Diseño Instruccional E-learning
Diseño Instruccional E-learningDiseño Instruccional E-learning
Diseño Instruccional E-learningGustavo Davila
 
Strategies for Overcoming Stress, Anxiety and Fear
Strategies for Overcoming Stress, Anxiety and FearStrategies for Overcoming Stress, Anxiety and Fear
Strategies for Overcoming Stress, Anxiety and FearHawaiiNaturopathic
 
Estudio sobre el uso de los medios sociales en sector de la automoción en España
Estudio sobre el uso de los medios sociales en sector de la automoción en EspañaEstudio sobre el uso de los medios sociales en sector de la automoción en España
Estudio sobre el uso de los medios sociales en sector de la automoción en EspañaDigital PR España
 
Pp de los establos mantenimiento
Pp de los establos  mantenimientoPp de los establos  mantenimiento
Pp de los establos mantenimientoFrancesca Perez
 
Apuntes didactica lp
Apuntes didactica lpApuntes didactica lp
Apuntes didactica lpXisca BQ
 
Adolescència 1
Adolescència 1Adolescència 1
Adolescència 1CVA
 
Submission & Joy (Ecclesiastes 8)
Submission & Joy (Ecclesiastes 8)Submission & Joy (Ecclesiastes 8)
Submission & Joy (Ecclesiastes 8)Dr. Rick Griffith
 
Discrimen Ley #100
Discrimen Ley #100Discrimen Ley #100
Discrimen Ley #100guest54cfb
 

Andere mochten auch (20)

Marthapacheco actividad1 2mapac
Marthapacheco actividad1 2mapacMarthapacheco actividad1 2mapac
Marthapacheco actividad1 2mapac
 
Die neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
Die neuen Features der 1&1 Do-It-Yourself Homepage im ÜberblickDie neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
Die neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
 
Entendiendo al e-shopper
Entendiendo al e-shopperEntendiendo al e-shopper
Entendiendo al e-shopper
 
Manual: Whatsapp en Tablet
Manual: Whatsapp en TabletManual: Whatsapp en Tablet
Manual: Whatsapp en Tablet
 
case-study-actelion
case-study-actelioncase-study-actelion
case-study-actelion
 
Lect.02.09.13
Lect.02.09.13Lect.02.09.13
Lect.02.09.13
 
GWT 2014: Emergency Conference - 01 Introduzione
GWT 2014: Emergency Conference - 01 IntroduzioneGWT 2014: Emergency Conference - 01 Introduzione
GWT 2014: Emergency Conference - 01 Introduzione
 
CLICKNL kick-off Built Environment - FUTURE METROPOLIS
CLICKNL kick-off Built Environment - FUTURE METROPOLISCLICKNL kick-off Built Environment - FUTURE METROPOLIS
CLICKNL kick-off Built Environment - FUTURE METROPOLIS
 
Diseño Instruccional E-learning
Diseño Instruccional E-learningDiseño Instruccional E-learning
Diseño Instruccional E-learning
 
Strategies for Overcoming Stress, Anxiety and Fear
Strategies for Overcoming Stress, Anxiety and FearStrategies for Overcoming Stress, Anxiety and Fear
Strategies for Overcoming Stress, Anxiety and Fear
 
Red de Sensores ZigBee - RTLS y Automatización
Red de Sensores ZigBee - RTLS y AutomatizaciónRed de Sensores ZigBee - RTLS y Automatización
Red de Sensores ZigBee - RTLS y Automatización
 
Estudio sobre el uso de los medios sociales en sector de la automoción en España
Estudio sobre el uso de los medios sociales en sector de la automoción en EspañaEstudio sobre el uso de los medios sociales en sector de la automoción en España
Estudio sobre el uso de los medios sociales en sector de la automoción en España
 
Pp de los establos mantenimiento
Pp de los establos  mantenimientoPp de los establos  mantenimiento
Pp de los establos mantenimiento
 
Apuntes didactica lp
Apuntes didactica lpApuntes didactica lp
Apuntes didactica lp
 
Klem
KlemKlem
Klem
 
Adolescència 1
Adolescència 1Adolescència 1
Adolescència 1
 
Are we there yet?
Are we there yet?Are we there yet?
Are we there yet?
 
Sylter Gästeführer
Sylter GästeführerSylter Gästeführer
Sylter Gästeführer
 
Submission & Joy (Ecclesiastes 8)
Submission & Joy (Ecclesiastes 8)Submission & Joy (Ecclesiastes 8)
Submission & Joy (Ecclesiastes 8)
 
Discrimen Ley #100
Discrimen Ley #100Discrimen Ley #100
Discrimen Ley #100
 

Ähnlich wie Mobile WPO

EduWeb - Building a Responsive Website for the Presidential Debate
EduWeb - Building a Responsive Website for the Presidential DebateEduWeb - Building a Responsive Website for the Presidential Debate
EduWeb - Building a Responsive Website for the Presidential DebateJon Liu
 
HTML5/CSS3 @ Baidu
HTML5/CSS3 @ BaiduHTML5/CSS3 @ Baidu
HTML5/CSS3 @ BaiduZi Bin Cheah
 
Ember.js - scratching the surface
Ember.js - scratching the surfaceEmber.js - scratching the surface
Ember.js - scratching the surfaceUģis Ozols
 
Product Owner Challenge 3.0 (Agile Cambridge 2016)
Product Owner Challenge 3.0 (Agile Cambridge 2016)Product Owner Challenge 3.0 (Agile Cambridge 2016)
Product Owner Challenge 3.0 (Agile Cambridge 2016)Michael Tarnowski
 
Big Social Broadband: Life after second bubble
Big Social Broadband: Life after second bubbleBig Social Broadband: Life after second bubble
Big Social Broadband: Life after second bubbleJosef Šlerka
 
WordPress Houston Meetup - Using WordPress as a CMS
WordPress Houston Meetup - Using WordPress as a CMSWordPress Houston Meetup - Using WordPress as a CMS
WordPress Houston Meetup - Using WordPress as a CMSChris Olbekson
 
NodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time WebNodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time WebJakub Nesetril
 
(31 July 2013) iOS Basic Development Day 2 Human interface design
(31 July 2013) iOS Basic Development Day 2 Human interface design (31 July 2013) iOS Basic Development Day 2 Human interface design
(31 July 2013) iOS Basic Development Day 2 Human interface design Eakapong Kattiya
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software DevelopmentZsolt Fabok
 
npm: Modularizing your JavaScript development
npm: Modularizing your JavaScript developmentnpm: Modularizing your JavaScript development
npm: Modularizing your JavaScript developmentRuy Adorno
 
Going Mobile
Going MobileGoing Mobile
Going MobileStephen G
 
Using Technology Effectively with Gifted Learners
Using Technology Effectively with Gifted LearnersUsing Technology Effectively with Gifted Learners
Using Technology Effectively with Gifted Learnerssmwatt
 
web标准化交流会上海站bobby分享
web标准化交流会上海站bobby分享web标准化交流会上海站bobby分享
web标准化交流会上海站bobby分享裕波 周
 
web标准化交流会bobby分享
web标准化交流会bobby分享web标准化交流会bobby分享
web标准化交流会bobby分享裕波 周
 
ETSI Hell's Kitchen Debate, Nice 2009
ETSI Hell's Kitchen Debate, Nice 2009ETSI Hell's Kitchen Debate, Nice 2009
ETSI Hell's Kitchen Debate, Nice 2009Paul Downey
 
"IA Thinking" Workshop at Open-I Seminar 20110528
"IA Thinking" Workshop at Open-I Seminar 20110528 "IA Thinking" Workshop at Open-I Seminar 20110528
"IA Thinking" Workshop at Open-I Seminar 20110528 Takashi Sakamoto
 
The Windows Developer User Group - Sep 2012 Meetup
The Windows Developer User Group - Sep 2012 MeetupThe Windows Developer User Group - Sep 2012 Meetup
The Windows Developer User Group - Sep 2012 MeetupSam Basu
 
夜宴35期《质量?》
夜宴35期《质量?》夜宴35期《质量?》
夜宴35期《质量?》Koubei Banquet
 
Koubei banquet 35
Koubei banquet 35Koubei banquet 35
Koubei banquet 35Koubei UED
 
'Prototyping' - GSJ11 Seoul
'Prototyping' - GSJ11 Seoul'Prototyping' - GSJ11 Seoul
'Prototyping' - GSJ11 SeoulByeonghwan Kim
 

Ähnlich wie Mobile WPO (20)

EduWeb - Building a Responsive Website for the Presidential Debate
EduWeb - Building a Responsive Website for the Presidential DebateEduWeb - Building a Responsive Website for the Presidential Debate
EduWeb - Building a Responsive Website for the Presidential Debate
 
HTML5/CSS3 @ Baidu
HTML5/CSS3 @ BaiduHTML5/CSS3 @ Baidu
HTML5/CSS3 @ Baidu
 
Ember.js - scratching the surface
Ember.js - scratching the surfaceEmber.js - scratching the surface
Ember.js - scratching the surface
 
Product Owner Challenge 3.0 (Agile Cambridge 2016)
Product Owner Challenge 3.0 (Agile Cambridge 2016)Product Owner Challenge 3.0 (Agile Cambridge 2016)
Product Owner Challenge 3.0 (Agile Cambridge 2016)
 
Big Social Broadband: Life after second bubble
Big Social Broadband: Life after second bubbleBig Social Broadband: Life after second bubble
Big Social Broadband: Life after second bubble
 
WordPress Houston Meetup - Using WordPress as a CMS
WordPress Houston Meetup - Using WordPress as a CMSWordPress Houston Meetup - Using WordPress as a CMS
WordPress Houston Meetup - Using WordPress as a CMS
 
NodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time WebNodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time Web
 
(31 July 2013) iOS Basic Development Day 2 Human interface design
(31 July 2013) iOS Basic Development Day 2 Human interface design (31 July 2013) iOS Basic Development Day 2 Human interface design
(31 July 2013) iOS Basic Development Day 2 Human interface design
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software Development
 
npm: Modularizing your JavaScript development
npm: Modularizing your JavaScript developmentnpm: Modularizing your JavaScript development
npm: Modularizing your JavaScript development
 
Going Mobile
Going MobileGoing Mobile
Going Mobile
 
Using Technology Effectively with Gifted Learners
Using Technology Effectively with Gifted LearnersUsing Technology Effectively with Gifted Learners
Using Technology Effectively with Gifted Learners
 
web标准化交流会上海站bobby分享
web标准化交流会上海站bobby分享web标准化交流会上海站bobby分享
web标准化交流会上海站bobby分享
 
web标准化交流会bobby分享
web标准化交流会bobby分享web标准化交流会bobby分享
web标准化交流会bobby分享
 
ETSI Hell's Kitchen Debate, Nice 2009
ETSI Hell's Kitchen Debate, Nice 2009ETSI Hell's Kitchen Debate, Nice 2009
ETSI Hell's Kitchen Debate, Nice 2009
 
"IA Thinking" Workshop at Open-I Seminar 20110528
"IA Thinking" Workshop at Open-I Seminar 20110528 "IA Thinking" Workshop at Open-I Seminar 20110528
"IA Thinking" Workshop at Open-I Seminar 20110528
 
The Windows Developer User Group - Sep 2012 Meetup
The Windows Developer User Group - Sep 2012 MeetupThe Windows Developer User Group - Sep 2012 Meetup
The Windows Developer User Group - Sep 2012 Meetup
 
夜宴35期《质量?》
夜宴35期《质量?》夜宴35期《质量?》
夜宴35期《质量?》
 
Koubei banquet 35
Koubei banquet 35Koubei banquet 35
Koubei banquet 35
 
'Prototyping' - GSJ11 Seoul
'Prototyping' - GSJ11 Seoul'Prototyping' - GSJ11 Seoul
'Prototyping' - GSJ11 Seoul
 

Kürzlich hochgeladen

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Kürzlich hochgeladen (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

Mobile WPO

  • 1. Mobile WPO Presented by Tim Kadlec http://www.flickr.com/photos/vlastula/300102949/ Sunday, May 29, 2011
  • 2. It’s a Mobile World 2 http://www.flickr.com/photos/ivyfield/4731067532/ Sunday, May 29, 2011
  • 3. 5.6 billion mobile subscriptions 6.9 billion people 3 http://www.flickr.com/photos/wwworks/2222523486/in/photostream/ Sunday, May 29, 2011
  • 4. More smart phones and tablets shipped than PCs 4 http://www.flickr.com/photos/wwworks/4472384764/ Sunday, May 29, 2011
  • 5. Mobile traffic will grow by 26x in 5 years 5 http://www.flickr.com/photos/epsos/5591761716/ Sunday, May 29, 2011
  • 6. 25% mobile only in US 22% mobile only in UK 6 http://www.flickr.com/photos/perspective/49671901/ Sunday, May 29, 2011
  • 7. Things have changed... 7 http://www.flickr.com/photos/spine/2261612821/ Sunday, May 29, 2011
  • 8. In the last twelve months, customers around the world have ordered more than US $1 billion of products from Amazon using a mobile device. - Jeff Bezos (July 2010) 8 Source: http://phx.corporate-ir.net/phoenix.zhtml?c=97664&p=irol-newsArticle&ID=1451041&highlight= Sunday, May 29, 2011
  • 9. 2010: eBay mobile transactions were > $2 billion 2009: 600 million 9 Source: http://files.shareholder.com/downloads/ebay/1156981139x0x435896/9bd99676-b782-4784-87de-2899abe14a6d/eBay_Q42010EarningsRelease_Draft011911_FINAL.pdf Sunday, May 29, 2011
  • 10. If you’re not optimizing, you’re throwing money away 10 http://www.flickr.com/photos/lisa_yarost/1592436195/in/photostream/ Sunday, May 29, 2011
  • 11. Mobile users want fast experiences! 11 http://www.flickr.com/photos/thatguyfromcchs08/2300190277/ Sunday, May 29, 2011
  • 12. 58% of mobile users expect websites to load as quickly, almost as quickly or faster on their mobile phone, compared to the computer they use at home 12 Sunday, May 29, 2011
  • 13. 73% of users are willing to wait a minute or less to complete a simple transaction - like checking their bank balance 13 Sunday, May 29, 2011
  • 14. 14 Source: The business case for assuring the customer mobile Web experience Sunday, May 29, 2011
  • 15. So how are we doing? 15 http://www.flickr.com/photos/deepphoto/463648209/ Sunday, May 29, 2011
  • 16. HTTP Archive Mobile 16 http://mobile.httparchive.org/index.php Sunday, May 29, 2011
  • 17. 17 Source: http://mobile.httparchive.org/trends.php Sunday, May 29, 2011
  • 18. 18 Source: http://mobile.httparchive.org/trends.php Sunday, May 29, 2011
  • 19. Retail and Banking 19 Source: http://www.gomez.com/benchmarks/sitemap/?region=US_Benchmarks Sunday, May 29, 2011
  • 20. Definitely room for improvement 20 http://www.flickr.com/photos/jonathansuzuki/2198667658/ Sunday, May 29, 2011
  • 21. This Is Gonna Hurt 21 http://www.flickr.com/photos/scottfeldstein/372141970/ Sunday, May 29, 2011
  • 22. 22 http://www.pcworld.com/zoom?id=167391&page=1&zoomIdx=1 Sunday, May 29, 2011
  • 23. Latency sucks 23 http://developer.yahoo.com/blogs/ydn/posts/2009/10/a_engineers_gui/ Sunday, May 29, 2011
  • 24. Just how bad is it? 24 http://www.yuiblog.com/blog/2010/04/08/analyzing-bandwidth-and-latency/ Sunday, May 29, 2011
  • 25. Uh oh! 25 http://developer.yahoo.com/blogs/ydn/posts/2009/10/a_engineers_gui/ Sunday, May 29, 2011
  • 27. Replace images with Data URIs 27 http://www.flickr.com/photos/orinrobertjohn/2189064194/ Sunday, May 29, 2011
  • 28. They’re a little ugly... data:image/ png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAASCAMAAACQGyXoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZ SBJbWFnZVJlYWR5ccllPAAAAUdQTFRFFxUOJiMMFBIOkYsCjIYDioQDGxkNk40CYVwHNDALgHoENTILHRoNJSIMb WgFnJYBnpcBJCEMiYMDKygMPzwKWlUHREAJSUUJlo8CgXsEkIoCGBYNmJECIh8NXFgHHx0NExEOp6AAcWwFjYcD RkMJcm0Fgn0EHRsNUEwIY14GpJ0AcGoFIiAMT0sITEgJKCUMHBoNpp8Al5ECjogCa2YGaWQGIB0Nd3IFmZMBFhMOJ yQMGhgNiIIDWVQHOjcKLSoLIyAMODQKKicMVVEIPToKd3EFQj4KenQEaGQGS0cJh4EDlY8CoJkBfHcEZWAGaGMG hX8DZ2IGo5wAi4UDopsBlY4CeHIFRUEJXFcHdG8FKSYMeHMEmpMBV1MISkYJfnkEf3oEc24FnZcBVFAIeXQEQ0AJNj MLmJIBYl0Hn5gBVlEIqKEAEhAOjBZoxgAAAG10Uk5T///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// AC221EsAAAEWSURBVHjabNHlVwMxDADw3u1kbGPK3NhwGe7uvuE+3En+/8/k2h6sQD70pf3l9aUNQ0Q9dj5/ WWjFv8EQI2kAaJvA/ 7WTcKr513kgL9UkTcpar9En6ljHttBVgBFL6D4VeiI8TUAL1+ljMAQugxOZopPne3MWqY4LMCoavuEKUY3yoRC8kJYL2 FNnXCtCwaZL/QBB0mvw3YZXuF6dSC4Z4ynqgHRwl7anTzNZ4jFojJzTVaB96y4Fwx925iKp6Doy +XpzL354tvauaMJVKzRH66eCnqzULh8MYP+BguEm/hu46H2EOOKkgvYr/8nZ8tHbA9XhZiM+L8kpaJrOry/uuFRK +78n+DPNjVo1at4Hu2PuyZcAAwA2KbSDyyYFcAAAAABJRU5ErkJggg== 28 Sunday, May 29, 2011
  • 29. ...but they don’t have to be hard 29 http://www.nczonline.net/blog/2009/11/03/automatic-data-uri-embedding-in-css-files/ Sunday, May 29, 2011
  • 30. java -jar cssembed-x.y.z.jar -o styles_new.css styles.css 30 Sunday, May 29, 2011
  • 31. Inline JS & CSS (but be smart about it) 31 Sunday, May 29, 2011
  • 32. m.bing.com Desktop: 93kB iPad: 59kB iPhone: 198kb iPhone repeat: 30kb 32 http://www.stevesouders.com/blog/2011/03/14/mobile-comparison-of-top-11/ Sunday, May 29, 2011
  • 33. _load:function(b){ var a=null; if(localStorage) try{a=localStorage.getItem(b)} catch(c){} return a } 33 Sunday, May 29, 2011
  • 34. <style data-rms="save" id="CUX.Keyframes.B8625FEE" rel="stylesheet" type="text/css"> ..... </style> 34 Sunday, May 29, 2011
  • 35. <script type="text/javascript"> RMS.Load('CUX.Keyframes.B8625FEE') </script> 35 Sunday, May 29, 2011
  • 36. Javascript on Desktop 36 Source: http://ie.microsoft.com/testdrive/benchmarks/sunspider/default.html Sunday, May 29, 2011
  • 37. Javascript on Mobile 37 Source: http://jeftek.com/1942/motorola-xoom-sunspider-results/ Sunday, May 29, 2011
  • 38. Write Better Javascript (duh) 38 http://www.amazon.com/Performance-JavaScript-Faster-Application-Interfaces/dp/059680279X Sunday, May 29, 2011
  • 39. Don’t parse JS until needed 1kB of JS = 1ms 39 Source: http://code.google.com/speed/page-speed/docs/mobile.html Sunday, May 29, 2011
  • 40. Use a script loader <script> $LAB .script("myScript.js") .script("bonusScript.js"); </script> http://labjs.com/ <script> $script(“myScript.js”); $script(“bonusScript.js”); </script> http://dustindiaz.com/scriptjs 40 Sunday, May 29, 2011
  • 41. Lazy-loading JS <html> ... <script id="lazy"> // Make sure you strip out (or replace) comment blocks in your JavaScript first. /* JavaScript of lazy module */ </script> <script>   function lazyLoad() {     var lazyElement = document.getElementById('lazy');     var lazyElementBody = lazyElement.innerHTML;     var jsCode = stripOutCommentBlock(lazyElementBody);     eval(jsCode);  } </script> <div onclick=lazyLoad()> Lazy Load </div> </html> 41 Source: http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html Sunday, May 29, 2011
  • 42. Prefer touch over click 300/500ms delay for click events Penalty is consistent cross- platform Remember - perception is important! 42 Source: http://pcapperf.appspot.com/fastbutton Sunday, May 29, 2011
  • 43. Make use of AppCache 43 Sunday, May 29, 2011
  • 44. CACHE MANIFEST someJS.js someMoreJS.js styles.css /images/myGoodSide.png /images/myBadSide.png <html manifest="mySite.appcache"> AddType text/cache-manifest .appcache Simple example 44 Sunday, May 29, 2011
  • 45. CACHE MANIFEST CACHE someJS.js NETWORK login.php FALLBACK /online.php /offline.php A bit more complicated 45 Sunday, May 29, 2011
  • 46. Confess.js 46 https://github.com/jamesgpearce/confess Sunday, May 29, 2011
  • 47. Confess.js phantomjs confess.js http://functionsource.com 47 Sunday, May 29, 2011
  • 48. CACHE MANIFEST # This manifest was created by confess.js, http://github.com/jamesgpearce/ confess # # Time: Wed Apr 13 2011 15:40:27 GMT-0700 (PDT) # URL: http://functionsource.com # UA: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/533.3 (KHTML, like Gecko) PhantomJS/1.1.0 Safari/533.3 # # Any console output generated by this page or app is shown immediately below. You'll need to remove this to create a valid manifest syntax. # [Start of console output] # [End of console output] CACHE: /javascripts/lib/jquery.js /javascripts/lib/underscore.js /javascripts/lib/backbone.js ........ http://functionsource.com/images/icons/rss.png http://functionsource.com/images/icons/podcast.png http://functionsource.com/images/icons/firehose.png NETWORK: * Sunday, May 29, 2011
  • 49. A few AppCache resources http://www.html5rocks.com/tutorials/ appcache/beginner/ http://appcachefacts.info/ 49 Sunday, May 29, 2011
  • 50. Test. Rinse. Repeat. 50 http://www.flickr.com/photos/jurvetson/2798315677/ Sunday, May 29, 2011
  • 51. Let’s look at some tools 51 http://www.flickr.com/photos/olibac/560079597/ Sunday, May 29, 2011
  • 62. We need more data! 62 Sunday, May 29, 2011
  • 63. It took our community almost ten years to generate meaningful data around regular web performance. We don’t have that luxury with the mobile internet. - Joshua Bixby 63 Source: http://www.webperformancetoday.com/2010/07/22/mobile-web-performance-desperately-seeking-data/ Sunday, May 29, 2011
  • 65. Thank you! Tim Kadlec http://www.timkadlec.com Twitter: @tkadlec Sunday, May 29, 2011