We were inspired to build bils from our own experiences splitting daily expenses. Sophia and Kelly regularly share groceries, but Kelly always forgets to request the money for Sophia’s half. At this point, those forgotten requests have totaled up to almost $400 of missed payments. We wanted to solve this issue by reducing friction at the time of payment to make these interactions easier and less awkward by allowing users to send split notifications to friends right from the lock screen immediately after making a payment. The objective of these notifications are in the fact that they are smart: you are sent notifications on purchases you frequently split, or purchases that signal a shared finance.

One technical challenge we faced was figuring out how to implement interactive notifications that would trigger actions without overwhelming the user. iOS notification actions are largely static, so it was hard to reflect different people’s habits or split options directly in the notification. We addressed this by having a small set of preset actions that users could configure in their settings and a custom option that would open the app for more complex splits.

Another challenge was coordinating behaviors across app states. Notifications can be received while the app is closed, in the background, or already open, and each state needs different handling to make sure the user experience stays consistent. Through this process, we learned how to manage notification delegates, foreground presentation, and navigation so that tapping a notification action would reliably open the right screen with the right context.

We built bils as a native iOS app using Swift and SwiftUI, focusing on a clean, end-to-end prototype that shows how notifications can reduce the friction of requesting money after a shared purchase. We hardcoded transaction data and prioritized interaction design to validate our core idea and show how this prototype could scale with access to real transaction data in the future.

Built With

Share this project:

Updates