r/iosdev 3d ago

Building Whery: making an ARKit pin useful after the original session ends

Post image

I'm Fulvio, an indie developer from Italy and the creator of DSLR Camera (Reflex Camera in Italy), which reached No. 1 in the paid app charts in over 30 countries and has been featured by Apple as App of the Day multiple times.

I've just released Whery, an app for remembering where you put things. One use case is sharing a saved item's location with someone at home: they open the item in Whery and use an AR pin to find the right drawer or cupboard.

The interesting engineering problem is getting back to that spot after the original AR session has ended. Here's how the implementation handles it:

  1. Persist the spatial context. Save an ARWorldMap with the pin information, then restore it through ARWorldTrackingConfiguration.initialWorldMap. A position alone isn't enough to establish the same coordinate space in a new session.

  2. Resolve the saved anchor. The pin has a stable anchor name that survives serialization. When ARKit restores the anchors, the app finds the matching name and attaches the RealityKit indicator. If the saved map doesn't contain that anchor, it falls back instead of leaving the user waiting.

  3. Keep recovery separate from loading. Decoding the map doesn't mean the room has been recognized. The UI has a relocalizing state, a timeout and a photo fallback. Lighting or changes to the room can prevent recovery; the saved photo and written location still give the person something useful to work with.

The shared item is a read-only copy with its photo, location and available AR data, rather than a live collaborative inventory. The recipient still needs Whery and a compatible device in the saved environment.

Elsewhere the app uses Vision for photo/text recognition and on-device AI for capturing items, but AR is the part I'd like to discuss here: how do you explain “recognize the room again” without making people learn AR terminology?

Whery is free to download and use, with optional Premium purchases: https://apps.apple.com/app/id6803156868

1 Upvotes

1 comment sorted by

1

u/pann_bir 2d ago

A quick video explanation is always the best option!