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

PWA in Practice

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

PWA in Practice

Kinds of PWA and personal PWA Projects by Frank Jogeleit.

Avatar for move:elevator

move:elevator

January 16, 2020
Tweet

More Decks by move:elevator

Other Decks in Technology

Transcript

  1. Who am I Frank Jogeleit @move:elevator GmbH
 Backend Engineer GitHub:

    https://github.com/fjogeleit
 Twitter: @FrankJogeleit
  2. Agenda • Kinds of PWA • Personal PWA Projects •

    The good • The bad • The ugly • Learnings This talk is about …
  3. The understanding of PWA’s There are many different types, requirements

    and implementations of Progressive Web Apps • Content based communication Apps like Twitter concentrate on performance und features like Web Share. Offline first is not a really requirement and so you can’t really use it without an active connection • Tools with a focused functionality have no need for a constant connection and can offline first without any downfalls like https://squoosh.app It depends …
  4. The understanding of PWA’s The most projects I know are

    in between. It depends on functionality and sometimes on a specific feature. • When we decide to go with an PWA? • Device Support (iOS, Android, Desktop, Browser?) • User Environment (stable connectivity) • Featureset / Applikation / Context • Deadlines / Timeline / Developers • Deployments / Updates It depends …
  5. What we have made as PWA • Digitale Leader recording

    with dynamic surveys • Appointment Management • Information material: PDF, Images, Video • Multimedia Notes: Audio, Text, Drawings, Images • Teamchat • Statistical Evaluation • Follow Up tools Speedlead
  6. Speedlead • Easy Setup per Customer • Wide device and

    browser support • Core features have complete offline support • create / update / delete reports and notes • open information material • Update is an simple website deployment without additional user actions • Customizable layout The good parts
  7. Speedlead • Speedlead development starts in early 2017, at this

    time there was no ServiceWorker support for Safari • No cache and fetch API for offline support • Not installable on iOS • No Camera / Audio access on installed iOS Versions • No background sync API The bad parts
  8. Speedlead • Complex implementation for Safari Browser support • Offline

    support with RxJS middleware to execute different actions on request failures • Persist failed requests for a later synchronization • Switch in offline mode by request timeouts • Persist files in indexedDB for offline access • Retry logic by expired authorization • LocalStorage as simple persistent redux solution The ugly parts
  9. Speedlead • windows.onLine API works different for Safari, it also

    return true if you are in a network (LAN) without Internet connection. So wie also use requests timeouts as indicator for offline mode • We replaced the indexedDB storage for files with the cache API after Safari also started to support it. • indexedDB loads the complete resource before it returns the file, so it can block your UI with large files • Cache API streams responses which leads to a better performance Learnings