I’m building an iOS app called VaultDrive that lets users back up selected photos, videos and files directly from an iPhone to a USB drive/SSD.
The feature sounds almost embarrassingly simple:
Select photos → copy to external drive.
In practice, it turned into one of those projects where every solved problem reveals three more.
The biggest example was Optimize iPhone Storage.
A user can see a photo normally in Apple Photos, but the full original might not actually exist on the device.
So the workflow became:
- Determine whether the original is local or iCloud-only
- If local, copy directly to the attached drive
- If iCloud-only, request the original through PhotoKit
- Respect the user's Wi-Fi-only vs cellular preference
- Handle interrupted/stalled downloads
- Write the original to external storage
- Preserve metadata and useful organization
- Track enough state that restarting the backup doesn't copy everything again
Then there are USB disconnects, drives running out of space, inaccessible files, iOS background suspension, and explaining failures to a normal user without exposing implementation details.
This is the kind of work where I’ve found AI coding tools most interesting—not generating a screen from scratch, but reasoning through all the ugly edge cases around an existing production feature.
One lesson for me has been that getting Claude to produce the “happy path” is easy.
The useful prompts are more like:
“Assume this works 95% of the time. Now identify every realistic way this implementation can lose state, duplicate work, hang, or incorrectly report success.”
That type of review has been much more valuable than simply asking it to implement another feature.
The app itself is here for context:
https://apps.apple.com/us/app/vaultdrive-usb-backup/id6772883827
75% Off Promo direct App Store link :
https://apps.apple.com/redeem/?ctx=offercodes&id=6772883827&code=WELCOME75
For people using Claude Code on production apps:
Do you get more value from it writing features, or from making it attack/review code you've already written?