A mobile app that helps users break impulse buying habits and track no-spend streaks. Think "I Am Sober but for spending addiction."
- Dark mode only (deep charcoal
#1A1A2E, mint green#00D09C, gold#FFD700, coral#FF6B6B) - Onboarding: 16 screens with progress bar, emotional hooks, quizzes, yearly waste reveal, identity shift, paywall, notification permission, then main app
- Main app: Home (live streak + money saved), Daily Check-In, Urge Mode, Milestones, Stats, Settings
-
Open in Xcode
- Open
NoBuy.xcodeprojin Xcode (or create a new iOS App and add theNoBuyfolder as the source).
- Open
-
If you don’t have a project yet
- File → New → Project → App
- Product Name: NoBuy, Interface: SwiftUI, Language: Swift
- Add all
.swiftfiles from theNoBuyfolder to the app target (drag theNoBuygroup in).
-
Build and run on a simulator or device (iOS 17+).
NoBuy/
├── NoBuyApp.swift # @main entry
├── RootView.swift # Onboarding vs Paywall vs Main
├── Theme/NoBuyTheme.swift # Colors, typography, layout
├── Models/
│ ├── UserProfile.swift # Onboarding & settings data
│ └── StreakState.swift # Streak, check-ins, slips
├── Services/DataStore.swift # UserDefaults persistence
├── Utilities/HapticManager.swift
├── Onboarding/
│ ├── OnboardingContainerView.swift # 16-screen flow + progress bar
│ └── Screens/*.swift # All onboarding screens + PaywallView
├── Views/ConfettiView.swift
└── Main/
├── MainTabView.swift
├── Home/HomeView.swift # Streak counter, pledge, check-in, urge button
├── CheckIn/DailyCheckInSheet.swift
├── Urge/UrgeModeView.swift
├── Milestones/MilestonesView.swift
├── Stats/StatsView.swift
└── Settings/SettingsView.swift
- Live streak counter (days : hours : minutes : seconds) with 1s updates
- Money saved from estimated daily waste rate
- Daily Check-In (morning pledge / evening “did you impulse buy?” + trigger + mood)
- Urge Mode: 4-7-8 breathing, then decision questions, then “I Resisted” / “I bought it”
- Milestones: 1, 3, 7, 14, 30, 60, 90 days, 6 months, 1 year (locked/unlocked, share placeholder)
- Stats: total saved, current/longest streak, urges resisted, check-ins (chart placeholders)
- Settings: edit habits, pledge, vision, check-in times, notifications, subscription, support links
- Paywall: Screen and flow in place; wire to Superwall or RevenueCat.
- Analytics: Add Firebase Analytics (or your provider) where needed.
- Crashlytics: Add Firebase Crashlytics (or your provider).
- Notifications: Permission requested in onboarding; schedule morning/evening reminders with
UNUserNotificationCenter.
- All data is stored locally with UserDefaults (profile + streak state).
- No backend required for V1.
Use as you like for your project.