SlideShare a Scribd company logo
Don't touch the mobile parts
Francesco Fullone <ff@ideato.it>
Twitter @fullo
Who am I

Francesco Fullone aka Fullo

- PHP developer since 1999
-               President
-         and Open Source Evangelist
- CEO @
- founder @


- Nerd and geek
In the previous* WPO episodes



* “don't touch the slow parts ” [ http://ow.ly/5ihyb ] and “extended slow parts” [ http://ow.ly/5ihLT ]
Kate and Jack discovered that the
      80% of loading time
        is on the browser
In the same time Locke
     understood that
resource loading order
         matters
Sayid tried to
    cut the bandwidth usage
decreasing files number and size...
… helped by Hurley whom
   reduces downloads forcing
headers to enable browser cache
at the same time, the “Others” studied
  the new possibilities offered by the
               HTML5
They never believe that
  mobile WPO is an even more
mysterious and frightening journey...
...and that 97% of performance
    issues happen at frontend*




   * from webperformancetoday.com [ http://ow.ly/5hd35 ]
The Browser Chapter
On a smartphone a web page
is rendered from 40% to 80% slower
          than on a desktop.
A lot of different browsers

         Pre-installed webkit
  (iOS, Android, Blackberry, webOS, Symbian …)
     Pre-installed non-webkit
(Bada, old Blackberry, Internet Explorer, DoCoMo …)
            User installable
      (Opera Mobile/Mini, Firefox, Skyfire ...)
Same engine doesn't mean
    same behaviours
We have to talk about
mobile browser families:

      Smartphone
       Mid-End
       Low-End
Mid-End to Low-End browsers
   families lost (randomly):

       HTML5 support
        CSS3 support
       Caching quota
            Ajax
Still...
Symbian's Anna WebKit browser* has

              No Application Cache
              No Geolocalization API
              No HTML5 Audio/Video tags
              Very limited CSS3 support


     * Released on April 2011 for X7 and E6 Nokia Smartphones
CSS Expressions and iFrames don't
  work on most mobile browsers
Different country* means different browser




                    * From icrossing.co.uk [ http://ow.ly/5hanY ]
Caching, now, is not a difficult task


     * browserscope.org helps us [ http://ow.ly/5h8Db ]
New iOS* and Android browsers have

   4Mb file cache (uncompressed)
  4Mb total cache (uncompressed)
  1Mb limit for file execution (js/css)
   * but cache is invalidated at the reboot [ http://ow.ly/5h8G4 ]
But...
Old iOS 3.x browser* had

       25.6Kb file cache
1Mb total cache (uncompressed)




     * and a lot of other low-end browsers
The Network Chapter
3G Networks are slow, with higher
      latency and limited*


 * comet doesn't works and 3G operator applies some limits.
HTTP Headers are different*
                                            [...]
    user-agent: LG-CU920/V1.0p Obigo/Q05A Profile/MIDP-2.0 Configuration/CLDC-1.1
                             via: 1.1 alpmagr1fe02WAP2-mbl
                        x-up-devcap-accept-language: en,fr,es
  x-up-devcap-charset: US-ASCII,ISO-8859-1,UTF-8,UTF-16,ISO-8859-15,ISO-10646-UCS-2
                                   x-up-devcap-iscolor: 1
                               x-up-devcap-numsoftkeys: 3
                              x-up-devcap-screendepth: 16
                          x-up-devcap-screenpixels: 240,400
                               x-up-devcap-smartdialing: 1
                  x-up-subno: ppu_1077a8d8fc1_vmag.mycingular.net
              x-wap-profile: http://gsm.lge.com/html/gsm/LG-CU920.xml
                                            [...]


 * 30% more than desktop, ETag doesn't works
Beware of the content proxies*!


* used by some browsers like Opera mini. Ajax doesn't work properly
The Mobile WPO Chapter
As for desktop browsers a reduction
   of the requests is necessary,
but mobile strategies are somewhat
              differents
When possible embed resources in
the page: CSS, JavaScript* and images
            with data URI




    * then save them after document.onload in local cache
Use Application Storage to statically
save most used resources and user
      infos* in localStorage




        * as the geolocation infos and prefs
Save JavaScript function with
Application Storage*, then fire them
  to a tag and eval when needed




      * as Google and Bing do [ http://ow.ly/5h8Ab ]
Load resources as late as possible*
 and store them to be never loaded
               again
* use ajax and infinite scrolling pattern [ http://ow.ly/5h9A6 ] to load only
              visible data, but remember to free memory
Use CSS to draw interface object*
-webkit-border-image, CSS sprites, -webkit-border-
           radius, -webkit-gradient, ...




    * but remember that the browsers compatibility changes
Optimize images* and defer them
when possible. Use SVG for charts.




* animated GIF doesn't work on Android and WebOS, SVG is not
      enabled on Android. When possible strip EXIF tags.
GZip, Minify and Merge
  CSS and JavaScript*



        * as usual ;)
When possible
 avoid JavaScript frameworks*
and use specific ones (ie. zepto.js)

 * some mobile browser can take up to 8s to parse jQuery
Detect device, reduce image details
             as needed


       * use window.devicePixelRatio on WebKit
HTML coding still matter
Use different (KiSS*) html than in the
          desktop browser




   * reduce elements. You are still on a 3/4'' device, isn't it?
Reduce DOM elements, CSS classes
  and apply good programming
            patterns
Add specificic html meta tags* for
        mobile browsers




* viewport, media=handheld, MobileOptimized, HandheldFriendly
     * add the right MIME for each device and use viewport meta tag
Test your code

http://mobile.httparchive.org

   http://blaze.io/mobile

      http://jdrop.org

http://www.mobilexweb.com
Your new best friend*




 * buy it on Amazon http://ow.ly/5sm6C
Francesco Fullone
      ff@ideato.it
         @fullo




  via Quinto Bucci 205
   47023 Cesena (FC)
 info AT makemeapp.it
  www.makemeapp.it

More Related Content

PDF
Why Open Web Standards are cool and will save the world. Or the Web, at least.
brucelawson
 
PDF
Bruce lawson-over-the-air
brucelawson
 
PDF
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
brucelawson
 
PDF
Transmission2 25.11.2009
Patrick Lauke
 
PDF
Speak the Web 15.02.2010
Patrick Lauke
 
PDF
Opera and the Open Web platform
Andreas Bovens
 
PDF
Tomboy Web Sync Explained
Mohan Krishnan
 
ODP
New or obscure web browsers (4x3 draft 5)
msz
 
Why Open Web Standards are cool and will save the world. Or the Web, at least.
brucelawson
 
Bruce lawson-over-the-air
brucelawson
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
brucelawson
 
Transmission2 25.11.2009
Patrick Lauke
 
Speak the Web 15.02.2010
Patrick Lauke
 
Opera and the Open Web platform
Andreas Bovens
 
Tomboy Web Sync Explained
Mohan Krishnan
 
New or obscure web browsers (4x3 draft 5)
msz
 

What's hot (20)

PDF
HTML5 multimedia - where we are, where we're going
brucelawson
 
PPTX
W3C Widget and MeeGo - MeeGo Meetup Hacker's Dojo Mountain View Dec 2010 @iRa...
Raj Lal
 
PDF
Chrome OS: The Stateless Operating System
Chatchai Wangwiwattana
 
PDF
Be ef presentation-securitybyte2011-michele_orru
Michele Orru
 
PPTX
Google chrome
Nayana_Bingi
 
PPTX
Chrome OS presentation
melodyhe121
 
PDF
Koubei banquet 35
Koubei UED
 
PPTX
Google Chrome - OS & BROWSER
Faheem Ahmed
 
PDF
Performance Improvements in Browsers
jeresig
 
PPTX
Google chrome operating system
kondalarao7
 
PPT
Introduction To Google Chrome Os
Saurabh Jinturkar
 
PDF
Vagrant - Team Development made easy
Marco Silva
 
PDF
Webtech 17.11.2009
Patrick Lauke
 
PDF
It works on your computer... but does it render fast enough?
Diogo Antunes
 
PDF
Screencasting Matrix
Michael Sensiba
 
PPT
Google chrome OS
-jyothish kumar sirigidi
 
PPTX
Css hacks for different browsers
Savitha Chandra
 
ODP
ISM APAC TechTalk - WebSockets Presentation
Dimuthu Nilanka
 
PDF
Socket.io
Diego Pacheco
 
PDF
Cold front - bridging the web and the physical world
Kenneth Rohde Christiansen
 
HTML5 multimedia - where we are, where we're going
brucelawson
 
W3C Widget and MeeGo - MeeGo Meetup Hacker's Dojo Mountain View Dec 2010 @iRa...
Raj Lal
 
Chrome OS: The Stateless Operating System
Chatchai Wangwiwattana
 
Be ef presentation-securitybyte2011-michele_orru
Michele Orru
 
Google chrome
Nayana_Bingi
 
Chrome OS presentation
melodyhe121
 
Koubei banquet 35
Koubei UED
 
Google Chrome - OS & BROWSER
Faheem Ahmed
 
Performance Improvements in Browsers
jeresig
 
Google chrome operating system
kondalarao7
 
Introduction To Google Chrome Os
Saurabh Jinturkar
 
Vagrant - Team Development made easy
Marco Silva
 
Webtech 17.11.2009
Patrick Lauke
 
It works on your computer... but does it render fast enough?
Diogo Antunes
 
Screencasting Matrix
Michael Sensiba
 
Google chrome OS
-jyothish kumar sirigidi
 
Css hacks for different browsers
Savitha Chandra
 
ISM APAC TechTalk - WebSockets Presentation
Dimuthu Nilanka
 
Socket.io
Diego Pacheco
 
Cold front - bridging the web and the physical world
Kenneth Rohde Christiansen
 
Ad

Viewers also liked (9)

PDF
From brainstorming to product development
Francesco Fullone
 
PDF
Compromises and not solution
Francesco Fullone
 
PDF
Con te non ci lavoro
Francesco Fullone
 
PPT
New Product Commercialization
John Glenning
 
PPT
The commercialization process
MaRS Discovery District
 
DOCX
Basic aspects of international marketing
Megha Mishra
 
PPTX
Launching a new Product
Mohammad Choudhary
 
PDF
Product Launch Presentation By Linda Johnson
lindajohnsonh
 
PDF
Fruit punch - Launching a New Product - Marketing
Cotecna Inspection
 
From brainstorming to product development
Francesco Fullone
 
Compromises and not solution
Francesco Fullone
 
Con te non ci lavoro
Francesco Fullone
 
New Product Commercialization
John Glenning
 
The commercialization process
MaRS Discovery District
 
Basic aspects of international marketing
Megha Mishra
 
Launching a new Product
Mohammad Choudhary
 
Product Launch Presentation By Linda Johnson
lindajohnsonh
 
Fruit punch - Launching a New Product - Marketing
Cotecna Inspection
 
Ad

Similar to Don't touch the mobile parts (20)

PDF
Mobile Web High Performance
Amjad Rafique
 
PDF
Mobile Web High Performance
Maximiliano Firtman
 
PDF
Mobile Web & HTML5 Performance Optimization
Maximiliano Firtman
 
PDF
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Maximiliano Firtman
 
PDF
Extreme Web Performance for Mobile Devices
Maximiliano Firtman
 
PDF
Performance Optimization for Mobile Web | Fresh Tilled Soil
Fresh Tilled Soil
 
PDF
Extreme Web Performance for Mobile Devices - Velocity NY
Maximiliano Firtman
 
PDF
Mobile Web Best Practices
James D Bloom
 
PPT
Responsive web design & mobile web development - a technical and business app...
Atos_Worldline
 
PPT
Skill Session - Web Multi Device
filirom1
 
PDF
Best practices for delivering quality web experiences
Ben Mantooth
 
PDF
DDive- Giuseppe Grasso - mobile su Lotus
Dominopoint - Italian Lotus User Group
 
KEY
Js On Mobile Devices
Jens Arps
 
PDF
Drupalcamp New York 2009
Tom Deryckere
 
PDF
Developing for Mobile Web
Barbara Bermes
 
PDF
Web Browser Demystified
Rohit Joshi
 
PDF
Building Mobile Websites with Joomla
Tom Deryckere
 
PDF
Yiibu rethinkingthemobileweb-100910074556-phpapp01
Raymond Morin
 
PPTX
How To Be an HTML5 Mobile Cloud Champion
Chris Love
 
PDF
Building a Next Generation Mobile Browser using Web technologies
n_adam_stanley
 
Mobile Web High Performance
Amjad Rafique
 
Mobile Web High Performance
Maximiliano Firtman
 
Mobile Web & HTML5 Performance Optimization
Maximiliano Firtman
 
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Maximiliano Firtman
 
Extreme Web Performance for Mobile Devices
Maximiliano Firtman
 
Performance Optimization for Mobile Web | Fresh Tilled Soil
Fresh Tilled Soil
 
Extreme Web Performance for Mobile Devices - Velocity NY
Maximiliano Firtman
 
Mobile Web Best Practices
James D Bloom
 
Responsive web design & mobile web development - a technical and business app...
Atos_Worldline
 
Skill Session - Web Multi Device
filirom1
 
Best practices for delivering quality web experiences
Ben Mantooth
 
DDive- Giuseppe Grasso - mobile su Lotus
Dominopoint - Italian Lotus User Group
 
Js On Mobile Devices
Jens Arps
 
Drupalcamp New York 2009
Tom Deryckere
 
Developing for Mobile Web
Barbara Bermes
 
Web Browser Demystified
Rohit Joshi
 
Building Mobile Websites with Joomla
Tom Deryckere
 
Yiibu rethinkingthemobileweb-100910074556-phpapp01
Raymond Morin
 
How To Be an HTML5 Mobile Cloud Champion
Chris Love
 
Building a Next Generation Mobile Browser using Web technologies
n_adam_stanley
 

More from Francesco Fullone (20)

PDF
Life Cycle Design e Circular Economy: un caso reale
Francesco Fullone
 
PDF
Okr istruzioni per l'uso - devfest
Francesco Fullone
 
PDF
OKR, sono veramente utili alla mia azienda?
Francesco Fullone
 
PDF
Okr per community - icms
Francesco Fullone
 
PDF
Open Governance, un caso reale
Francesco Fullone
 
PDF
A recommendation engine for your applications
Francesco Fullone
 
PDF
A recommendation engine for your applications
Francesco Fullone
 
PDF
Con te non ci lavoro
Francesco Fullone
 
PDF
Continuous budgeting
Francesco Fullone
 
PDF
Remote working istruzioni
Francesco Fullone
 
PDF
Remote working istruzioni
Francesco Fullone
 
PDF
MVP & Startup, with OpenSource Software and Microsoft Azure
Francesco Fullone
 
PDF
Remote working istruzioni
Francesco Fullone
 
PDF
Help yourself, grow an healthy ecosystem
Francesco Fullone
 
PDF
Outsourcing, partners or suppliers?
Francesco Fullone
 
PDF
PHP Goes Enterprise
Francesco Fullone
 
PDF
your browser, my storage
Francesco Fullone
 
PDF
From webagency to...a better job, life and a lot of fun
Francesco Fullone
 
PDF
Open Source in the web enterprise world a secure success
Francesco Fullone
 
PDF
Compromessi e non soluzioni
Francesco Fullone
 
Life Cycle Design e Circular Economy: un caso reale
Francesco Fullone
 
Okr istruzioni per l'uso - devfest
Francesco Fullone
 
OKR, sono veramente utili alla mia azienda?
Francesco Fullone
 
Okr per community - icms
Francesco Fullone
 
Open Governance, un caso reale
Francesco Fullone
 
A recommendation engine for your applications
Francesco Fullone
 
A recommendation engine for your applications
Francesco Fullone
 
Con te non ci lavoro
Francesco Fullone
 
Continuous budgeting
Francesco Fullone
 
Remote working istruzioni
Francesco Fullone
 
Remote working istruzioni
Francesco Fullone
 
MVP & Startup, with OpenSource Software and Microsoft Azure
Francesco Fullone
 
Remote working istruzioni
Francesco Fullone
 
Help yourself, grow an healthy ecosystem
Francesco Fullone
 
Outsourcing, partners or suppliers?
Francesco Fullone
 
PHP Goes Enterprise
Francesco Fullone
 
your browser, my storage
Francesco Fullone
 
From webagency to...a better job, life and a lot of fun
Francesco Fullone
 
Open Source in the web enterprise world a secure success
Francesco Fullone
 
Compromessi e non soluzioni
Francesco Fullone
 

Recently uploaded (20)

PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 

Don't touch the mobile parts

  • 1. Don't touch the mobile parts Francesco Fullone <[email protected]> Twitter @fullo
  • 2. Who am I Francesco Fullone aka Fullo - PHP developer since 1999 - President - and Open Source Evangelist - CEO @ - founder @ - Nerd and geek
  • 3. In the previous* WPO episodes * “don't touch the slow parts ” [ http://ow.ly/5ihyb ] and “extended slow parts” [ http://ow.ly/5ihLT ]
  • 4. Kate and Jack discovered that the 80% of loading time is on the browser
  • 5. In the same time Locke understood that resource loading order matters
  • 6. Sayid tried to cut the bandwidth usage decreasing files number and size...
  • 7. … helped by Hurley whom reduces downloads forcing headers to enable browser cache
  • 8. at the same time, the “Others” studied the new possibilities offered by the HTML5
  • 9. They never believe that mobile WPO is an even more mysterious and frightening journey...
  • 10. ...and that 97% of performance issues happen at frontend* * from webperformancetoday.com [ http://ow.ly/5hd35 ]
  • 12. On a smartphone a web page is rendered from 40% to 80% slower than on a desktop.
  • 13. A lot of different browsers Pre-installed webkit (iOS, Android, Blackberry, webOS, Symbian …) Pre-installed non-webkit (Bada, old Blackberry, Internet Explorer, DoCoMo …) User installable (Opera Mobile/Mini, Firefox, Skyfire ...)
  • 14. Same engine doesn't mean same behaviours
  • 15. We have to talk about mobile browser families: Smartphone Mid-End Low-End
  • 16. Mid-End to Low-End browsers families lost (randomly): HTML5 support CSS3 support Caching quota Ajax
  • 18. Symbian's Anna WebKit browser* has No Application Cache No Geolocalization API No HTML5 Audio/Video tags Very limited CSS3 support * Released on April 2011 for X7 and E6 Nokia Smartphones
  • 19. CSS Expressions and iFrames don't work on most mobile browsers
  • 20. Different country* means different browser * From icrossing.co.uk [ http://ow.ly/5hanY ]
  • 21. Caching, now, is not a difficult task * browserscope.org helps us [ http://ow.ly/5h8Db ]
  • 22. New iOS* and Android browsers have 4Mb file cache (uncompressed) 4Mb total cache (uncompressed) 1Mb limit for file execution (js/css) * but cache is invalidated at the reboot [ http://ow.ly/5h8G4 ]
  • 24. Old iOS 3.x browser* had 25.6Kb file cache 1Mb total cache (uncompressed) * and a lot of other low-end browsers
  • 26. 3G Networks are slow, with higher latency and limited* * comet doesn't works and 3G operator applies some limits.
  • 27. HTTP Headers are different* [...] user-agent: LG-CU920/V1.0p Obigo/Q05A Profile/MIDP-2.0 Configuration/CLDC-1.1 via: 1.1 alpmagr1fe02WAP2-mbl x-up-devcap-accept-language: en,fr,es x-up-devcap-charset: US-ASCII,ISO-8859-1,UTF-8,UTF-16,ISO-8859-15,ISO-10646-UCS-2 x-up-devcap-iscolor: 1 x-up-devcap-numsoftkeys: 3 x-up-devcap-screendepth: 16 x-up-devcap-screenpixels: 240,400 x-up-devcap-smartdialing: 1 x-up-subno: ppu_1077a8d8fc1_vmag.mycingular.net x-wap-profile: http://gsm.lge.com/html/gsm/LG-CU920.xml [...] * 30% more than desktop, ETag doesn't works
  • 28. Beware of the content proxies*! * used by some browsers like Opera mini. Ajax doesn't work properly
  • 29. The Mobile WPO Chapter
  • 30. As for desktop browsers a reduction of the requests is necessary, but mobile strategies are somewhat differents
  • 31. When possible embed resources in the page: CSS, JavaScript* and images with data URI * then save them after document.onload in local cache
  • 32. Use Application Storage to statically save most used resources and user infos* in localStorage * as the geolocation infos and prefs
  • 33. Save JavaScript function with Application Storage*, then fire them to a tag and eval when needed * as Google and Bing do [ http://ow.ly/5h8Ab ]
  • 34. Load resources as late as possible* and store them to be never loaded again * use ajax and infinite scrolling pattern [ http://ow.ly/5h9A6 ] to load only visible data, but remember to free memory
  • 35. Use CSS to draw interface object* -webkit-border-image, CSS sprites, -webkit-border- radius, -webkit-gradient, ... * but remember that the browsers compatibility changes
  • 36. Optimize images* and defer them when possible. Use SVG for charts. * animated GIF doesn't work on Android and WebOS, SVG is not enabled on Android. When possible strip EXIF tags.
  • 37. GZip, Minify and Merge CSS and JavaScript* * as usual ;)
  • 38. When possible avoid JavaScript frameworks* and use specific ones (ie. zepto.js) * some mobile browser can take up to 8s to parse jQuery
  • 39. Detect device, reduce image details as needed * use window.devicePixelRatio on WebKit
  • 41. Use different (KiSS*) html than in the desktop browser * reduce elements. You are still on a 3/4'' device, isn't it?
  • 42. Reduce DOM elements, CSS classes and apply good programming patterns
  • 43. Add specificic html meta tags* for mobile browsers * viewport, media=handheld, MobileOptimized, HandheldFriendly * add the right MIME for each device and use viewport meta tag
  • 44. Test your code http://mobile.httparchive.org http://blaze.io/mobile http://jdrop.org http://www.mobilexweb.com
  • 45. Your new best friend* * buy it on Amazon http://ow.ly/5sm6C
  • 46. Francesco Fullone [email protected] @fullo via Quinto Bucci 205 47023 Cesena (FC) info AT makemeapp.it www.makemeapp.it