Augmented reality livestock measurement app with offline-first sync
A native iOS app that turns the phone camera into a measuring instrument for livestock using augmented reality, attaching every reading to a dated, photographed record for that animal — offline-first throughout, with subscription tiers banded by herd size.
Measuring an animal physically needs a tape, usually a second person, and an animal willing to stand still, and the number that results is normally written on paper or not recorded at all. For breeders, though, a measurement is only useful as part of a comparable series over time, so the product is as much a record-keeping tool as a measuring one. Complicating that: augmented reality measurement tools are generally built for flat, static surfaces like rooms, and a living animal offers neither — it isn't flat, it doesn't hold still, and the two points being measured can be a couple of metres apart with nothing reliable in between.
The work also happens outdoors, often with no signal at all, so any dependency on connectivity to save a reading would mean losing it. And the AR capability the whole product depends on varies by device generation and changes with every new phone released, which meant getting the compatibility check wrong in either direction — blocking a capable device, or charging for one that can't run the feature — was a real cost either way.
Built the core interaction to feel like a tape measure rather than a form: the user anchors a start point, then a preview line and live reading update continuously as they move the device, until they commit the end point. Markers are scaled in discrete distance bands rather than continuously, inside an animated transition, so they stay legible from close up to several metres away without jittering as tracking noise fluctuates — solving legibility before worrying about precision, since a reading nobody can read clearly isn't one they'll trust.
Device compatibility lives entirely server-side as a managed list with a capability flag the app checks at runtime, so a newly released phone gets supported by adding a record in the back office rather than shipping an app update. Every write is local-first to an on-device database regardless of connectivity, with per-record sync and soft-delete flags; on reconnect, unsynced records are pushed and the server's identifiers are written back, and a reconciliation pass on load updates, creates or removes local rows against the server's view while honouring offline deletions. Every reading captures the AR scene as a photograph at the moment of measurement, so a number that will later be quoted in a sale has visual provenance behind it. Subscription purchases are validated server-side against the App Store rather than trusted from the client, with store server notifications updating entitlement as billing events happen and a scheduled re-verification pass as a backstop for any notification that never arrives.
One person can now take a measurement that previously needed two, using a device they already have with them, and each reading becomes a dated, photographed entry in that animal's history rather than a number on a scrap of paper. The app works fully offline where the work actually happens, and reconciles automatically once signal returns. Device compatibility can be corrected the same day it's reported rather than waiting on an app release, and access reflects billing reality because entitlement is verified server-side and independently re-checked on a schedule.
Something holding you back?
New build, rebuild, or adding AI to what you already have — I'll take a look and give you an honest perspective.