SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Developing for the
  “mobile web”


    Joey Simhon (@joeysim)
   CTO and Co-Founder DoAT
Hello World


Growing Internet & mobile babies since 2000
Owned and managed 2 web agencies (UX & Tech)
Served as acting CTO for several startup companies
Passionate about engineering and the culture around it
DoAT

1st search engine born mobile
Launched at TCD NYC in May 2011 (winner of the Bing choice award)
iPhone / US availability at first, expanded to Canada.
We’ve built and deployed over 50 mobile web apps in the past year+.
@DoATGeeks - a multidisciplinary team - Web, iOS / Android / WPhone,
Algorithms and all sorts of backend technologies
Follow us - @doatgeeks | geeks.doat.com
There’s no such thing as the
       “mobile web”
From a UX perspective
icon + full screen = app
We’re seeing HUGE progress
Mostly publishers adoption and
         some tech
We want you to hack it and
   innovate on top of it
As painlessly as possible
           :-)
Things we wish we had known
HTML5 Support
Device / Browser Capabilities
• We'll focus on 2 browser engines - webkit (iOS/Android) and
  trident (Windows Phone)
  • Stuff you’d want to use
    • Application Cache (cache.manifest)
    • Local storage
    • History - pushState()
    • CSS3
    • Geo Location
CSS
• No fixed positioning. Use JS libraries to imitate behavior -
  iScroll, Scrollability, TouchScroll
• CSS animations - some use hardware acceleration (iOS only).
  Offload to GPU.
  It’s limited to scale, rotation and translate (position), plan your
  layout accordingly.
  Different syntax for different browsers (-webkit / -moz- / -o)
• Pixel ratios to support Retina.
• Use spin.js to create great indicators at low cost
Javascript
• Slow - little resources (CPU/Interpreter)
• Prefer native (aka “vanilla”) code
  (e.g. $(".classname") vs. document.querySelector(".className"))
• Parsing can be slow too (jQuery takes several 100's ms to parse,
  blocky)
• Use mobile only libraries (zepto.js, xui.js, etc)
• Visible first strategy, load and render the rest on-demand
• Android vs iOS - can be up to x2-x10 faster in raw speed (eg LZW
  compression)
Network
• High latency
• When it's there (AT&T)
• 6 concurrent HTTP reqs (sometimes 4)
• Global (verified on iOS). Splitting hosts will be slower (DNS)
• A request is an order of a magnitude more expensive than desktop
• Inlining vs requesting (embed base64 images, scripts/styles)
• Unifying / Minifying (minify library for PHP can be useful)
• Image dimensions and compression level (proxy images, Cotendo AIC)
• Offload cookies to local storage when not needed on server
WebSocket
• Reduces round trips dramatically
• Supported on iOS only
• Important gotcha - doesn’t support gzip compression
• Still evolving (was removed when there was a security issue)
  so always have a fallback ready (there are libraries that
  handle this for you)
• Keeping it open and re-opening is your responsibility
HTTP caching

• Limited storage (RAM/Disk)
• Not persistent in some cases (iOS standalone /
  UIWebView / power cycles)
• Internally in iOS still occupies the HTTP pipe (response is
  faster around ~10ms)
• Application Cache can help persist your assets
Android specifics


No CSS fixed positioning on Android 2.1 and below
No hardware accelerated CSS transitions.
No hardware acceleration. Period.
No Standalone mode
Screen resolutions and ratios vary
iOS specifics
Standalone mode has some caveats
 No cache.manifest
 No HTTP caching
 No Nitro
 Splash is shown until load event is fired (looooong)
UIWebViews
 No Nitro (JIT JS) on UIWebView
 Sometimes only 4 concurrent HTTP reqs
Windows Phone specifics


Nothing much to say here
The v7.0 Browser is like IE ~6.5
Just build for Mango (WPhone v7.5)
Introducing Touchy Boilerplate
TouchyBP
You mobile web app starter kit
Encapsulates all of the lessons we’ve discussed
Simple page structure
CSS normalization
Hardware acceleration support
And JS goodies
Fork it on github
Y U No Give Me iPhone 5z?
Thank You.

 Joey Simhon (@joeysim)
CTO and Co-Founder DoAT

Weitere ähnliche Inhalte

Andere mochten auch

Becoming a Credible Developer
Becoming a Credible DeveloperBecoming a Credible Developer
Becoming a Credible Developerjoeysim
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to productjoeysim
 
