Skip to content

0xShad/Split

Repository files navigation

Split

A Filipino-focused iOS app that turns a group restaurant bill into exact peso amounts per person — then sends it through GCash or Maya in two taps.

Built by devshad.


Screenshots

Even Split Itemized Pay History Split Detail

Features

Even Split

  • Enter the total bill using the large keypad
  • Add up to 10 people — tap any name to rename inline
  • Per-person amount updates live and rounds up to the nearest peso so the payer is always covered

Itemized Split

  • Add individual items with a name and price
  • Assign each item to specific people using tap-to-toggle chips
  • Unassigned items split evenly among everyone
  • Per-person totals recalculate instantly

Service Charge & Tip

  • Toggle service charge on/off (editable %, defaults to 10%)
  • Add a flat peso tip — applied proportionally to each person's share

Pay via GCash or Maya

  • Tap any person's row to open the payment sheet
  • Amount is auto-copied to clipboard
  • One-tap launch into GCash or Maya
  • Falls back gracefully if the app isn't installed

Split History

  • Every saved split is stored locally — no account needed
  • View a full breakdown of any past split including per-person amounts and items
  • Delete individual splits with a long-press or the trash icon

Tech Stack

Layer Technology
Framework React Native + Expo SDK 54
Routing Expo Router (file-based)
State Zustand
Storage AsyncStorage (local, no backend)
Icons lucide-react-native
Haptics expo-haptics
Clipboard expo-clipboard
Deep links expo-linking → gcash:// / mayaapp://

Getting Started

Prerequisites

  • Node.js 18+
  • Expo Go app on your iPhone

Install

git clone https://github.com/0xShad/Split.git
cd Split
npm install

Run

npx expo start

Scan the QR code with Expo Go on your iPhone.

Note: Deep links to GCash and Maya only work on a real device with those apps installed. The clipboard fallback works everywhere.


Project Structure

app/
  _layout.tsx          # Stack navigator shell
  index.tsx            # New split screen
  history.tsx          # Past splits list
  split/[id].tsx       # Saved split detail
components/
  Keypad.tsx           # Custom numeric keypad
  PersonRow.tsx        # Per-person amount row
  ItemRow.tsx          # Itemized mode item card
  PaymentSheet.tsx     # GCash / Maya bottom sheet
  Dialog.tsx           # Custom in-app dialog
store/
  splitStore.ts        # Active split state (Zustand)
  historyStore.ts      # Saved splits + AsyncStorage
utils/
  calc.ts              # Split math (even, itemized, rounding)
  haptics.ts           # expo-haptics wrappers
constants/
  colors.ts            # Design tokens

How Rounding Works

Per-person amounts are always rounded up to the nearest peso so the person collecting is never short. In even split mode this means the sum of shares may exceed the exact grand total by a few pesos — this is intentional.


License

MIT

About

Split is an iOS app that turns splitting any bill with your barkada into a 10-second task. Punch in the total, add who's in, and it gives you exact peso amounts per person — then opens GCash or Maya with the amount ready to send

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors