Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
#OfflineFirst
#OfflineFirst
Mit Menschen Software
für Menschen entwickeln
Ulrich Deiters

Software Architect @ T-Systems Multimedia Solutions GmbH

ht...
Noch mehr: http://offlinestat.es
https://www.telekom.de/start/netzausbau
https://www.telekom.de/breitbandausbau-deutschland?ActiveTabID=map
Stand: August 2...
https://www.telekom.de/start/netzausbau
https://www.telekom.de/breitbandausbau-deutschland?ActiveTabID=map
Stand: August 2...
https://www.telekom.de/start/netzausbau
https://www.telekom.de/breitbandausbau-deutschland?ActiveTabID=map
Stand: August 2...
https://opensignal.com/
https://opensignal.com/
Stand: August 2017
https://opensignal.com/
Stand: August 2017
Was war nochmal vor ONLINE?
Letdorf / CC-BY-SA-3.0
Offline - das hatten wir doch schon immer!

Oh, offline geht auch. Prima.

Was das geht auch offline? Wow!
Trappatoni / CC-BY-SA-3.0
App-Cloud ist das neue Client-Server
Client/App Server/Cloud
Qualitätsattribute
ISO 25010:

Reliability (Zuverlässigkeit)

Maturity (Reife)

Availability (Verfügbarkeit)

Fault Tolera...
CAP Theorem (Eric Brewer, 1998)
http://robertgreiner.com/2014/08/cap-theorem-revisited/
https://www.infoq.com/articles/cap...
Eventual Consistency (Werner Vogels, 2008)
https://dl.acm.org/citation.cfm?doid=1466443.1466448

https://www.allthingsdist...
Systemüberblick und Herausforderungen
UI
Logic
ServiceService
Synchronisation
Validierung
Sicherheit/

Verschlüsselung
Cli...
Service Worker
PWA

„A service worker is a
programmable network proxy
that lets you control how
network requests from your...
Service Worker
UI
Logic
REST API
Service

Worker
JS Web App im Browser vert.x
GET /message
App Cache Memory
Demo
https://g...
Database Synchronisation
PouchDB 

=> Browser/node
(JavaScript)

Apache CouchDB 

=> Server (Erlang)

Multiversion Concurr...
Database Synchronisation
UI
Logic
CouchDB

REST API
PouchDB
JS Web App im Browser CouchDB
CouchDB 

Replication Protocol
I...
Google Android Architecture Components
Portions of this page are modifications based on work created and shared by the Andr...
Google Android Architecture Components - NetworkBoundResource
Portions of this page are modifications based on work created...
Architecture Components Sample App
Activity/
Fragment
ViewModel
GitHub

REST API
Repository

Android App GitHub
HTTP GET …...
https://experience.sap.com/fiori-design-ios/article/offline/
https://www.sap.com/developer/tutorial-navigator/mobile-interact...
User Experience
Freshness
Reach
Assurance
• Zeitstempel der letzten Änderung der Daten
• Zeitstempel der letzten Synchroni...
Was noch?
…
CouchDB, PouchDB, Couchbase, IBM Cloudant
realm.io
AWS AppSync
Google Firebase
Offline Data Sync in Azure Mobil...
#OfflineFirst
Nicht nachrüsten,
sondern vorher
berücksichtigen
Danke!
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer
Upcoming SlideShare
Loading in …5
×

of

DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 1 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 2 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 3 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 4 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 5 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 6 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 7 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 8 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 9 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 10 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 11 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 12 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 13 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 14 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 15 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 16 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 17 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 18 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 19 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 20 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 21 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 22 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 23 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 24 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 25 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 26 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 27 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 28 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 29 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 30 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 31 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 32 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 33 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 34 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 35 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 36 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 37 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 38 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 39 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 40 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 41 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 42 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 43 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 44 DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufriedene Nutzer Slide 45
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

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

Download to read offline

"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.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

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!

"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.

Views

Total views

721

On Slideshare

0

From embeds

0

Number of embeds

413

Actions

Downloads

1

Shares

0

Comments

0

Likes

0

×