← Back to portfolio
Built for the UAE ● Live in production iOS · Android · Flutter Offline-first

A site visit, captured on the phone — synced before the engineer leaves the parking lot.

A cross-platform field-ops app for a UAE inspection-services firm. Engineers run their day on the phone, capture photos and forms offline at remote sites, and auto-generate the customer-ready report on the drive back. Built once in Flutter, shipped to both stores.

0 engineers
on it daily
0K visits
synced offline
0%
faster report turnaround
0%
first-attempt sync success
The engineer's day · 4 screens

Their morning, in their hand. From route to report.

The same tap-flow whether they're online at the office or offline two hours into the desert. The app waits for the network; the engineer doesn't.

9:41●●●●● 5G
Wednesday · 6 visits today
Ahmed K.
AK
Online · synced 14s ago
NOW 09:30 — 10:15
Pressure-vessel inspection
Al Quoz Industrial 3, Warehouse 18 · 4.2 km
Job #INS-4892Customer: Al Mawared LLC
NEXT 10:45 — 11:30
Annual lift-equipment audit
Jebel Ali Free Zone, Block A · 18 km
Job #INS-4893Customer: Sea-Lift Services
12:30 12:30 — 13:15
Cooling-tower thermography
Dubai Investments Park · 26 km
Job #INS-4894Customer: GreenCool
DONE 08:00 — 08:45
Pre-tender site survey
Sharjah Industrial 12 · synced 09:14
Job #INS-4891Report sent to customer
SCREEN 01
Today's route
Six visits, ETAs, distances, customer context — all on the home screen, all reorderable on the go.
10:08●●●○○ 4G
Visit · Job #INS-4892
Pressure-vessel inspection
AK
In progress · 38 min on site
Site induction signed
PPE confirmed
Vessel ID tag verified
Pressure gauge reading logged
Safety-valve testREQUIRED
Corrosion zone photos3 OF 4
Customer signature
Photo proofs · 3 of 4 captured
FRONT GATE
VESSEL TAG
METER
+ ZONE 4
SCREEN 02
Visit checklist + photo proof
Required photos enforced before sign-off. Customer signature captured on-screen and tied to the visit GPS & timestamp.
11:14○○○○○ OFFLINE
Sync queue · offline since 10:42
Auto-sync when online
AK
14 items queued · 32 MB Will sync automatically when 4G/Wi-Fi returns
Queue
Visit #INS-4892 · sign-offPhotos: 8 · Forms: 2 · Signature
queued
Visit #INS-4892 · meter photoHEIC · 3.4 MB · gps fixed
queued
Visit #INS-4892 · zone 1–33 photos · 11.2 MB
queued
Visit #INS-4891 · reportSent to customer · webhook ack
synced 09:14
Daily check-inVehicle KM · PPE confirmed
synced 07:54
SCREEN 03
Offline-first sync
Hours offline at remote sites is fine. The app captures everything locally and syncs automatically when connectivity returns.
11:48●●●●○ 4G
Report · ready for review
INS-4892
AK
Auto-generated · 14s after sync
REPORT #INS-4892
Pressure-vessel inspection
Al Mawared LLC · Al Quoz Ind. 3 · 06 May 2026
Vessel IDPV-AM-0218
Operating pressure11.4 bar
Safety-valve testPASS
Corrosion zones4 / 4 OK
OutcomeCERTIFIED
Engineer · Ahmed K. Signed · 06-May-2026 11:34 GST
Edit
Send to customer
SCREEN 04
Auto-generated report
Engineer reviews, signs, sends — customer gets a branded PDF in their inbox before the engineer is back at the depot.

A representative app session. Job IDs, customer names and figures shown are illustrative — every deployment runs on the client's own customer base, jobs and forms.

Anatomy

Five capabilities. Two apps. One backbone.

A mobile app for the engineer, a web console for dispatch. Same backend, same source of truth, same audit trail.

01 — Offline-first capture

Built for the desert, the basement, and the steel-clad warehouse.

Connectivity is not assumed. Every action — checklist tick, photo capture, signature, form fill — completes instantly on the phone, queued for sync. The engineer never waits for a server.

  • Optimistic UI: every tap is instant, sync is async
  • Local SQLite cache · encrypted · isolated per-engineer
  • Photo upload with chunked retry · resumable on reconnect
  • Automatic conflict resolution (last-write-wins for non-critical, manual for sign-offs)
  • Sync indicator shows queue depth and last successful sync
Offline behaviour · production
Sync success
First-attempt rate · 30 days
99.4%
Max offline
Tested in field · without data loss
22 hrs
Queue size
Avg per engineer · per day
68 items
Encryption
Local cache · AES-256 at rest
Encrypted
Conflict cases
Surface to manager · don't auto-merge
0.2%
Data loss
Across 8.2K visits · 30 days
0 visits
02 — Photo & form rules

The right evidence, every time — no "engineer forgot the photo" tickets.

