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

Enterprise Apps for the Web Platform at Vermont Code Camp

Bradley Holt
September 15, 2018

Enterprise Apps for the Web Platform at Vermont Code Camp

Bradley Holt

September 15, 2018
Tweet

More Decks by Bradley Holt

Other Decks in Technology

Transcript

  1. Enterprise Apps for the Web Platform Bradley Holt Program Manager,

    Developer Advocacy Center for Open-Source Data and AI Technologies September 15, 2018 / © 2018 IBM Corporation
  2. Center for Open- Source Data and AI Technologies (CODAIT) September

    15, 2018 / © 2018 IBM Corporation http://codait.org/
  3. The Web Platform September 15, 2018 / © 2018 IBM

    Corporation NASA Earth's Light by NASA Goddard Space Flight Center, on Flickr <https://flic.kr/p/7FHvkj> (CC BY 2.0).
  4. Instagram and other Social Media Apps by Jason Howie, on

    Flickr <https://flic.kr/p/d41HES> (CC BY 2.0). Native Apps
  5. Progressive Web Apps Provides both the discoverability of a web

    app and the reliable, fast, and engaging user experience of a native mobile app September 15, 2018 / © 2018 IBM Corporation
  6. Twitter Lite Twitter Lite is fast, works offline, can be

    installed to your home screen, can send you push notifications, and is accessible on the open web September 15, 2018 / © 2018 IBM Corporation https://lite.twitter.com/content/lite-twitter/en.html
  7. Not just offline… Accès wi-fi à Gorakshep (5140m) by Jerome

    Bon, on Flickr <https://flic.kr/p/bDzjj5> (CC BY 2.0).
  8. Instant access to content & data speed 3 by Monkieyes,

    on Flickr <https://flic.kr/p/PXPwK> (CC BY 2.0).
  9. Reliable, fast, and engaging user experience— regardless of network connectivity

    Static Wallpaper by James Spinks, on Flickr <https://flic.kr/p/2b1JP> (CC BY-SA 2.0).
  10. The next billion people on the internet the galaxy by

    tommy@chau, on Flickr <https://flic.kr/p/sbEHMt> (CC BY 2.0).
  11. Web Platform Tools for Developers September 15, 2018 / ©

    2018 IBM Corporation lines lines by Yosuke Hayashi, on Flickr <https://flic.kr/p/3ehisa> (CC BY 2.0).
  12. Geolocation API Network Information API IndexedDB WebRTC API Push API

    Notifications API Device Orientation API Screen Orientation API Permissions API Proximity API Pointer Lock API Vibration API Payment Request API Battery Status API Ambient Light Sensor API Service Worker API IBM Design Icons by International Business Machines Corporation <https://www.ibm.com/design/language/resources/icon-library/> (CC BY 4.0). September 15, 2018 / © 2018 IBM Corporation
  13. Add to Home Screen Apps meeting certain guidelines can prompt

    users to add the app to the Home screen on modern devices Chrome add to Home screen banner by Mozilla Contributors <https://developer.mozilla.org/en-US/Apps/Progressive/Add_to_home_screen> (CC-BY-SA 2.5). September 15, 2018 / © 2018 IBM Corporation
  14. Notifications API Notifications can deliver new content to users, even

    when the app is closed PWA notification by Mozilla Contributors <https://developer.mozilla.org/en-US/Apps/Progressive/Re-engageable_Notifications_Push> (CC-BY-SA 2.5). September 15, 2018 / © 2018 IBM Corporation
  15. Payment Request API The Payment Request API enables in-app payments

    via credit card or payment processors such as Google Pay Example of basic-card support in the Payment Request API by Google Developers <https://developers.google.com/web/fundamentals/payments/deep-dive-into-payment-request> (CC BY 3.0). September 15, 2018 / © 2018 IBM Corporation
  16. Service Workers Service Workers allow for fine- grained control over

    caching of content and assets, enabling cache-first web apps Service Workers fetch diagram by Mozilla Contributors <https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers> (CC-BY-SA 2.5). September 15, 2018 / © 2018 IBM Corporation
  17. IndexedDB IndexedDB enables app data to be stored locally within

    a browser IBM Design Icons by International Business Machines Corporation <https://www.ibm.com/design/language/resources/icon-library/> (CC BY 4.0). September 15, 2018 / © 2018 IBM Corporation
  18. localForage localForage wraps IndexedDB, WebSQL, or localStorage, providing a consistent

    API regardless of which storage mechanism is supported by the end user’s browser IBM Design Icons by International Business Machines Corporation <https://www.ibm.com/design/language/resources/icon-library/> (CC BY 4.0). September 15, 2018 / © 2018 IBM Corporation
  19. Sync is Hard Technological devices designed by D3Images / Freepik

    <http://www.freepik.com/>. September 15, 2018 / © 2018 IBM Corporation
  20. Offline Sync for Progressive Web Apps PouchDB Devices by Darwin

    Laganzon, on Pixabay <https://pixabay.com/photo-1917227/> (CC0 Public Domain). | Cloud by Raphael Silva, on Pixabay <https://pixabay.com/photo-2109664/> (CC0 Public Domain). September 15, 2018 / © 2018 IBM Corporation Apache CouchDB
  21. Pokedex.org An offline-capable Progressive Web App built with Service Worker

    and PouchDB https://www.pokedex.org/ September 15, 2018 / © 2018 IBM Corporation
  22. Devices by Darwin Laganzon, on Pixabay <https://pixabay.com/photo-1917227/> (CC0 Public Domain).

    | Cloud by Raphael Silva, on Pixabay <https://pixabay.com/photo-2109664/> (CC0 Public Domain). PouchDB September 15, 2018 / © 2018 IBM Corporation Apache CouchDB
  23. Shopping List A series of Offline First demo apps— each

    built using a different stack https://ibm-watson-data-lab.github.io/shopping-list-demo September 15, 2018 / © 2018 IBM Corporation
  24. Progressive Web Apps, Progressively September 15, 2018 / © 2018

    IBM Corporation Uphill by Tuncay, on Flickr <https://flic.kr/p/qWGADK> (CC BY 2.0).
  25. Ensure Your Website is Mobile Friendly September 15, 2018 /

    © 2018 IBM Corporation • Implement responsive web design • Ensure cross-browser compatibility • Test and improve web performance
  26. Improve an Existing Website September 15, 2018 / © 2018

    IBM Corporation • Use an SSL/TLS certificate (Let's Encrypt is your friend) • Add a Web App Manifest containing app metadata • Use a Service Worker to make your app cache-first
  27. Create a Native App-Like Experience September 15, 2018 / ©

    2018 IBM Corporation • Provide instant page transitions with a single-page app • Minimize time-to-interactive with the PRPL pattern • Use a local database (IndexedDB, localForage, or PouchDB)
  28. Leverage the Web Platform September 15, 2018 / © 2018

    IBM Corporation • Ensure that each page can be addressed via a URL • Implement server-side rendering • Bridge any gaps between web platform and native with Ionic
  29. Lighthouse Lighthouse is a tool for auditing and improving web

    apps https://developers.google.com/web/tools/lighthouse/ September 15, 2018 / © 2018 IBM Corporation
  30. big bend by Vincent Lock <https://flic.kr/p/ekgBjz>, on Flickr (CC BY

    2.0). What will you build on the web platform?
  31. Resources September 15, 2018 / © 2018 IBM Corporation •

    PWA Stats: https://www.pwastats.com/ • localForage: https://localforage.github.io/localForage/ • PouchDB: https://pouchdb.com/ • CouchDB: http://couchdb.apache.org/ • IBM Cloudant: https://www.ibm.com/cloud/cloudant • Hoodie: http://hood.ie/ • Lighthouse: https://developers.google.com/web/tools/lighthouse/ • Ionic: https://ionicframework.com/ • IBM Developer: https://developer.ibm.com/