The problem
I built MoveIn mainly as a test of making a complete mobile app and eventually putting it through the app-store deployment process. Moving records gave the experiment a simple, practical scope: contracts, receipts, deposit photos, tasks, and utility information are useful to keep together, but they usually end up spread across email, the camera roll, and notes.
What I built
Everything belongs to one locally stored Move, representing a single address. Documents, room condition photos, tasks, and utilities are stored in SQLite through Drizzle. There is no account, server, or sync because the information is private and does not need to leave the device.
Keeping files locally still required some care. iOS can change an app's sandbox path after an update, so MoveIn stores relative file paths and resolves them at runtime. Photos are resized to keep exports manageable, while the first reference photo for a room is retained at higher quality. An export ZIP provides a manual backup for the move and its evidence.
Decisions and tradeoffs
On-device only, no backend
Documents can include leases, identification, and a home address, so they remain on the device. The tradeoff is that there is no multi-device access and the user is responsible for exporting a backup.
Relative paths only, everywhere
Every file reference in the database is a relative path resolved at runtime. This prevents links from breaking if iOS changes the app sandbox directory during an update.
Compress the photo, not the evidence
Downscaling keeps the backup small enough to move or email. Each room's reference photo stays at higher quality so compression does not make the condition evidence ambiguous.
Result
The app is finished in code. It includes the document vault, room-by-room condition records, move-in and move-out comparisons, tasks, reminders, utilities, and data export. I have not deployed it to an app store yet, so it has not been tested during a real move. The next time I move would be the obvious chance to find out whether the organisation is useful outside the development environment.