PeakFit
An app to track your strength training workouts.
:hammer: Project Setup
Prerequisites
- Node.js is needed for git hooks
- How to install node instructions can be found here. @heyjaywilson suggests using the prebuilt installer for the current version
- Xcode 16.0 (@heyjaywilson suggests using the Xcodes app to manage Xcode versions)
- swift-format
- How to install instructions can be found here
- You need swift-format installed because the formatting hooks use the command
swift-format
and not swift format
which is the command that comes with Xcode 16
Building and Running the App
- Clone the repo
- Navigate into the repo via the command line
- Run
npm install
to install the node modules
- Run
npx husky .
to install the git hooks
- Open the Xcode project
- Remove the template suffix from
PeakFit/Resources/Project.xcconfig.template
so that it is just PeakFit/Resources/Project.xcconfig
- Set your development team in the
PeakFit/Resources/Project.xcconfig
file
- Set the PRODUCT_BUNDLE_IDENTIFIER to one that is unique to your development team
- Build the project
Resources for coding conventions
Commands
These commands are available once you have installed the prerequisites.
Command |
Purpose |
npm run prepare |
installs git hooks |
npm run emojify |
adds emoji to the last commit |
npm run format |
runs swift format across all swift files |
npm run format-changes |
runs a script to only format swift files that have been touched |
Contributing TLDR
[!NOTE]
If you just want to request a feature or report a bug, do so in the discussions.
- Ask for an issue to be assigned to you and wait for @heyjaywilson to assign the issue to you.
- Fork the repo and make changes
- Commit your changes. Your commit messages must follow conventional commits. There is a git hook that runs on commit that validates the commit message format.
- Open a PR and make it pass
If there are any questions, please open a discussion.
For more details around contributing see the contributing file
Contributors
Made with contrib.rocks.
License
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for more details.