Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PWA beyond theory - How to create your progressive web app

PWA beyond theory - How to create your progressive web app

Presented on DevFest London 2018.

Amanda Vilela

December 01, 2018
Tweet

More Decks by Amanda Vilela

Other Decks in Technology

Transcript

  1. 80% of time is spent on 3 apps Source: comScore

    Mobile Metrix, U.S., Age 18+, June 2015
  2. ZERO number of apps the average user installs per month

    Source: comScore Mobile Metrix, U.S., Age 18+, June 2015
  3. New web features • Push Messages • Offline storage •

    Audio & Video Capture • Recording Media • Geolocation • Web Bluetooth API • More: https://whatwebcando.today
  4. WHAT IS A PWA? new level of caring about the

    quality of your end-to-end user experience
  5. PWA aspects • Site works cross-browser • Pages are responsive

    on tablets & mobile devices • First load fast even on 3G • All app URLs load while offline • Metadata provided for Add to Home screen • Site is served over HTTPS
  6. <link rel="manifest" href="/manifest.json"> { "name": "Currency Converter", "short_name": "CConverter", "icons":

    [{ "src": "icon-48x48.png", "sizes": "48x48", "type": "image/png" }, {...}], "start_url": "/index.html", "display": "standalone", "orientation": "portrait", "background_color": "#06f8c5", "theme_color": "#06f8c5" }
  7. manifest.json { "name": "Currency Converter", "short_name": "CConverter", "icons": [{ "src":

    "icon-48x48.png", "sizes": "48x48", "type": "image/png" }, {...}], "start_url": "/index.html", "display": "standalone", "orientation": "portrait", "background_color": "#06f8c5", "theme_color": "#06f8c5" }
  8. manifest.json { "name": "Currency Converter", "short_name": "CConverter", "icons": [{ "src":

    "icon-48x48.png", "sizes": "48x48", "type": "image/png" }, {...}], "start_url": "/index.html", "display": "standalone", "orientation": "portrait", "background_color": "#06f8c5", "theme_color": "#06f8c5" }
  9. manifest.json { "name": "The Washington Post", "short_name": "Wash Post", "icons":

    [{ "src": "icon-48x48.png", "sizes": "48x48", "type": "image/png" }, {...}], "start_url": "/index.html", "display": "standalone", "orientation": "portrait", "background_color": "#06f8c5", "theme_color": "#06f8c5" }
  10. manifest.json { "name": "Currency Converter", "short_name": "CConverter", "icons": [{ "src":

    "icon-48x48.png", "sizes": "48x48", "type": "image/png" }, {...}], "start_url": "/index.html", "display": "standalone", "orientation": "portrait", "background_color": "#06f8c5", "theme_color": "#06f8c5" }
  11. keeping users safe is hugely important • Reliability: Is this

    the site that the user expects? • Integrity: Has anyone changed this content? • Privacy: Can anyone monitor my navigation?
  12. last considerations • Storage is not required • Easy to

    share (conversion flow) • Always updated • Lower costs compared to native app development.