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

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Kürzlich hochgeladen (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 
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...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

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