Per-service-line forms with required photo proofs. The app refuses to mark a visit complete until the proofs are captured. Tag, GPS, timestamp, and engineer ID stamped onto every shot.

  • Form designer in the admin console · no engineering needed for new service lines
  • Required-photo enforcement: "front gate", "vessel tag", "meter close-up"
  • Photo metadata: GPS fix, heading, timestamp, engineer ID
  • Auto-cropping & perspective correction for tag plates
  • Customer signature captured on-screen · linked to visit hash
Required proofs · pressure-vessel form
Site induction signed
Vessel ID tag · close-up photo
Pressure-gauge reading · annotated photo
Safety-valve test result · numeric
Corrosion zone photos3 OF 4
Customer signature on tabletREQUIRED
Form: PRESSURE-VESSEL-v3.2 · 14 fields · 8 required photos · GPS-enforced · last published 6 days ago
03 — Auto-report generation

Customer gets the PDF before the engineer is back at the depot.

14 seconds after a visit syncs, the report renders, the engineer reviews on their phone, signs, and sends. Branded for the client, customer-facing, and tied to the visit's audit hash.

  • Branded PDF rendering with the client's logo, fonts, signature blocks
  • Customer-friendly summary + technical appendix per inspection type
  • Signature, stamp, audit-hash on the cover page
  • Email + WhatsApp delivery options · receipt webhook on read
  • Archived alongside source data in S3 · 7-year retention
Sample report · INS-4892
REPORT #INS-4892
Pressure-vessel annual inspection
Al Mawared LLC · Al Quoz Ind. 3 · 06 May 2026
Vessel IDPV-AM-0218
Operating pressure11.4 bar
Safety-valve testPASS
Corrosion zones (4 of 4)OK
Wall thickness — min reading9.8 mm
Hydro-test pressure17.0 bar
OutcomeCERTIFIED
Engineer · Ahmed K. · L4 inspector Signed · 06-May-2026 11:34 GST · audit-hash 8f3a2c…
04 — Engineer experience

The thing they actually open at 7am — not the thing they avoid.

Route optimization, mileage capture, expense logging, and tomorrow's schedule — all in one app. We measured adoption: 96% of engineers open it before 8am.

  • Route optimization across the day's visits · re-routes on traffic
  • Vehicle KM auto-captured at start & end of day
  • Expense capture with receipt photo + auto-OCR'd amount
  • Tomorrow's schedule pre-loaded for offline review the night before
  • Push notifications: re-routing, customer cancellation, urgent reroute
Engineer adoption · last 30 days
Open before 8am
Daily active · weekday avg
96%
Crash-free
Sessions · all platforms
99.7%
Avg session
Per-visit duration · in-app
22 min
Visits/engineer
vs paper baseline
+38%
05 — Web admin console

Dispatch sees the fleet. Operations sees the SLAs. Customers see proof.

A web console for dispatch, ops, and finance. Live engineer locations, SLA tracking, customer portal handoff, billing-ready exports. Same backend as the app — no double-entry.

  • Live map view · all engineers · ETAs · SLA status
  • Job queue · assign, reroute, escalate
  • SLA tracking with breach alerts · auto-escalation rules
  • Customer portal · branded · self-serve report download
  • Finance export: billable hours, mileage, materials · CSV / API
Dispatch · live · 18 engineers in field
Live operations · today ● auto-refresh 2s
In-field
18 / 22
Visits done
42
SLA breach
1
AK
Ahmed K.
Visit #INS-4892 · in progress · Al Quoz
ON SITE
RM
Reem M.
Visit #INS-4901 · enroute · ETA 11:42
ENROUTE
FH
Fahad H.
Visit #INS-4895 · waiting customer · 12 min over
WAIT
SK
Salem K.
Visit #INS-4903 · on time · ETA 12:08
ENROUTE
Integrations

Wires into the systems you already run.

Single sign-on, dispatch CRM, asset register, finance — meet you where your fleet already lives.

Flutter
iOS · Android
Firebase
Auth · FCM
Postgres
Backend
S3
Photo store
Mapbox
Routing
Twilio
WhatsApp · SMS
SAP · Oracle
ERP
Salesforce
CRM
Zoho · Xero
Finance
Azure AD
SSO
PDF · Pad
Render
REST · Webhook
Anything
In production

Three field-services teams. Same backbone.

Anonymized at the client's request. Sector, scale and outcomes are real and verifiable on request under NDA.

Inspection-services · 120 engineers

Reports go out the same day — instead of three days later.

Industrial inspection · 120 engineers · 1.4K visits/wk

Engineers used to email Word templates back to admin, who would copy-paste them into PDFs and send to customers — typically 2–3 days after the visit. Now the report ships in 14 seconds after sync.

"Customers comment on it. They say their report from us arrives faster than their report from anyone else in the industry."

— operations director

