A free, offline gym log for iPhone.
Tap the muscles you want to train, log your sets and watch your numbers go up.
Native iOS port of GymMane by InlitX.
Status: the port is in progress (roadmap). Screens are built in SwiftUI with dummy data in each feature's
State; persistence with SQLiteData is being wired in feature by feature.
|
|
|
|
| Platform | Status |
|---|---|
| iOS 27+ | In progress |
| Android 7.0+ | See the original GymMane |
GymBro is a thin app target on top of a local Swift package. Every feature lives in its own module, so each one builds and previews on its own.
GymBro/
├── GymBro/ App target (GymBroApp.swift, Assets.xcassets)
├── GymBro.xcodeproj
├── GymBroWorkspace.xcworkspace Open this one
└── GymBroPackage/
├── Package.swift
├── Sources/
│ ├── AppFeature/ Root TabView, navigation stacks, sheets and covers
│ ├── HomeFeature/ Today
│ ├── ProgressFeature/ Progress overview
│ ├── ExercisesFeature/ Library, detail, editor
│ ├── ProfileFeature/ Profile, levels, medals
│ ├── TrainFeature/ Body map and start workout
│ ├── SessionFeature/ Live session
│ ├── …Feature/ Routines, Tools, Notes, Places, Measures, Moments,
│ │ Timeline, Sticker, Share, Compare, Awards, AIPlan,
│ │ Settings, Onboarding, About
│ ├── Routing/ Shared Route enum used for cross-feature navigation
│ ├── Database/ SQLiteData schema and queries
│ ├── DesignSystem/ Colors, typography, buttons, icons
│ ├── GymAssets/ Exercise art and bundled media
│ └── L10n/ String Catalogs and typed string accessors
└── Tests/ Reducer tests (Swift Testing + TCA TestStore)
- SwiftUI and the iOS 27 native
TabView - The Composable Architecture for state, navigation and effects
- SQLiteData for local persistence
- Phosphor Icons for iconography
- String Catalogs (
.xcstrings) for localization
Requirements: Xcode 27 and the iOS 27 SDK.
git clone https://github.com/gorpello/GymBro.git
cd GymBro
open GymBroWorkspace.xcworkspace- Open
GymBroWorkspace.xcworkspace. - Select the GymBro scheme and an iOS 27 simulator.
- Build and run.
To work on a single screen, select that feature's scheme (for example
ProfileFeature) and use the SwiftUI canvas. Each view has a #Preview with
dummy state.
Strings live in GymBroPackage/Sources/L10n/Resources/Localizable.xcstrings, and
exercise names in ExerciseCatalog.xcstrings. They were converted from the Android
app's ARB files, so the same 17 languages are available. Edit them in Xcode's String
Catalog editor.
Work is planned and tracked in the open on the GymBro Roadmap project board. Every change, however small, goes through the same loop:
flowchart LR
A[Issue] --> B[Branch]
B --> C[Commits]
C --> D[Pull request]
D --> E{Checks}
E -- fail --> C
E -- pass --> F[Squash merge]
F --> G[Changelog]
G --> H[Release tag]
- Issue. Each task is an issue with a "done when" line, an
area:label and a milestone. Big features are a parent issue with sub-issues. - Branch. One branch per issue, named
type/short-name:feat/db-schema,fix/ci-linux-checks,docs/adr. - Commits. Small, focused Conventional Commits:
feat(db): add workout table,test(session): cover finish flow. - Pull request. Links its issue (
Closes #12), explains what and why, and shows screenshots for UI changes. - Checks. The package manifest and format checks run on GitHub Actions; the build and
tests run on Xcode Cloud.
mainis protected and only accepts green pull requests. - Squash merge. One commit per pull request on
main, so history reads as a list of features and fixes. - Changelog and release. Each PR updates CHANGELOG.md. Finishing a
milestone means a tag (
v0.2.0) and a GitHub release with notes and screenshots.
| Board column | Meaning |
|---|---|
| Backlog | Not planned yet |
| Ready | Planned for the current milestone |
| In progress | A branch exists |
| In review | A pull request is open |
| Done | Merged or closed |
Bug reports, ideas and pull requests are welcome. For anything big, open an issue first. CONTRIBUTING.md covers the setup, the module rules and the style guide, and everyone taking part follows the Code of Conduct.
- Found a security problem? See SECURITY.md and report it privately.
- What the app does with your data: PRIVACY.md.
- What changed between versions: CHANGELOG.md.
- What's done and what's next: the GymBro Roadmap board.
The code is GPL-3.0, with one additional term under its section 7(b): works based on GymMane must credit it as "Based on GymMane by InlitX". GymBro is based on GymMane by InlitX.
The exercise art comes from Workout Guide by Bryl Lim and from Everkinetic, the drawings Workout Guide builds on, and is CC BY-SA 4.0. The fonts use the SIL Open Font License. CREDITS.md has the details.