Industry problems

How do inspection apps work at remote sites?

Inspection apps work at remote sites by treating the device as the record until upload. The app saves each checklist answer, reading and photo to local storage first, queues it, and lets the operating system upload it in the background when a connection returns. Each record keeps its own time and an ID, so a late or repeated upload is applied once and in the right order.

Learning objectives

After reading this article you will be able to:

  • Explain why an inspection app saves each record to the device before uploading
  • Describe how Android, Apple platforms and the web hand uploads to the system
  • Identify how IDs, conflict rules and separate states handle late uploads and handoffs

What an inspection has to capture

An inspection turns a visit into a record: a checklist of answers, meter readings, photos of what the inspector saw, notes, a signature, and the time and place it all happened. At a remote site, such as a substation, a pipeline route, a tower or a pump station, that record may be made where the phone has no usable connection.

An app built for the office assumes every tap reaches a server. At a site with no signal it fails in one of two ways: it refuses to save, or it appears to save while holding data only in memory, which a restart or a flat battery then wipes. A field app has to be designed so neither happens.

Save to the device first

Android’s offline-first guidance describes an app that can perform all, or a critical subset, of its core functionality without internet access. Its central idea is that the local data source is the canonical source of truth for the app, and the network copy catches up later.

For writes, the guidance offers lazy writes: write to the local data source first, then queue the change to send at the earliest opportunity. It names this the correct choice when data is critical to the app, which describes every inspection answer. The queue is a durable outbox on the device, so a record survives a restart before it uploads.

Let the operating system upload it

Uploading should not depend on the inspector keeping the app open. Each platform has a way to hand the job to the system:

  • Android. WorkManager runs persistent work that survives app restarts and device reboots. A work request can carry a network constraint, such as waiting for an unmetered network like Wi-Fi, which suits large photo uploads.
  • Apple platforms. A URLSession configured with waitsForConnectivity waits for a connection instead of failing at once. Background sessions always wait for connectivity.
  • Web. A service worker sits between the page and the network, so a web app can serve its pages and cached data offline. Upload in the background is less settled: the Web Background Synchronization specification is a community group draft, not a W3C standard.

Photos deserve their own queue. A checklist answer is small and should go first; a set of high-resolution images can wait for a better connection without holding up the rest of the record.

Duplicates, conflicts and sign-off

Late upload creates three questions an inspection app has to answer in advance.

  1. Was this already received? Give every inspection and every change an ID created on the device. If an upload is retried because its confirmation was lost, the server uses the ID to apply it once.
  2. What if two people changed the same thing? Android’s guidance describes last write wins, where the newest timestamp is kept. That suits a note field, but not a pass or fail result. How are sync conflicts resolved? covers the alternatives.
  3. When is the work done? An inspection saved on a phone, an inspection received by the server, and an inspection accepted into the asset system are three different states, and the app should show which one each record is in.

Handing work over on site

Some remote jobs involve more than one person. One technician takes readings, another finishes the checklist, and a supervisor signs off before the crew leaves. If none of them has signal, uploading cannot coordinate them.

Device-to-device software fills this gap by sending records directly between nearby phones over a local link. Offline Protocol’s local handoff guide treats a handoff as complete only when the receiving app has accepted responsibility for the work, and keeps delivery, local acceptance and backend commit as separate states. The asset or inspection system remains the system of record; the handoff only moves the record, and its custody, between the people on site until one of them can upload.

Frequently asked questions

Can a web app do offline inspections?

Partly. A service worker lets a web app load and serve cached content offline, and the page can store records locally. Background sync for the web is a draft from a W3C community group, not a W3C standard, so reliable background upload is easier to build in a native app.

What should happen if two people edit the same inspection offline?

Decide the rule in advance. Independent fields can both be kept. For a field with one correct value, such as the final result or sign-off, pick an owner or an authority instead of letting the latest timestamp win silently.

Sources

Build it with Offline Protocol

The local handoff guide shows how to pass an operational record, such as a completed inspection, from one nearby device to another, persist it, and track the receiving app's explicit acceptance separately from delivery and backend commit.

Read the local handoff guide