Skip to content

xsj57/SMmaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Typing SVG

English | 简体中文

UI


A native iOS shopping management app featuring shopping list, purchase history, currency exchange calculator, and spending statistics.

Originally ran as a Docker deployment on a Mac mini, but the school kept having power outages (Fuck U FAFU)...
So I made this .ipa version once and for all, optimized specifically for iPhone 13 mini (since it's the only phone I have 😮‍💨)

I built this to increase your useless anxiety (show you how expensive USD spending feels when converted to RMB 😢)

Though my intention was to help you calculate which luggage to bring to the US for best value 😊

🫵🏻ATTENTION: Since I use it myself, it's only in Chinese. Just throw it to the AI for translation if you need it in English.

Hope you enjoy using it (oh right, you'll need to sign it yourself 😄)

Features

Shopping List

  • Add, edit, and delete shopping items
  • Budget support with USD / RMB currency toggle
  • Automatic exchange rate conversion
  • One-click purchase, items moved to history automatically

Purchase History

  • Record every purchase detail
  • Filter by store and date
  • View spending trends

Exchange Calculator

  • Real-time USD / CNY exchange rate conversion (you'll need to set the rate in Settings, since each bank offers different rates, definitely not because exchange rate APIs are expensive)
  • Batch conversion support

Statistics & Analytics

  • Total spending summary
  • Spending breakdown by store
  • Spending trend charts

Data Management

  • Local persistent storage
  • JSON import/export
  • Customizable store list

Requirements

  • iOS Version: 16.0+
  • Target Devices: iPhone X and later
  • Development: Xcode 15.0+

🫵🏻ATTENTION: Since all my devices run iOS 26+, I used liquid glass effects. Not sure how it looks on systems older than iOS26.

Quick Start

If you want to skip the hassle, just grab the pre-built IPA from Releases.

Option 1: Automated Build Script (Recommended)

cd iOS/SMmaster
chmod +x setup.sh build_unsigned.sh
./setup.sh

The script automatically:

  1. Checks and installs Homebrew (if not installed)
  2. Checks and installs XcodeGen (if not installed)
  3. Generates Xcode project files
  4. Builds the IPA installation package

Option 2: Manual Setup

# Install XcodeGen
brew install xcodegen

# Generate project
cd iOS/SMmaster
xcodegen generate

# Open project
open SMmaster.xcodeproj

Signing & Installation

Method 1: Run Directly from Xcode

  1. Open SMmaster.xcodeproj in Xcode
  2. Select your Apple Developer account (Xcode → Settings → Accounts)
  3. Connect your iPhone device
  4. Select the target device
  5. Click the Run button (⌘R)

Method 2: IPA Signing & Installation

  1. Run ./build_unsigned.sh to generate SMmaster_Unsigned.ipa
  2. Sign and install using enterprise signing tools or AltStore/TrollStore

Project Structure

├── project.yml                  # XcodeGen project configuration
├── setup.sh                     # Environment setup script
├── build_unsigned.sh            # IPA packaging script
├── SMmaster/
│   ├── App/
│   │   └── ShoppingManagerApp.swift
│   ├── Models/
│   │   ├── DataModels.swift     # Data model definitions
│   │   └── DataStore.swift      # Local data persistence
│   ├── Views/
│   │   ├── MainView.swift       # Main TabView interface
│   │   ├── ShoppingListView.swift
│   │   ├── HistoryView.swift
│   │   ├── ExchangeCalculatorView.swift
│   │   ├── StatisticsView.swift
│   │   └── SettingsView.swift
│   └── Resources/
│       ├── Info.plist
│       └── Assets.xcassets/
│           ├── AccentColor.colorset/
│           └── AppIcon.appiconset/
├── icon/
│   └── shopping-iOS-Default-1024x1024@1x.png
├── README.md
└── README_CN.md

Technical Highlights

  • Native SwiftUI Development: Excellent performance, smooth UI (at least the 13mini doesn't lag)
  • iOS 26.0+ Target: Uses latest system APIs
  • Local Data Storage: No network dependency, secure data (well, you'll need to export your data yourself)
  • Dark Purple Theme: Elegant visual design (ELEGANT!!!)
  • Adaptive Layout: Fits various iPhone screen sizes (at least optimized for mini)

Data Migration

Migrate data from other versions:

  1. Copy household_data.json and config.json from the original version
  2. Open "Settings" in the iOS app
  3. Click "Import JSON Data"
  4. Data will be automatically read from clipboard and imported

License

MIT License

About

An iOS app that helps you convert item unit prices and record shopping lists

Topics

Resources

License

Stars

Watchers

Forks

Contributors