−42%
report turnaround time
+38%
visits per engineer/day
99.7%
app crash-free
8.2K
visits/30d
Facilities · maintenance

HVAC technicians, finally on the same page as dispatch.

Facilities maintenance · 64 technicians · multi-site

Dispatch used to call technicians for status updates and re-route by phone. The new app shows live ETAs, on-site status, and parts-needed flags — dispatch reroutes by drag-and-drop, and the technician's app updates instantly.

"Dispatch went from a phone room to a control room. We don't even ring anyone unless something is on fire."

— head of dispatch

−51%
dispatch phone calls
+27%
first-time-fix rate
2 wks
to roll out fleet-wide
100%
SLA visibility
Utilities · meter reading

Meter reading without the backend chaos at month-end.

Utility services · 38 readers · 220K meters/mo

The team used to spend the last 3 days of each month uploading paper readings to the billing system, with chronic typos. The app captures, validates, and posts directly to the billing API — ending the month-end scramble.

"The first month-end where nobody worked the weekend. That alone justified it."

— finance lead, utility services

−96%
billing typos
3 days
earlier monthly close
100%
readings GPS-tagged
0
paper sheets
Implementation

Live on both stores in 8 weeks.

Discovery, build, internal beta on a single Flutter codebase, App Store + Play Store review, fleet rollout. We carry the App Store communication; you keep running the business.

Talk through your rollout
Week 1 · Discovery

Map the day, the forms, the customers

Shadow two engineers for a day each. Inventory all current forms and reports. Define the four most-common visit types. Agree on the metric we're going to move.

Weeks 2–4 · Build

Flutter app · backend · admin console

Single Flutter codebase for iOS & Android. Backend on Postgres + S3. Admin console (web). Two-week sprints, demo every Friday, staging from day one.

Week 5 · Internal beta

5 engineers · all visit types

Five hand-picked engineers run their normal day on the app. Daily review of every issue. Form rules tuned. Report templates iterated.

Week 6 · Store submission

App Store + Play Store review

Test-flight builds for the wider beta. Production submission with App Store-friendly screenshots, privacy disclosures, & review notes. Both stores typically clear within 5 days.

Week 7 · Pilot fleet

30 engineers · live

One service area opens on the app. Daily review for 7 days. Field issues fixed in hours, not weeks.

Week 8 · Fleet rollout

All engineers · paper retired

Remaining engineers onboarded. Paper forms officially retired. Admin console handed to dispatch and operations.

Common questions

The things every operations director asks.

If yours isn't here, ask us — we'll happily talk shop with your operations team.

Talk to our mobile team
Is it iOS, Android, or both?

Both — single Flutter codebase. We ship the same app to the App Store and Play Store and keep them in lockstep. Roughly 70% of UAE-based fleets are mixed iOS/Android, so this matters. There is no second-class platform.

What happens if the engineer is offline for hours?

Everything keeps working. The app captures checklists, photos, signatures and forms locally in an encrypted SQLite cache, queued for sync. We have engineers regularly going 8+ hours offline at remote sites. When connectivity returns, the queue drains automatically. Tested up to 22 hours offline with zero data loss.

Can we customise the inspection forms per service line?

Yes — that's why this works. New forms are configured in the admin console, not engineered. Field types, required photos, validation rules, branching logic, and the corresponding report template are all configurable. New service lines go live without an app update.

Does it integrate with our existing dispatch/CRM/ERP?

Yes — REST and webhook integrations are first-class. We have shipped to teams running SAP, Oracle, Salesforce, Microsoft Dynamics, and Zoho. The app posts visits, reports, mileage and expense to your system of record; your system pushes job assignments and customer data to ours.

Photos uploaded over 3G/4G — does that drain data plans?

We compress and chunk uploads. A typical 4-photo visit is ~3 MB after compression. Upload happens in the background; the app never blocks the engineer waiting on a photo to send. We've measured average daily data usage at ~38 MB per engineer.

How long is field-engineer training?

One 90-minute session is enough. The interface is intentionally minimal — five screens, big tap targets, optimistic UI. We watched engineers self-onboard in pilots without training, but the 90-minute session covers the edge cases (offline mode, signature failures, manager re-assignments).

What's the app-store update cadence?

We ship feature updates monthly, hotfixes within hours when needed. App Store reviews are now consistently sub-24h for established apps; Play Store is faster. We use staged rollouts (1% → 10% → 100% over 48h) and a remote-config kill-switch on every new behaviour.

What does a typical project cost?

A flat build fee for the initial implementation, then a platform subscription scaled by engineer-seat. The build fee is typically 8–12 weeks of our team's time. Custom integrations are scoped separately. We share a worked example in the discovery call — no obligation.

Need the consumer-side too? — read the on-demand car wash case study →
Build yours on the same backbone

A field-ops app, on the App Store, in 8 weeks.

Bring us your forms, your customers, and your one biggest field-team frustration. We'll bring you a shipped app.