尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Rackside is a client and session log for independent personal trainers, on iPhone and Apple Watch. Keep clients' goals, injuries, health screening, assessments and waivers in one place; build reusable workouts; schedule and record sessions set by set with a rest timer on your phone or wrist; and track each client's progress over time. Everything stays on the iPhone — no account, no cloud, no tracking.
For developers: product requirements in PRD.md; roadmap and known gaps in BACKLOG.md.
The Xcode project file is generated, not committed. The project is defined by
project.yml; XcodeGen
turns it into Rackside.xcodeproj.
After a fresh clone — or whenever files are added/removed outside Xcode — run:
brew install xcodegen # first time only
xcodegen generate
open Rackside.xcodeproj
Then select the Rackside scheme, pick an iPhone simulator, and ⌘R.
xcodegen generate
xcodebuild -scheme Rackside -destination 'platform=iOS Simulator,name=iPhone 17' test
If xcodebuild complains that it "requires Xcode" even though Xcode is installed,
either prefix commands with DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
or run once:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Notifications and calendar access are optional. Settings → Permissions shows the current status of each and offers an Open Settings link when one has been denied. Session reminders (24 h and 1 h before) are scheduled only while notifications are allowed; "Add to calendar" on a session needs full calendar access and falls back to the first writable calendar when no default is set.
Continuous integration runs xcodegen generate and the simulator test suite on every
pull request (.github/workflows/ci.yml).
Sources/Models/ — SwiftData @Model types and their Codable DTOsSources/Persistence/ — @ModelActor repositories, seed import, store backupSources/Services/ — notifications, messaging, EventKit calendar, PDF reports, export/import archive, app lockSources/Support/ — shared helpers (logging, formatters)Sources/Support/Theme.swift — color/font/spacing tokens (colorsets live in Sources/Assets.xcassets); Sources/Features/Components/ — shared SwiftUI building blocksSources/Features/ — SwiftUI views + view models per feature (Schedule, Clients, Workouts, Exercises, Session, Reports, Settings)Sources/AppIcon.icon/ — Icon Composer package (edit icon.json/Assets/*.svg as text, or open in Icon Composer); Sources/Assets.xcassets/ holds AccentColorTests/ — Swift Testing suite (runs against in-memory containers); Tests/Fixtures/export-v1.json is the frozen export-format compatibility fixture — never regenerate itWatch/ — Apple Watch app (rest timer mirror and quick start); Shared/ — timer and sync code used by both appsdocs/ — GitHub Pages site: user guide, privacy policy, support, changelog; docs/app-store/ — App Store submission kit and screenshotsscripts/ — screenshots.sh (regenerates App Store/guide screenshots from DEBUG demo data via -demoData), sync-changelog.sh, and doc checksthoughts/qrspi/ — design/research/plan artifacts from the initial build