Nieuws

De Transporter-app bouwen: offline-first werken in het transport

Als de verbinding onbetrouwbaar is en chauffeurs onder tijdsdruk staan, kan een mobiele app niet op iedere serverreactie wachten. Zo bouwden we Transporter: een robuuste offline-first C#-app voor Zebra-apparaten die altijd blijft werken.

De Transporter-app bouwen: offline-first werken in het transport

Toen TST Terschelling ons benaderde om hun op papier gebaseerde drivers workflow te vervangen, was de brief eenvoudig: maak het sneller, maak het digitaal, maak het betrouwbaar.

De beperking die alles vormde

De Wadden-eilanden hebben een onregelmatige mobiele dekking. De veerboten kruisen twee keer per dag. Een bestuurder die goederen op de haven laadt om 6 uur 's nachts heeft niet de luxe om te wachten op een server heen en weer elke keer dat ze een barcode scannen. De app moest volledig offline werken niet als een terugval, maar als de primaire besturingsmodus.

Die enkele beperking veranderde elke architectonische beslissing die we maakten.

Wat doet Transporter

Transporter is de operationele ruggengraat van een bestuurder.

  • Voer login en route toewijzing
  • Loading van vrachtwagens met barcodescanning en kwantitatieve validering
  • Stop-by-stop-leveringsworkflow met uitzonderingshandleiding
  • Digitale leveringsbewijs, met inbegrip van de afname van de handtekening
  • Sluit de route aan het einde van de dag en synchroniseren terug naar de backend

Het apparaat bewaart de staat, wachtrij evenementen en synchroniseert opportunistisch wanneer verbinding beschikbaar is. Er is niets dat een netwerkoproep in het kritische pad blokkeert.

De technische stapel

We hebben Transporter gebouwd als een native C# applicatie gericht op Zebra Android apparaten. Zebra handhelds zijn de industrie standaard voor magazijn- en logistieke scannen.

De backend is een PHP REST API ondersteund door MySQL. Staat reconciliatie gebeurt via een evenement-sourced synchronisatie model: het apparaat accumuleert een log van operaties, de server past ze in orde toe, en conflicten worden deterministisch opgelost. De bestuurder ziet nooit een loading spinner op het kritische moment.

Wat we hebben geleerd

Het is eenvoudig om online te gaan totdat je het goed moet aanpakken. Elke randhouding die triviaal is in een altijd verbonden app wordt een ontwerpprobleem: wat gebeurt er als een bestuurder hetzelfde item twee keer scans op verschillende apparaten? Wat als de routegegevens op de server zijn veranderd sinds de app voor het laatst is gesynchroniseerd? Wat als de apparaatklok verkeerd is?

We hebben veel tijd besteed aan het synchronisatieprotocol en aan het UI-feedback-model om ervoor te zorgen dat de bestuurder altijd weet wat de autoritaire status van zijn route is, zelfs toen die status drie uur geleden werd bijgewerkt op een veerboot.

Het resultaat is een app die sinds de lancering dagelijkse routes uitvoert zonder een enkel probleem met de data-integratie.

Het resultaat

TST Terschelling vervangt een clipboard-and-paper-proces dat al jaren aanwezig was. De laadtijd per vrachtwagen is aanzienlijk gedaald. Het bewijs van levering geschillen verdwenen omdat elke levering nu een tijdstempel, ondertekend digitaal record heeft. En het operatieteam kan de vooruitgang van de live route vanaf het kantoor zien in plaats van te wachten op chauffeurs om te bellen.

Het is het soort project dat ons eraan herinnert waarom software bestaat: om frictie uit het werk te verwijderen dat echt telt.

Terug naar nieuws

Meer

Gerelateerde artikelen

Wilt u met ons samenwerken?

Neem contact op, dan bespreken we uw project.