exampleExample case study. Figures and quotes are illustrative until a real study replaces this one.
Logistics · Regional utilities contractor, 300 field technicians
Offline-first field app in both stores in 12 weeks
Paper job sheets, lost photos and a dispatcher who found out about problems the next morning. One Flutter codebase, offline-first, in both stores by week twelve.
- 6 wkexample
- to a TestFlight MVP
- 4.8example
- average store rating after launch
- 99.7%example
- crash-free sessions
Challenge
Three hundred technicians completed jobs on paper, photographed meters with personal phones and emailed the pictures to an inbox nobody owned. Rural sites had no signal, so a previous app, built by an agency as two separate native codebases, lost data whenever a technician walked into a plant room. Dispatch learned about failed visits the next morning. Two store rejections in a row had stalled the agency's last release for three months.
Approach
Two weeks of discovery: we rode along with six technicians, mapped the job lifecycle and cut the feature list to what a visit actually needs. The prototype was tested with the same six technicians before a line of production code.
One Flutter codebase for iOS and Android. Offline-first from the start: every job, form and photo is written locally first and synced when a connection returns, with conflict rules agreed with dispatch (last technician edit wins for the job, dispatcher wins for the schedule). Supabase provided the backend, authentication and row-level security so a technician only ever sees their own jobs. Mapbox handled routing and geofenced check-in. OneSignal delivered schedule changes as push notifications. Sentry caught crashes from the first TestFlight build.
The MVP cut shipped to TestFlight and the Play internal track in week six with sign-in, the job list, the visit form and photo capture. Weeks seven to twelve added offline sync hardening, maps, push and the dispatcher admin view, then store submission with the privacy labels and screenshots prepared in advance. The first review passed.
Result
Both stores by week twelve. Paper job sheets were withdrawn in month four. Photos now attach to the job, not an inbox. Crash-free sessions sit at 99.7 percent and the store rating is 4.8. The app is released every two weeks through a Fastlane pipeline, and the managed services tier monitors the backend and runs the release train.
Architecture
What we left behind
Next step
Have a similar problem in logistics?
A 30-minute call with the mobile practice: what transfers from this engagement, what does not, and what the first fixed-scope step would be.
30-minute call, no slides. We reply within one business day.
