Je stapt de metro in. Vijf haltes, 17 minuten, geen bereik. Tegen de tijd dat je weer bovenkomt heb je drie mails beantwoord en een bericht in Slack opgesteld, en zou de timer nog gewoon op het gesprek met Acme moeten lopen. De meeste apps hadden die regel verloren of gepauzeerd. Timesheet niet.
De mobiele apps registreren volledig offline. Regels worden naar een lokale database geschreven, met hun echte begin- en eindtijd. Zodra je toestel weer verbinding heeft, krijgt de cloud de wijzigingen, halen je andere apparaten ze op, en klopt alles weer, zonder dat jij iets doet.
Wat offline echt betekent
Offline kunnen werken betekent drie dingen:
- Lezen werkt zonder internet. Oude regels, projectlijsten, tags, tarieven en contracten: allemaal beschikbaar uit de lokale database die de app op je toestel bijhoudt.
- Schrijven werkt zonder internet. Timers starten en stoppen, regels aanmaken met expliciete begin- en eindtijden, bewerken, verwijderen en er pauzes of onkosten aan hangen, het wordt allemaal lokaal bewaard en blijft staan als je de app opnieuw opent.
- Botsingen lossen zich netjes op. Zodra je toestel weer verbinding heeft, gaan je lokale wijzigingen omhoog, komen de wijzigingen uit de cloud van je andere apparaten omlaag, en worden verschillen per regel goedgezet.
De belofte die je merkt: de app blokkeert niet, verliest geen gegevens, en gooit je geen foutmeldingen voor de voeten omdat er geen verbinding is.
Wat er op je toestel staat
Elke mobiele app van Timesheet houdt een lokale database bij, Room op Android en GRDB op iOS. Daarin zit:
- al je projecten, tags, tarieven en, in de Business-abonnementen, contracten
- al je urenregels
- alle pauzes die bij die regels horen
- wijzigingen die nog moeten worden verstuurd
- de huidige stand van de timer
De webapp en de browserextensie hebben die database niet. Die hebben een internetverbinding nodig om te werken.
Hoe de synchronisatie zich echt gedraagt
Je gegevens kunnen drie verschillende wegen afleggen:
Online: meteen doorschrijven
Heeft je toestel verbinding, dan wordt elke wijziging eerst lokaal bewaard en binnen enkele seconden naar de cloud gestuurd. Je andere apparaten krijgen hem bij hun volgende synchronisatie binnen.
Offline: lokaal bewaren en in de wachtrij zetten
Heeft je toestel geen verbinding, dan wordt elke wijziging alleen lokaal bewaard. De app noteert hem als nog te versturen en zet hem in de wachtrij.
Weer verbinding: bijwerken
Zodra je toestel weer verbinding heeft, via wifi, mobiel internet of een hotspot, doet de app dit:
- de lokale wijzigingen in de wachtrij versturen, in de volgorde waarin je ze maakte
- de wijzigingen ophalen die je op andere apparaten hebt gemaakt sinds de vorige keer
- alles samenvoegen in de lokale database
- de lopende timer bijwerken als de cloud een nieuwere stand heeft
Dat is meestal een kwestie van seconden, zelfs met een flinke stapel wachtende regels.
Botsingen: wie wint
De meeste apps met een offlinemodus houden zich vaag over botsingen. Dit is wat er echt gebeurt:
Eén regel, twee apparaten
Bewerk je dezelfde regel op je telefoon, offline, en op het web, online, dan houdt de cloud de nieuwste wijziging: elke wijziging draagt een tijdstempel van de laatste bewerking, en een binnenkomende schrijfactie die ouder is dan wat de cloud al heeft, wordt geweigerd. De lokale kopie op je telefoon wordt bij de volgende synchronisatie overschreven met de definitieve stand uit de cloud.
In de praktijk komt dit zelden voor. En gebeurt het toch, dan is de nieuwste wijziging degene die overleeft, op elk apparaat.
De lopende timer
Er kan per gebruiker maar één timer tegelijk lopen. Loopt er een timer op je horloge en start je telefoon zonder verbinding zelfstandig een andere, dan wint bij het herstellen van de verbinding de meest recente begintijd. De eerdere timer wordt vanzelf afgesloten met de laatst bekende verstreken tijd.
Verwijderen
Verwijderen werkt met een grafsteen: een verwijderde regel blijft met een vlaggetje in de lokale database staan tot de cloud het verwijderen bevestigt. Zo kan een regel die je op toestel A weggooit niet opnieuw opduiken vanaf toestel B, dat nog niet had gesynchroniseerd.
Waar de abonnementen verschil maken
| Abonnement | Offline registreren | Synchronisatie via de cloud | Meerdere apparaten |
|---|---|---|---|
| Basic, gratis | ja | nee | nee |
| Plus | ja | ja | ja |
| Pro | ja | ja | ja |
| Business | ja | ja | ja |
In het gratis Basic-abonnement registreert je telefoon offline, maar er is geen cloud en geen ander apparaat om mee te synchroniseren. Je back-ups zijn dan lokaal, plus wat je zelf exporteert naar Excel of CSV.
Vanaf Plus komen de cloud en synchronisatie tussen je mobiele apparaten erbij, met de Apple Watch en de iPad inbegrepen. Toegang via de webapp is daar bovenop een functie van Pro.
Situaties uit de praktijk
De rit met de metro
Je telefoon registreert ondergronds een regel van 08.15 tot 08.32 uur op "Lezen · Vaknieuws". De regel wordt lokaal bewaard. Om 08.35 uur vangt je telefoon weer een netwerk op, en de regel gaat in minder dan een seconde omhoog.
De vlucht
Een vlucht van zes uur. Je start bij het opstijgen een timer op "Reizen · Bezoek Acme". Daarnaast tik je op je iPad drie nieuwe regels voor vorige week in. Alle vier de regels worden lokaal bewaard, op allebei de apparaten. Op de grond krijgen ze weer verbinding en wisselen ze gegevens uit. Binnen tien seconden staan alle vier in de webapp op je laptop.
De serverruimte in de kelder
Een monteur zit twee uur in een serverruimte zonder mobiel bereik, een bekende situatie bij urenregistratie voor ICT'ers. Bij aankomst start hij de timer vanaf zijn horloge, terwijl zijn telefoon in het kluisje offline is. Het horloge registreert lokaal. Bij terugkomst synchroniseren telefoon en horloge rechtstreeks via bluetooth, en de telefoon duwt alles naar de cloud zodra hij weer verbinding heeft.
De wifi in het café die wegvalt
Je werkt in een café met een lopende timer op je telefoon. De wifi valt midden in een blok van 25 minuten 90 seconden weg. De timer loopt lokaal gewoon door. Je merkt er niets van, en de regel heeft de juiste begin- en eindtijd.
Batterij en opslag
De offlinemodus is zuinig:
- Opslag: de lokale database blijft bij de meeste mensen klein, ook met jaren aan regels, want urenregels zijn rijen tekst en getallen en geen media
- Batterij: synchroniseren op de achtergrond gebruikt de achtergrondtaken van iOS en WorkManager op Android, en allebei knijpen ze stevig af om je batterij te sparen
- Netwerk: zodra je toestel weer verbinding heeft, wisselt de synchronisatie alleen de verschillen uit, en niet je hele gegevensset
Wat er gebeurt als de database beschadigd raakt
Een beschadigde database komt heel zelden voor, en wijst meestal op te weinig opslag of op een toestel dat middenin het schrijven werd uitgezet. Gebeurt het toch, dan zegt de app het in plaats van stilletjes gegevens te verliezen. Met synchronisatie via de cloud, vanaf Plus, is de oplossing eenvoudig: log uit, log weer in, en de app haalt een verse kopie van je gegevens uit de cloud.
In Basic is er geen kopie in de cloud, en precies daarom tellen regelmatige exports en de lokale back-up. Dat is je vangnet in het gratis abonnement.
Patronen die goed werken
Vertrouw op de offlinemodus. De meestgemaakte fout is registreren uitstellen of overslaan omdat "ik het wel doe zodra ik weer online ben". De app regelt offline, jij hoeft dat niet.
Spring niet halverwege een regel tussen apparaten. Een timer op je horloge stoppen en de regel die daaruit komt offline op je iPad bewerken werkt meestal, maar je maakt botsingen wel waarschijnlijker. Kies één toestel voor die dag.
Synchroniseer vooraf bij lange stukken zonder verbinding. Open de app vlak voor een vlucht even, en laat hem bevestigen dat alles gesynchroniseerd is. Zo begin je dat stuk zonder verbinding met de verste stand.
Kijk naar de status van de synchronisatie. Het accountscherm laat de laatste geslaagde synchronisatie zien en hoeveel wijzigingen er nog wachten. Eén blik voordat je offline gaat vertelt je of alles bij is.
Veelgestelde vragen
Hoelang kan mijn telefoon offline zijn voordat het ophoudt te werken? Onbeperkt. De database staat lokaal en verloopt niet. Sommige mensen zijn wekenlang offline, en de synchronisatie loopt bij het herstellen van de verbinding gewoon netjes bij.
Synchroniseert mijn horloge rechtstreeks of via mijn telefoon? Via je telefoon. Apple Watch en iPhone synchroniseren rechtstreeks over bluetooth als ze bij elkaar in de buurt zijn, en de iPhone duwt alles naar de cloud zodra hij internet heeft.
Gaan lopende timers verloren als de app geforceerd wordt afgesloten? Nee. De stand van de timer staat in de lokale database. De app pakt bij het opnieuw openen op waar hij was.
Kunnen twee apparaten online zijn met tegenstrijdige timers? Even wel, maar de regels voor botsingen wijzen binnen enkele seconden een winnaar aan. De timer die verliest, wordt afgesloten met de laatst bekende verstreken tijd, als een afgeronde regel.
En de browserextensie? De browserextensie in Plasmo werkt alleen online. Hij leest uit de cloud en schrijft naar de cloud. Er zit geen lokale database in de extensie. Gebruik de mobiele apps als je offline door wilt kunnen.
Samengevat
- De mobiele apps ondersteunen offline registreren volledig, met concrete begin- en eindtijden op elke regel
- Lokale wijzigingen wachten in de rij en gaan omhoog zodra je toestel weer verbinding heeft
- Botsingen worden per regel opgelost: de nieuwste wijziging wint, op elk apparaat
- Offline registreren zit in elk abonnement, en synchronisatie via de cloud vraagt om Plus
- De webapp en de browserextensie werken alleen online
Verder lezen
- Timesheet op al je apparaten met synchronisatie via de cloud voor het volledige plaatje met meerdere apparaten
- Registreren vanaf je Apple Watch voor de combinatie van je pols en je broekzak
- Urenregistratie automatiseren met geofence, wifi en NFC voor de triggers die ook afgaan als de dataverbinding het niet doet