Digitale trender 2012
Digitale trender 2012Digitale trender 2012
Digitale trender 2012Halogen AS
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to productjoeysim
 
Champion Breakfast with DDB - TechHub Riga slides may 2014
Champion Breakfast with DDB - TechHub Riga slides may 2014Champion Breakfast with DDB - TechHub Riga slides may 2014
Champion Breakfast with DDB - TechHub Riga slides may 2014TechHubRiga
 
Raciocínio 01
Raciocínio 01Raciocínio 01
Raciocínio 01resolvidos
 

Andere mochten auch (7)

Becoming a Credible Developer
Becoming a Credible DeveloperBecoming a Credible Developer
Becoming a Credible Developer
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
 
Digitale trender 2012
Digitale trender 2012Digitale trender 2012
Digitale trender 2012
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
 
Champion Breakfast with DDB - TechHub Riga slides may 2014
Champion Breakfast with DDB - TechHub Riga slides may 2014Champion Breakfast with DDB - TechHub Riga slides may 2014
Champion Breakfast with DDB - TechHub Riga slides may 2014
 
Raciocínio 01
Raciocínio 01Raciocínio 01
Raciocínio 01
 
SDC - Einführung in Scala
SDC - Einführung in ScalaSDC - Einführung in Scala
SDC - Einführung in Scala
 

Ähnlich wie Developing for the mobile web

Don't touch the mobile parts
Don't touch the mobile partsDon't touch the mobile parts
Don't touch the mobile partsFrancesco Fullone
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
NU Web Steering Committee - Oct 11 - Web Performance
NU Web Steering Committee - Oct 11 - Web PerformanceNU Web Steering Committee - Oct 11 - Web Performance
NU Web Steering Committee - Oct 11 - Web PerformanceLee Roberson
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conferencedmethvin
 
Building Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsBuilding Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsAndrew Ferrier
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynotedmethvin
 
Real-world Dojo Mobile
Real-world Dojo MobileReal-world Dojo Mobile
Real-world Dojo MobileAndrew Ferrier
 
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web SimulatorOSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web SimulatorGail Frederick
 
Lesson learned from 3 years with hybrid apps
Lesson learned from 3 years with hybrid appsLesson learned from 3 years with hybrid apps
Lesson learned from 3 years with hybrid appsPatrik Malmquist
 
HTML5 - Let’s make the WEB more powerful
HTML5 - Let’s make the WEB more powerfulHTML5 - Let’s make the WEB more powerful
HTML5 - Let’s make the WEB more powerfulNaga Harish M
 
Videogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha TouchVideogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha TouchAlexander Wilhelm
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Ivano Malavolta
 
Building Apps with React Native - Lessons Learned
Building Apps with React Native - Lessons LearnedBuilding Apps with React Native - Lessons Learned
Building Apps with React Native - Lessons LearnedAlexandra Anghel
 
How does the Internet Work?
How does the Internet Work?How does the Internet Work?
How does the Internet Work?Dina Goldshtein
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-airbrucelawson
 

Ähnlich wie Developing for the mobile web (20)

Don't touch the mobile parts
Don't touch the mobile partsDon't touch the mobile parts
Don't touch the mobile parts
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
NU Web Steering Committee - Oct 11 - Web Performance
NU Web Steering Committee - Oct 11 - Web PerformanceNU Web Steering Committee - Oct 11 - Web Performance
NU Web Steering Committee - Oct 11 - Web Performance
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conference
 
Building Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsBuilding Real-World Dojo Web Applications
Building Real-World Dojo Web Applications
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
Java script everywhere
Java script everywhereJava script everywhere
Java script everywhere
 
Real-world Dojo Mobile
Real-world Dojo MobileReal-world Dojo Mobile
Real-world Dojo Mobile
 
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web SimulatorOSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
 
Project Timbit
Project TimbitProject Timbit
Project Timbit
 
Lesson learned from 3 years with hybrid apps
Lesson learned from 3 years with hybrid appsLesson learned from 3 years with hybrid apps
Lesson learned from 3 years with hybrid apps
 
HTML5 - Let’s make the WEB more powerful
HTML5 - Let’s make the WEB more powerfulHTML5 - Let’s make the WEB more powerful
HTML5 - Let’s make the WEB more powerful
 
Videogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha TouchVideogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha Touch
 
