Inspiration

Anyone who has ever traveled with friends, shared an apartment, or managed family expenses knows the struggle of settling the bill. The classic questions always arise: "Who paid for the pizza?" "Why am I paying for someone else's drinks?" Traditional apps like Splitwise only track debts, leading to a confusing web of IOUs. The team at NewOne wanted to flip this concept upside down. Instead of tracking who owes whom after the fact, we asked: What if everyone contributed to a shared virtual pool upfront, and AI handled the exact deductions automatically based on what you actually consumed? That’s how fairShare was born.

What it does

fairShare is a smart, iOS-native group expense management app. Users can create spaces (like a "Ski Trip"), set an upfront contribution, and simulate pooling their money together. When a group member makes a purchase, they don't have to manually calculate splits. They simply take a photo of the receipt. fairShare uses on-device AI to scan the receipt, extract individual items, and create a real-time "poll". Users can then assign specific items (like a coffee or a burger) to specific people, or split them equally. The app deducts the exact amounts from individual virtual balances. When the trip is over, the app generates instant SEPA QR codes for 1-tap final settlements.

How we built it

We built fairShare entirely natively for iOS using Swift and SwiftUI, adhering to the MVVM architecture for clean, reactive state management via Combine. The crown jewel of our app is the receipt scanner, which is powered by Apple's native Vision framework. By using local OCR (Optical Character Recognition) combined with custom Regular Expressions (Regex), we extract item names and prices completely offline, without relying on paid or slow external APIs. We also utilized PhotosUI for seamless media picking and built a fluid, dark-mode-first UI that feels like a premium banking app.

Challenges we ran into

Parsing receipts is notoriously difficult because every store formats them differently. Tuning our Regex patterns to accurately differentiate between a valid product with a price and random receipt noise (like tax summaries, dates, or payment terminal data) took a lot of trial and error. Additionally, managing deeply nested states in SwiftUI—specifically, updating the assigned member for a specific receipt item dynamically within a poll, while instantly recalculating the group's total balances—led to some tricky compiler errors and UI re-rendering challenges that we had to carefully debug.

Accomplishments that we're proud of

We are incredibly proud of making the Vision AI OCR work so seamlessly on-device. Watching the app instantly translate a physical photo into an interactive, clickable list of products feels like magic. We're also proud of the UX/UI design; we managed to condense a very complex financial flow (deposits, itemized polling, balance deductions, and QR settlements) into a clean, intuitive interface that anyone can use without a tutorial.

What we learned

As team NewOne, we leveled up our Swift skills massively. We learned how to harness the power of the Vision framework for text recognition and how to write robust Regex parsers in Swift. We also gained deep insights into SwiftUI state management (@StateObject, @ObservedObject) and how to architect data models so that complex mathematical operations (like dynamic expense splitting) stay fast and bug-free.

What's next for NewOne

This hackathon is just the beginning for fairShare. In the future, we plan to integrate Open Banking APIs so the app can link to real shared bank accounts, automatically fetching digital receipts and settling real money instantly. We also want to bring our "Virtual Cards" concept to life, allowing the group to generate a temporary Apple Pay card funded by the shared pool, so you can pay at the restaurant directly from the app without anyone having to use their personal credit card.

Built With

Share this project:

Updates