SlideShare una empresa de Scribd logo
1 de 11
Developing Offline Capable
    Mobile Web Apps
Motivation




    Instant Updates
   Full customizability
   Real-time feedback
Goals
 • Remedy poor connectivity
   – Make web not connected to ‘the web’
 • Increase performance
   – Make web as close as possible to native
Technologies
 • HTML5
   – App Cache / Manifest
   – Local Storage
   – WebSQL (deprecated)
   – IndexDB (still not fully spec’ed)
 • New clientside Javascript possibilities
Demo Time
Build it!
 • LocalStorage + Manifest + Robust API

  • Cache Manifest stores as few items as possible
     • The single page app
     • Images needed for the app (UI)
Tools Used
 •   Backbone.js (MVC-like JS architecture)
 •   Zepto (JS Framework)
 •   Handlebars.js (Templating)
 •   CoffeeScript (Increase speed of dev, reduce rage)
 •   Sprockets (Asset Management)
 •   SASS/SCSS & HAML
Techniques
 • Architecture: Single Page App
   – Reduce round-trips to server as much as possible
      • Inline, compressed JS, CSS
   – Get to API data collection ASAP
      • Parse, execute – models, views, templates, at run-time
      • ‘Stringify’ code and eval later when needed
Improvements
 • Clients are the
   SLOW part of
   the web
 – Lazy Load everything
   (got us 90%+
   performance
   improvement)
Issues
 • Needs A LOT of data on first hit
   – Could choke at bigger conferences (60K people loading at once)

 • Does not work on IE yet (Zepto to blame
   but other techniques not well supported on
   WP7 or IE)
Still in
Progress
 • Node.js + Socket.IO + Redis stack
   – For real-time updates, interactive features
 • Offline usage
   – Store actions in offline state in queue
   – Sync with server when online
 • Ensure consistency with data across
   multiple devices (Vector / Lamport
   clocks?)

Más contenido relacionado

Más de #DevTO

Más de #DevTO (7)

Farhan Thawar - Managing an Agile Team
Farhan Thawar - Managing an Agile TeamFarhan Thawar - Managing an Agile Team
Farhan Thawar - Managing an Agile Team
 
Kevin MacDonald - Anyone can make maps
Kevin MacDonald - Anyone can make mapsKevin MacDonald - Anyone can make maps
Kevin MacDonald - Anyone can make maps
 
Brian Hogg - Web Apps using HTML5 and JS
Brian Hogg - Web Apps using HTML5 and JSBrian Hogg - Web Apps using HTML5 and JS
Brian Hogg - Web Apps using HTML5 and JS
 
Shoukry Kattan - Titanium Mobile. Cross Platform Mobile Apps
Shoukry Kattan - Titanium Mobile. Cross Platform Mobile AppsShoukry Kattan - Titanium Mobile. Cross Platform Mobile Apps
Shoukry Kattan - Titanium Mobile. Cross Platform Mobile Apps
 
Marc Roginsky - How to Deliver Effective Client-facing Presentations
Marc Roginsky - How to Deliver Effective Client-facing PresentationsMarc Roginsky - How to Deliver Effective Client-facing Presentations
Marc Roginsky - How to Deliver Effective Client-facing Presentations
 
Shey Sewani - RabbitMQ At FreshBooks
Shey Sewani - RabbitMQ At FreshBooksShey Sewani - RabbitMQ At FreshBooks
Shey Sewani - RabbitMQ At FreshBooks
 
Alex Stobe - Dev Networking
Alex Stobe - Dev NetworkingAlex Stobe - Dev Networking
Alex Stobe - Dev Networking
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Bijan Vaez -Developing Offline Capable Mobile Web Apps

  • 1. Developing Offline Capable Mobile Web Apps
  • 2. Motivation Instant Updates Full customizability Real-time feedback
  • 3. Goals • Remedy poor connectivity – Make web not connected to ‘the web’ • Increase performance – Make web as close as possible to native
  • 4. Technologies • HTML5 – App Cache / Manifest – Local Storage – WebSQL (deprecated) – IndexDB (still not fully spec’ed) • New clientside Javascript possibilities
  • 6. Build it! • LocalStorage + Manifest + Robust API • Cache Manifest stores as few items as possible • The single page app • Images needed for the app (UI)
  • 7. Tools Used • Backbone.js (MVC-like JS architecture) • Zepto (JS Framework) • Handlebars.js (Templating) • CoffeeScript (Increase speed of dev, reduce rage) • Sprockets (Asset Management) • SASS/SCSS & HAML
  • 8. Techniques • Architecture: Single Page App – Reduce round-trips to server as much as possible • Inline, compressed JS, CSS – Get to API data collection ASAP • Parse, execute – models, views, templates, at run-time • ‘Stringify’ code and eval later when needed
  • 9. Improvements • Clients are the SLOW part of the web – Lazy Load everything (got us 90%+ performance improvement)
  • 10. Issues • Needs A LOT of data on first hit – Could choke at bigger conferences (60K people loading at once) • Does not work on IE yet (Zepto to blame but other techniques not well supported on WP7 or IE)
  • 11. Still in Progress • Node.js + Socket.IO + Redis stack – For real-time updates, interactive features • Offline usage – Store actions in offline state in queue – Sync with server when online • Ensure consistency with data across multiple devices (Vector / Lamport clocks?)