Mobile html5 v2
Mobile html5 v2Mobile html5 v2
Mobile html5 v2
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 
Building Apps with React Native - Lessons Learned
Building Apps with React Native - Lessons LearnedBuilding Apps with React Native - Lessons Learned
Building Apps with React Native - Lessons Learned
 
DjangoSki
DjangoSkiDjangoSki
DjangoSki
 
How does the Internet Work?
How does the Internet Work?How does the Internet Work?
How does the Internet Work?
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 

Kürzlich hochgeladen

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Kürzlich hochgeladen (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Developing for the mobile web

  • 1. Developing for the “mobile web” Joey Simhon (@joeysim) CTO and Co-Founder DoAT
  • 2. Hello World Growing Internet & mobile babies since 2000 Owned and managed 2 web agencies (UX & Tech) Served as acting CTO for several startup companies Passionate about engineering and the culture around it
  • 3. DoAT 1st search engine born mobile Launched at TCD NYC in May 2011 (winner of the Bing choice award) iPhone / US availability at first, expanded to Canada. We’ve built and deployed over 50 mobile web apps in the past year+. @DoATGeeks - a multidisciplinary team - Web, iOS / Android / WPhone, Algorithms and all sorts of backend technologies Follow us - @doatgeeks | geeks.doat.com
  • 4. There’s no such thing as the “mobile web”
  • 5. From a UX perspective icon + full screen = app
  • 8. We want you to hack it and innovate on top of it
  • 9. As painlessly as possible :-)
  • 10. Things we wish we had known
  • 12. Device / Browser Capabilities • We'll focus on 2 browser engines - webkit (iOS/Android) and trident (Windows Phone) • Stuff you’d want to use • Application Cache (cache.manifest) • Local storage • History - pushState() • CSS3 • Geo Location
  • 13. CSS • No fixed positioning. Use JS libraries to imitate behavior - iScroll, Scrollability, TouchScroll • CSS animations - some use hardware acceleration (iOS only). Offload to GPU. It’s limited to scale, rotation and translate (position), plan your layout accordingly. Different syntax for different browsers (-webkit / -moz- / -o) • Pixel ratios to support Retina. • Use spin.js to create great indicators at low cost
  • 14. Javascript • Slow - little resources (CPU/Interpreter) • Prefer native (aka “vanilla”) code (e.g. $(".classname") vs. document.querySelector(".className")) • Parsing can be slow too (jQuery takes several 100's ms to parse, blocky) • Use mobile only libraries (zepto.js, xui.js, etc) • Visible first strategy, load and render the rest on-demand • Android vs iOS - can be up to x2-x10 faster in raw speed (eg LZW compression)
  • 15. Network • High latency • When it's there (AT&T) • 6 concurrent HTTP reqs (sometimes 4) • Global (verified on iOS). Splitting hosts will be slower (DNS) • A request is an order of a magnitude more expensive than desktop • Inlining vs requesting (embed base64 images, scripts/styles) • Unifying / Minifying (minify library for PHP can be useful) • Image dimensions and compression level (proxy images, Cotendo AIC) • Offload cookies to local storage when not needed on server
  • 16. WebSocket • Reduces round trips dramatically • Supported on iOS only • Important gotcha - doesn’t support gzip compression • Still evolving (was removed when there was a security issue) so always have a fallback ready (there are libraries that handle this for you) • Keeping it open and re-opening is your responsibility
  • 17. HTTP caching • Limited storage (RAM/Disk) • Not persistent in some cases (iOS standalone / UIWebView / power cycles) • Internally in iOS still occupies the HTTP pipe (response is faster around ~10ms) • Application Cache can help persist your assets
  • 18. Android specifics No CSS fixed positioning on Android 2.1 and below No hardware accelerated CSS transitions. No hardware acceleration. Period. No Standalone mode Screen resolutions and ratios vary
  • 19. iOS specifics Standalone mode has some caveats No cache.manifest No HTTP caching No Nitro Splash is shown until load event is fired (looooong) UIWebViews No Nitro (JIT JS) on UIWebView Sometimes only 4 concurrent HTTP reqs
  • 20. Windows Phone specifics Nothing much to say here The v7.0 Browser is like IE ~6.5 Just build for Mango (WPhone v7.5)
  • 22. TouchyBP You mobile web app starter kit Encapsulates all of the lessons we’ve discussed Simple page structure CSS normalization Hardware acceleration support And JS goodies Fork it on github
  • 23. Y U No Give Me iPhone 5z?
  • 24. Thank You. Joey Simhon (@joeysim) CTO and Co-Founder DoAT

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n