Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer

464 Aufrufe

Veröffentlicht am

"High Speed Internet, permanently online, permanently connected, LTE überall, na klar geht alles nur online - der Rest ist Error Handling. Done."

Oft ist uns gar nicht mehr bewusst, dass wir damit Nutzer enttäuschen, ihre Zeit verschwenden und die Nutzung unserer Anwendungen einschränken. Leider ist Offline-Fähigkeit nachträglich oft ähnlich schlecht nachrüstbar wie die Unterstützung von Mobile Devices. Daher möchten ich Euch zeigen, wie man mit Offline First von Anfang an "offline denken" kann, vergleichbar mit Mobile First.

Ich werde Euch kurz in die Motivation für Offline-Funktionen, Nutzerwartungen, UX-Ansätze sowie Herausforderungen und Ansätze für die Anwendungsarchitektur und -sicherheit einführen und aufzeigen wie wir CAP und Eventual Consistency auf diese Problemstellung anwenden können.

Anhang von konkreten Kundenprojekten für Native Mobile Apps schauen wir uns Nutzen und Lösungen für effektives Offline-Arbeiten an.

Wir werfen einen Blick darauf, welche Technologien für Progressive Web Apps zur Verfügung stehen und wie Digital Business Platforms wie Salesforce oder die SAP Cloud Platform die Offlinefähigkeit unterstützen. Kann man wirklich schon „Offline as a Service“ dazukaufen?

Also: "Kein Netz" ist nicht zwingend ein Fehler.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer

  1. 1. #OfflineFirst
  2. 2. #OfflineFirst
  3. 3. Mit Menschen Software für Menschen entwickeln Ulrich Deiters Software Architect @ T-Systems Multimedia Solutions GmbH https://xing.to/ulid Uli @ulid000 #Berlin #Fahrrad …
  4. 4. Noch mehr: http://offlinestat.es
  5. 5. https://www.telekom.de/start/netzausbau https://www.telekom.de/breitbandausbau-deutschland?ActiveTabID=map Stand: August 2017
  6. 6. https://www.telekom.de/start/netzausbau https://www.telekom.de/breitbandausbau-deutschland?ActiveTabID=map Stand: August 2017
  7. 7. https://www.telekom.de/start/netzausbau https://www.telekom.de/breitbandausbau-deutschland?ActiveTabID=map Stand: August 2017
  8. 8. https://opensignal.com/ https://opensignal.com/ Stand: August 2017
  9. 9. https://opensignal.com/ Stand: August 2017
  10. 10. Was war nochmal vor ONLINE?
  11. 11. Letdorf / CC-BY-SA-3.0
  12. 12. Offline - das hatten wir doch schon immer! Oh, offline geht auch. Prima. Was das geht auch offline? Wow!
  13. 13. Trappatoni / CC-BY-SA-3.0
  14. 14. App-Cloud ist das neue Client-Server Client/App Server/Cloud
  15. 15. Qualitätsattribute ISO 25010: Reliability (Zuverlässigkeit) Maturity (Reife) Availability (Verfügbarkeit) Fault Tolerance (Fehlertoleranz) Recoverability (Wiederherstellbarkeit) Performance Efficiency (Effizienz) Security (Sicherheit) … https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-1:v1:en https://www.embarc.de/software-qualitaet-iso-25010/ Resilience
  16. 16. CAP Theorem (Eric Brewer, 1998) http://robertgreiner.com/2014/08/cap-theorem-revisited/ https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html http://abiasforaction.net/cap-theorem/ Linearizable Consistency Availability Network Partition Tolerance In the case of a network Partition choose one: Linearizable Consistency vs. Availability context: read/write operations
  17. 17. Eventual Consistency (Werner Vogels, 2008) https://dl.acm.org/citation.cfm?doid=1466443.1466448 https://www.allthingsdistributed.com/2008/12/eventually_consistent.html Wenn keine weiteren Schreibvorgänge stattfinden 
 und keine Netzwerkfehler existieren, werden die Daten schließlich 
 über alle Knoten konsistent.
  18. 18. Systemüberblick und Herausforderungen UI Logic ServiceService Synchronisation Validierung Sicherheit/
 Verschlüsselung Client/App Server/Cloud User Experience Caching
  19. 19. Service Worker PWA „A service worker is a programmable network proxy that lets you control how network requests from your page are handled.“ Fetch is the new XHR Lifecycle Offline Cookbook Google Workbox https://jakearchibald.com/2014/offline-cookbook/ https://developers.google.com/web/tools/workbox/ Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. Stale While Revalidate
  20. 20. Service Worker UI Logic REST API Service
 Worker JS Web App im Browser vert.x GET /message App Cache Memory Demo https://github.com/ulid000/offline-first-sw-serverhttps://github.com/ulid000/offline-first-sw
  21. 21. Database Synchronisation PouchDB 
 => Browser/node (JavaScript) Apache CouchDB 
 => Server (Erlang) Multiversion Concurrency Control (MVCC) Replication Protocol Conflict Resolution Image from https://github.com/oreilly/couchdb-guide available under a Creative Commons Attribution license
  22. 22. Database Synchronisation UI Logic CouchDB
 REST API PouchDB JS Web App im Browser CouchDB CouchDB 
 Replication Protocol Indexed DB CouchDB Demo https://github.com/ulid000/offline-first-pouchdb
  23. 23. Google Android Architecture Components Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License. https://developer.android.com/topic/libraries/architecture/guide.html
  24. 24. Google Android Architecture Components - NetworkBoundResource Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License. https://developer.android.com/topic/libraries/architecture/guide.html
  25. 25. Architecture Components Sample App Activity/ Fragment ViewModel GitHub
 REST API Repository
 Android App GitHub HTTP GET … SQLite Demo https://github.com/googlesamples/android-architecture-components/tree/master/GithubBrowserSample Model Remote
 Data
 Source Room
  26. 26. https://experience.sap.com/fiori-design-ios/article/offline/ https://www.sap.com/developer/tutorial-navigator/mobile-interactive-tutorials/offline/native-ios.html https://www.sap.com/developer/tutorials/fiori-ios-hcpms-offline-odata-introduction.html https://help.sap.com/viewer/fc1a59c210d848babfb3f758a6f55cb1/Latest/en-US/8117b4fc553d4e1ea91129eee788677f.html SAP Cloud Platform Mobile Services + iOS SDK Demo UI Logic HCPMS
 Offline Service ODataModel iOS App SAP Cloud Platform MobiLink Protocol Ultralite OData
 Demo Service OfflineODataProvider (OnlineODataProvider)
  27. 27. User Experience Freshness Reach Assurance • Zeitstempel der letzten Änderung der Daten • Zeitstempel der letzten Synchronisation • Erreichbar • Nicht erreichbar • Unbekannt • Gespeichert • Synchronisiert • Speicherung/Synchronisation fehlgeschlagen • Unbekannt https://medium.com/@jessebeach/my-biggest-takeaway-from-the-second-offline-camp-in-santa-margarita-ca-d0dd930cd02b Expressing offline syncing to the end user
  28. 28. Was noch? … CouchDB, PouchDB, Couchbase, IBM Cloudant realm.io AWS AppSync Google Firebase Offline Data Sync in Azure Mobile Apps Salesforce SmartSync, SmartStore …
  29. 29. #OfflineFirst Nicht nachrüsten, sondern vorher berücksichtigen
  30. 30. Danke!

×