Preview: SignaUnit is in private development. All figures shown are sample data for illustration, not customer results.

iOS app

Offline sync

Planned for the iOS app. Working without signal, and syncing safely after.

On this page

Planned Status: not built yet. Offline sync is part of the planned iOS app; this page describes the design. Today, SignaUnit runs on the web and needs a connection. Web check-ins are already retry-safe: a resend after a dropped connection is saved once.

The goal: in a stockroom or between units, losing signal never means losing work.

What works offline Planned

With no connection you can:

  • See This week from HQ and every active priority, with its target, conditions and status.
  • Acknowledge priorities.
  • Log check-ins and add notes, by touch or by voice.
  • Run audits, including photos.
  • Hear the daily brief, generated from cached data.

Changes you make offline show a quiet “will sync” mark. There are no error walls.

What’s cached on the phone

The app keeps a local copy of what you need:

  • Your active assignments and the current version of each priority,
  • Recent check-ins and notes,
  • Your slice of the organization (your units, and for field consultants, the units you cover),
  • Audit templates you use.

Background refresh, plus a silent push when something changes, keeps this fresh, so the app is up to date when you open it.

How changes are saved: the outbox

Every change you make on the phone goes into a local outbox first, tagged with a unique ID generated on the device. When the phone is online, the outbox is sent to the server in order.

The server uses that ID to make every write idempotent: if a change is sent twice (for example, the connection drops just as the server replies), it is saved once. You never get duplicate check-ins.

How updates arrive: delta sync

To pull changes down, the app asks the server for “everything that changed since my last sync”. The server keeps an ever-increasing change counter per tenant, and returns the changed rows plus markers for anything deleted. The app applies them and stores the new position.

This keeps sync fast, even for multi-unit owners and field consultants with many units.

Why conflicts are rare

SignaUnit’s data model is designed so that offline edits almost never collide:

  • Priorities are authored by HQ and versioned. The app never edits them, so there’s nothing to merge.
  • Check-ins and notes are append-only. Two people logging on the same priority create two entries, not a conflict. The current value is derived from them, for example the latest reading or a sum or average, depending on the metric.
  • Acknowledgements are tied to a version. If you acknowledge version 3 offline while HQ publishes version 4, your acknowledgement is recorded against version 3. If version 4 was a material change, the priority shows “re-acknowledge” after sync.
  • Statuses are decided by the server. Met, at risk, missed and waived are computed on the server from the conditions. The app shows an optimistic status straight away and corrects it after sync if needed.

Photos Planned

Audit and proof photos are compressed on the phone, queued with the rest of the outbox, and uploaded with automatic retry. Large batches upload in the background. Photos are stored in tenant-scoped storage, not on SignaUnit’s application servers.

Voice offline Planned

Speech recognition runs on the device, so voice works offline for the five core commands. If a request can’t be understood offline, it’s saved as a draft note with the transcript and interpreted once you’re back online. See iOS app and voice.

The web app

The web app is online-only. A live “something changed” signal, so HQ dashboards and owner views refresh without reloading, is Planned.

Signing out and lost devices Planned

Signing out clears the local cache from the phone. Sessions on iPhone use short-lived access tokens with refresh tokens kept in the iOS Keychain, and HQ admins can revoke a user’s access, which ends their sessions on their next sync.