Back to work
iOSAndroidBackendWebOwn product · iOS and Android

Prend

Loan tracking app on the App Store and Google Play: due dates, reminders and reputation points. Native on both platforms, SwiftUI on iOS and Kotlin with Jetpack Compose on Android, one Firebase backend, and a site that sends shared invite links to the right store.

Prend
1,000+downloads on iOS

Overview

I kept forgetting who I had lent money to, so I built Prend end to end. It started as an iOS app in SwiftUI. When it passed 1,000 downloads on iOS I realized that not having an Android version was a big handicap, so I built it on my own, fully native with Kotlin and Jetpack Compose. It passed 200 downloads in its first month on Google Play. Both apps share the same Firebase backend. Reminders for upcoming payments are sent by Cloud Functions working on top of Firestore, so they arrive the same way on both phones. Subscriptions go through each store's native billing, StoreKit on iOS and Google Play Billing on Android, and the status is synced to Firestore in real time. The apps listen to that status, so if you subscribe on one platform you are premium on the other one too. The website completes the system. Most of the site is static: the landing, the privacy policy and the account deletion page that Google Play asks for. The interesting part is the links the app shares. When someone splits a bill, the group invite usually goes out over WhatsApp to people who do not have Prend yet. That page is rendered on the server: it reads the user agent to send iPhone users to the App Store and Android users to Google Play, picks Spanish, English or Portuguese from the browser language, and shows the group name from a Firebase Cloud Function so the link does not look like spam. It also shows the code big, because after installing from the store the app has no idea where you came from. The friend QR works the same way, but it never shows whose code it is, since that URL is public. The site also serves the apple-app-site-association and assetlinks.json files, so on a phone that already has Prend these links skip the web and open the app directly.

More screens

Want to talk about this project?

Get in touch