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

Indiana Jones and the Offline Apps

Saúl Díaz
November 23, 2019

Indiana Jones and the Offline Apps

Vivimos en un mundo conectado, o eso es lo que nos han vendido.

En una sociedad que afirma que hay conectividad en todas partes, las situaciones en las que ésta brilla por su ausencia son más comunes de lo que creemos; y si queremos proporcionar la mejor experiencia para nuestros productos, tenemos que tenerlas en cuenta.

Manejar apropiadamente el estado de la conectividad de tus aplicaciones; puede hacer que éstas funcionen de manera que parezcan magia.

En esta charla comentaremos conceptos y técnicas que puedes utilizar para conseguir esta experiencia.

Saúl Díaz

November 23, 2019
Tweet

More Decks by Saúl Díaz

Other Decks in Programming

Transcript

  1. 2

  2. 3

  3. 4

  4. 5

  5. “ Offline is not a set of techniques to make

    your app faster. It is a philosophy that drives how your product is experienced. 6
  6. 12

  7. A GREAT OFFLINE EXPERIENCE RECIPE ➢ Highly optimistical ➢ Low

    to no saliency ➢ Gracefully aware of errors 26
  8. 27

  9. SIT AND THINK ➢ Understand your platform ➢ Understand your

    feature ➢ Understand your limitations 29
  10. 36

  11. LOGIC DIFFERENTLY 40 API Call Cache modification UI side effects

    Worker Job Cache modification API Call “Classic” Use Case “Offline” use case
  12. TRACKING MODIFICATIONS VIA METADATA 43 { "id": "sefford", "rev": "1-abc",

    "data": "..." } ➢ Vector Clocks ➢ Lamport timestamps
  13. “ Conflicts are not an error condition, the are the

    result of your infrastructure allowing the same data set to be modified across disconnected systems. The introduction of such conflicts in such a topology is the expected behaviour and their programmatic resolution is a core piece of the application logic. 44 https://developer.ibm.com/dwblog/2015/cloudant-document-conflicts-two/
  14. OFFLINE TECHNOLOGIES 45 Web App Polymer App Toolbox Ionic Hoodie

    WorkManager SyncAdapters CouchDB Realm Firebase
  15. 46

  16. FINAL TIPS ➢ Offline can be implemented à la carte

    ➢ Introspection over the playing field is critical ➢ Strive to build apps that work like magic! 48
  17. CREDITS AND RESOURCES Special thanks to all the people who

    made and released these awesome resources for free: ➢ Offline first resource website ➢ Miguel Quiñones awesome presentation about offline ➢ Nice list of resources about offline topics ➢ What’s graceful degradation? ➢ Cesar Valiente’s Wunderlist Sync Architecture presentation ➢ Presentation template by SlidesCarnival ➢ Maps in slides from David Rumsey Map Collection 49