SlideShare a Scribd company logo
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

More Related Content

PPTX
Introduction to HTML5 & CSS3
PDF
HTML5: What it is, why it matters, and how we can use it today
ODP
Introduction to WordPress Multisite
PPTX
Mobile gotcha
PPTX
Responsivedesign 7-3-2012
PPTX
Responsive Web Design
PPTX
jQuery Conf 2012
PPTX
Making Web Fun
Introduction to HTML5 & CSS3
HTML5: What it is, why it matters, and how we can use it today
Introduction to WordPress Multisite
Mobile gotcha
Responsivedesign 7-3-2012
Responsive Web Design
jQuery Conf 2012
Making Web Fun

Viewers also liked (7)

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

Similar to Developing for the mobile web (20)

PDF
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
PDF
Mobile App Development
PPT
Responsive web design & mobile web development - a technical and business app...
PPT
Skill Session - Web Multi Device
PDF
Extreme Web Performance for Mobile Devices
PDF
Extreme Web Performance for Mobile Devices - Velocity NY
KEY
Js On Mobile Devices
PDF
Extreme Web Performance for Mobile Devices
PDF
HTML5 and the dawn of rich mobile web applications pt 1
PDF
The Enterprise Dilemma: Native vs. Web
PDF
Extreme Web Performance for Mobile Device Fluent 2015
KEY
PDF
Anatomy of an HTML 5 mobile web app
PDF
Mobile Web Overview https://www.edocr.com/v/k52p5vj4/
PDF
Mobile web apps
PDF
Pablo Villalba -
PDF
Cm i padwebdev_lunch_learn
KEY
DjangoSki
PDF
Creating mobile apps without native code
PDF
Mobile web or native app
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Mobile App Development
Responsive web design & mobile web development - a technical and business app...
Skill Session - Web Multi Device
Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices - Velocity NY
Js On Mobile Devices
Extreme Web Performance for Mobile Devices
HTML5 and the dawn of rich mobile web applications pt 1
The Enterprise Dilemma: Native vs. Web
Extreme Web Performance for Mobile Device Fluent 2015
Anatomy of an HTML 5 mobile web app
Mobile Web Overview https://www.edocr.com/v/k52p5vj4/
Mobile web apps
Pablo Villalba -
Cm i padwebdev_lunch_learn
DjangoSki
Creating mobile apps without native code
Mobile web or native app
Ad

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Machine Learning_overview_presentation.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Getting Started with Data Integration: FME Form 101
PDF
August Patch Tuesday
PPT
Teaching material agriculture food technology
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
OMC Textile Division Presentation 2021.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
NewMind AI Weekly Chronicles - August'25-Week II
Network Security Unit 5.pdf for BCA BBA.
Mushroom cultivation and it's methods.pdf
Machine Learning_overview_presentation.pptx
A Presentation on Artificial Intelligence
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Per capita expenditure prediction using model stacking based on satellite ima...
gpt5_lecture_notes_comprehensive_20250812015547.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
Getting Started with Data Integration: FME Form 101
August Patch Tuesday
Teaching material agriculture food technology
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Spectral efficient network and resource selection model in 5G networks

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

Editor's Notes