Wróć do aktualności
Opublikowano 20 listopada 2024Zaktualizowano 20 listopada 20242 min lektury

Jak tworzymy tryb offline w Cooperate

Dlaczego nasza PWA stawia na odporność w terenie: sprytne cache'owanie, synchronizację w tle i bezpieczne odświeżanie sesji.

Ilustracja aplikacji budowlanej na tablecie działającej przy zmiennej sile sygnału
pwaoffline-firstzespoly terenowe

Jak tworzymy tryb offline w Cooperate

Ekipy budowlane rzadko mają stabilne Wi-Fi. To fakt, który wpłynął na każdą warstwę platformy Cooperate: od strony marketingowej, przez marketplace, po komunikację, która musi działać nawet przy słabym zasięgu.

Cele odpornej PWA

  • Natychmiastowy start. Kluczowe pulpity są wstępnie buforowane przez service worker, aby brygadziści zobaczyli dane dostępności w kilka sekund.
  • Synchronizacja w tle. Wychodzące wiadomości, akceptacje umów i wpisy audytowe trafiają do lokalnej kolejki i wysyłają się automatycznie po powrocie sieci.
  • Bezpieczne odświeżanie sesji. Korzystamy z @supabase/ssr i utwardzonych cookies, dzięki czemu wygasające sesje odnawiają się bez ujawniania tokenów w pamięci przeglądarki.

Strategia cache'owania

  1. Publiczne zasoby marketingowe mają niezmienny cache z wersjonowanymi ścieżkami, co zapewnia natychmiastowe ładowanie w trybie samolotowym.
  2. API w obrębie najemcy nigdy nie trafiają do cache i są zawsze weryfikowane przez server actions, aby respektować zasady RLS.
  3. Zasoby w tle takie jak słowniki językowe i grafika UI używają stale-while-revalidate, by łączyć zasięg z aktualnością.

Dzięki temu Cooperate serwuje bogatą treść marketingową bez opóźnień, a jednocześnie chroni prywatne dane o zasobach i umowach.

Nasz roadmap PWA

  • Dialogi instalacyjne dopasowane do języka dla użytkowników mówiących po angielsku, norwesku i polsku.
  • Powiadomienia gotowe do pracy offline, które pobierają kontekst rozmowy z wyprzedzeniem.
  • Wyraźne wskaźniki synchronizacji w komunikatorze, aby użytkownicy wiedzieli, kiedy wiadomości czekają na wysyłkę.

Daj nam znać, jak sprawdza się to w terenie: product@cooperate.no.

Podobała Ci się ta aktualizacja? Podziel się nią ze współpracownikami.Masz pytania? Napisz do nas na hello@cooperate.no