A beautiful, smart tip calculator app for iOS built with SwiftUI β featuring receipt scanning, sentiment-based tipping, and location-aware bill history.
This is my first iOS application.
- π΅ Quick Tip Calculation β Enter your bill and instantly see the tip
- π Round Up Tip β Round your tip to the nearest dollar
- π₯ Split the Bill β Divide among any number of people with per-person breakdown
- π· Auto scan your check β Scan your check with your camera to auto populate ammounts and reccomended tip. Auto detects checks that already have gratuity added as well!
- Emoji Selection β Rate service with π’ (Meh), π (OK), or π€© (Great)
- Customizable Percentages β Set your own tip percentages for each sentiment
- Custom Emojis β Change the emojis to whatever you prefer
- Camera OCR β Scan your receipt to auto-populate the bill amount
- Smart Detection β Automatically detects subtotal, total, and gratuity
- Pre-included Gratuity β Recognizes when tip is already on the bill
- Venue Auto-Detection β Saves restaurant name with your bills automatically
- Privacy-First β Location data stays on your device, never shared
- Optional β Full control to enable/disable in settings
- Detailed Records β View past bills with tip, total, location, and sentiment
- Editable Entries β Modify saved bills anytime
- Notes Field β Add personal notes to remember the occasion
- Lifetime Stats β Track your total tips and spending over time
- USD, EUR, GBP, CAD, AUD, JPY, CHF, MXN, INR
- Easy switching in Settings
- π Dark UI β Modern glassmorphism with animated gradients
- β¨ Smooth Animations β Polished transitions and haptic feedback
- π Splash Screen β Branded launch experience
| Main Screen | Bill Splitting | Bill History |
|---|---|---|
| Emoji-based tip selection | Per-person breakdown with notes | Lifetime stats & detailed records |
Pre-sized screenshots for App Store submission are available in screenshots/appstore/:
| Size | Dimensions | Device |
|---|---|---|
| 6.7" | 1290 Γ 2796 | iPhone 14/15 Pro Max |
| 6.5" | 1284 Γ 2778 | iPhone 14/15 Plus |
- iOS 17.0+
- Xcode 15.0+
- Swift 5.9+
-
Clone the repository:
git clone https://github.com/nickmaccarthy/sir-tips-a-lot.git
-
Open the project in Xcode:
cd sir-tips-a-lot open "TipCal/Tip Calculator/Tip Calculator.xcodeproj"
-
Build and run on your device or simulator
TipCal/Tip Calculator/Tip Calculator/
βββ Tip_CalculatorApp.swift # App entry point with launch flow
βββ ContentView.swift # Main calculator UI
βββ TipCalculatorViewModel.swift # MVVM ViewModel with business logic
βββ Models/
β βββ SavedBill.swift # Bill history data model
β βββ Currency.swift # Multi-currency support
βββ Views/
β βββ SettingsView.swift # Settings & preferences
β βββ ScannerView.swift # Receipt scanning UI
β βββ VisionScannerView.swift # Enhanced Vision scanner
β βββ EditBillView.swift # Edit saved bills
β βββ SplashScreenView.swift # Launch animation
β βββ LocationOnboardingView.swift # Location permission flow
β βββ LocationPickerView.swift # Manual location selection
βββ Services/
β βββ LocationManager.swift # CoreLocation integration
β βββ StoreManager.swift # In-app purchases
β βββ TipProduct.swift # Tip jar products
βββ Assets.xcassets/ # Images and colors
βββ scripts/
βββ increment_build.sh # Auto-increment build number
This app follows the MVVM (Model-View-ViewModel) pattern:
- View (
ContentView.swift,Views/) β SwiftUI views and UI components - ViewModel (
TipCalculatorViewModel.swift) β Business logic, state management, location services - Model (
Models/) β Data structures for bills, currency, and persistence
Customize tip percentages for each sentiment in Settings (tap the knight icon):
- π’ Meh Service β Default 15%
- π OK Service β Default 18%
- π€© Great Service β Default 22%
To use your own payment links, update the variables in TipJarView within ContentView.swift:
let venmoUsername = "YourVenmoUsername"
let cashAppUsername = "$YourCashTag"
let paypalUsername = "YourPayPalUsername"Replace the images in Assets.xcassets/AppIcon.appiconset/ with your own 1024x1024 icon.
xcodebuild test \
-project "TipCal/Tip Calculator/Tip Calculator.xcodeproj" \
-scheme "Tip Calculator" \
-destination 'platform=iOS Simulator,OS=latest,name=iPhone 17 Pro'Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Nick MacCarthy
- Email: nickmaccarthy@gmail.com
- Venmo: @NickMacCarthy
- Built with SwiftUI
- Icons from SF Symbols
- Receipt scanning powered by Apple Vision framework
- Location services via CoreLocation
"They like big tips and they cannot lie" πΈ



