Skip to content

Latest commit

 

History

History
28 lines (27 loc) · 1.65 KB

03 Progressive Web Apps A Love Story.md

File metadata and controls

28 lines (27 loc) · 1.65 KB

Progressive Web Apps: A Love Story

Nolan Lawson (@nolanlawson)

  • Pokédroid app:
    • 2010: first smartphones, not really in web dev focus
    • Pokédroid simply gives information on Pokémon in the Pokédex
    • offline (even with 2 min import on first start) => super fast in use
    • 3.5mb SQLite database
    • DMCA'd: publishing app asserts IP ownership of content => website ok (but 2011 no technology for offline web app)
  • Web: huge change from 2010->2016
    • 2009: html5 vs flash vs silverlight
    • 2016: Progressive Web Apps vs Java (Android) vs Swift/Objective-C (iOS)
  • Progressive webapps: website that "becomes" an app
    • works offline
    • launches from home screen ("add to homescreen" button offered by browsers based on usage heuristics)
    • "feels" like a native app (e.g. 60fps)
    • "native" features (e.g. push notifications, background sync)
  • available technologies that allow progressive webapps:
    • Application Cache => ServiceWorker
    • LocalStorage/WebSQL => IndexedDB
    • Touch icons => Web App Manifest
    • Save to homescreen => Install banner (offered by browser)
  • pokedex.org: progressive webapp successor to Pokédroid
    • Server-side rendering (test with disabled javascript + throttle to 2G)
    • FLIP animations (JavaScript animations @ 60fps)
  • best practices from a native app developer:
    • prefer offline (fast, always there): PouchDB on client, sync with CouchDB on server if entry not found
    • use background threads (=> web workers): Action Message (UI => web worker) -> Action Handler (web worker) -> Render (virtual DOM, web worker) -> Diff (web worker) -> Patch message (web worker => UI)