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

From Mobile First to Offline First at That Conference

From Mobile First to Offline First at That Conference

It's all too easy assume that your web or mobile app will run on a fast and reliable network with great coverage. The reality for your app's users, though, is often a slow and unreliable network with spotty coverage. What happens when the network doesn't work, or when the device is in airplane mode? You get unhappy, frustrated users. Building on the principles of mobile first, offline first is an approach to application design in which a web, mobile, desktop, or Internet of Things (IoT) application is built for offline usage first and is then progressively enhanced to take advantage of network connectivity when available.

An offline-first app is an app that works, without error, when there is no network connection. An offline-first app can provide a better, faster user experience — both offline and online — by storing content and data locally and then applying progressive enhancement to synchronize with the cloud when a reliable network connection is available. An offline-first approach can be taken with Progressive Web Apps, mobile apps (native and hybrid), desktop apps (e.g. Electron), and Internet of Things (IoT) apps.

Bradley Holt

August 10, 2016
Tweet

More Decks by Bradley Holt

Other Decks in Programming

Transcript

  1. Bradley Holt, Developer Advocate
    Wednesday, August 10, 2016
    @BradleyHolt
    From Mobile First to Offline First

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. Web Browsers as Thin Clients

    View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. Embrace the
    Chaos of Web
    Development

    View Slide

  15. Progressive Enhancement

    View Slide

  16. Progressive Enhancement

    View Slide

  17. Ubiquitous
    Connectivity

    View Slide

  18. The Eight Fallacies of Distributed Computing
    1.  The network is reliable
    2.  Latency is zero
    3.  Bandwidth is infinite
    4.  The network is secure
    5.  Topology doesn't change
    6.  There is one administrator
    7.  Transport cost is zero
    8.  The network is homogeneous

    View Slide

  19. ✈ Mode

    View Slide

  20. View Slide

  21. Data
    Caps

    View Slide

  22. Urban
    Canyons

    View Slide

  23. Local
    Dev

    View Slide

  24. Lie-Fi

    View Slide

  25. View Slide

  26. Offline First
    Lack of connectivity is
    not an error condition.

    View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. View Slide

  31. View Slide

  32. View Slide

  33. View Slide

  34. Cloudant Sync

    View Slide

  35. View Slide

  36. One Database Per User
    userdb-d76846
    userdb-905cec
    userdb-adc95b
    userdb-c082f2
    userdb-730bba
    userdb-c3d3e5
    userdb-a1ec1f
    userdb-85a327
    userdb-9b9aba
    userdb-85bcfe
    serdb-da3d25

    View Slide

  37. Cloudant Envoy
    A CouchDB proxy to enable replication of database subsets, more at:
    github.com/cloudant-labs/envoy

    View Slide

  38. Cloudant
    FoodTracker

    View Slide

  39. View Slide

  40. View Slide

  41. Cloudant
    Location
    Tracker

    View Slide

  42. Offline
    First
    IoT

    View Slide

  43. Consumer
    Offline
    First
    IoT

    View Slide

  44. Industrial
    Offline
    First
    IoT

    View Slide

  45. Offline Camp
    We took the Offline First community for a three day retreat in the Catskill Mountains
    to help foster the growing community around the Offline First movement

    View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. View Slide

  50. View Slide

  51. View Slide

  52. View Slide

  53. View Slide

  54. View Slide

  55. View Slide

  56. View Slide

  57. View Slide

  58. View Slide

  59. View Slide

  60. View Slide

  61. Get Involved!
    §  Join the Offline First Slack team:
    offlinefirst.org/chat/
    §  Follow @OfflineCamp on Twitter
    §  Read the Offline Camp Medium publication:
    medium.com/offline-camp
    §  Join us at Offline Camp on the West Coast, in
    Europe, or at the planned Offline First conference!

    View Slide

  62. View Slide

  63. Image Credits
    §  Thin Client — OpenVMS by Leonardo Rizzi, on Flickr (CC BY-SA 2.0).
    §  the iOS family pile (2015) by Blake Patterson, on Flickr (CC BY 2.0).
    §  Screen size visualisation by Orde Saunders, on Flickr (CC BY 2.0).
    §  fluffy chaos by xdxd_vs_xdxd, on Flickr (CC BY-SA 2.0).
    §  Device landscape by Jeremy Keith, on Flickr (CC BY 2.0).
    §  Cell phone tower by Gary Lerude, on Flickr (CC BY-ND 2.0).
    §  Pneumatic Central by Sleestak, on Flickr (CC BY 2.0).
    §  Cloud Formation Over the Adirondacks by Bradley Holt, on Twitter.
    §  Money by thethreesisters, on Flickr (CC BY 2.0).
    §  Los Angeles Downtown by Aydin Palabiyikoglu, on Flickr (CC BY 2.0).
    §  workstation by Stev Ngo, on Flickr (CC BY 2.0).
    §  No Signal by Steve Hodgson, on Flickr (CC BY-SA 2.0).
    §  Waterfall by Paulo Valdivieso, on Flickr (CC BY-SA 2.0).
    §  Progressive Web App, le futur du Web au #axawebcenter
    @hsablonniere #nativeVsWeb #serviceworker #offline1st #sketch
    http://bit.ly/1TA7IvM by flexbox, on Flickr (CC BY 2.0).
    §  Service Workers fetch diagram by Mozilla Contributors (CC-BY-SA 2.5).
    §  Tessel 2 by SparkFun Electronics, on Flickr (CC BY 2.0).
    §  database by Tim Morgan, on Flickr (CC BY 2.0).
    §  A mockup of the golden Apple iPhone 5S by Zach Vega,
    on Wikimedia Commons (CC BY-SA 3.0).
    §  փఽ࢏ Sensors by Lei Gao, on Flickr (CC BY-SA 2.0).
    §  Offline Camp location by Bradley Holt, on Twitter.

    View Slide

  64. Questions?

    View Slide

  65. View Slide