Before I Leave: an app that makes sure you have your things before leaving a temporary place
Project status: delivered to a client and completed. A mobile app for Android and iOS, Arabic-first and fully offline. Paymentery delivered the whole project, from requirements and design to development, testing, security review and store materials.
The problem the app solves
In a hotel, a rental car, a clinic or a friend's house, people spread their things around: the passport in the safe, the charger by the bed, medicine in the fridge, the children's toys under the bed. When it is time to leave, often in a hurry, they rely on memory; something gets left behind, they go back for it, or it is lost for good.
The client asked for an app that answers one question with certainty in seconds: did I get everything before I walked out? With no account, no internet and no location tracking, and without the list of belongings and where they are ever leaving the phone.
What was built
A session for each temporary place
The user starts a session named after the place, such as "Hilton Jeddah" or "Rental car", or from a saved template. Each item takes two questions: what is it, and where did you put it? Quick places are learned from the user's own entries, and a photo of the spot is optional.
A leaving checklist that will not close with items pending
Tapping "I'm leaving" lists every item with its place: "Done" for each one recovered, or "Left on purpose". The session cannot be finished while an item is undecided, the remaining items are shown by name, and every step can be undone.
The last check
Before finishing, a few short prompts based on the places actually used, such as "Is the safe empty?". The session then moves to history, where it can be reused or saved as a template for next time.
One reminder, an interface for everyone
One optional local reminder per session before leaving, with generic text that does not reveal the place on the lock screen. The interface is right-to-left Arabic in everyday language, with a complete English version, large buttons, and layouts that hold up at double text size.
Privacy and security
No account, location, ads, analytics or server; the Android build does not even request internet access. Lists are stored in an encrypted on-device database (SQLite3MultipleCiphers with the SQLCipher 4 scheme, AES-256), its random key is held in the Keychain or Keystore, and the operating system's automatic backup is disabled for the app.
Backups are manual only: a single file encrypted with a password the user chooses (AES-256-GCM), and a restore is validated in full in a temporary database before any data is replaced. An optional PIN or biometric lock hides the app's content in the app switcher. Photos are kept inside the app with their metadata, including location coordinates, removed.
Engineering
Flutter and a testable architecture
One Flutter codebase for Android and iOS, state managed with Riverpod, and storage through Drift on encrypted SQLite. Product logic is isolated from storage and platform, so it is tested in full without a device, and every architectural decision is recorded in a decision log.
Tests before delivery
More than 880 automated unit and widget tests, plus 24 on-device integration tests on Android covering the full journey in Arabic and English, backup and restore, app lock, reminders, relaunch after a forced stop, and offline use at large text size.
A security review before delivery
A security and privacy review of the code found no critical or high findings. All six medium findings were addressed: five were fixed in code, including stripping location data from photos and timing PIN lockouts with a clock that ignores changes to the device time, and one was accepted for version 1 with the privacy wording corrected to match exactly. Most low findings were fixed as well.
Design system and Figma
A design system with a single source for colours, type and spacing, matched by both the app code and the Figma variables, with more than 25 components and clear accessibility rules: touch targets of at least 48 points, and no state shown by colour alone. Screens were designed in Figma in Arabic and English across more than 200 frames, with an interactive prototype of the full journey in both languages.
Delivery stages
- Requirements: the user's core job, edge cases and acceptance criteria.
- Design system, screens and interactive prototype in Figma.
- The app, built in separate layers with tests for every feature.
- Encrypted storage, backup, app lock and reminders.
- On-device integration tests and the security review, fixing what they found.
- Handover: privacy policy in Arabic and English, store privacy form answers, and store copy and images.
Outcome
A complete app was delivered: the Android build is built and tested on a device, and the iOS build from the same code is ready to be built. Users record their things and where they put them in seconds, and when leaving the list will not close until every item is settled, with no account, no internet, and data that never leaves the phone.
Have an app idea?
Describe the users and the problem you want to solve. Scope and the right technology are reviewed before work starts.