We welcome contributions to BetterFit! By contributing, you help make this project better for everyone.
By contributing to this project after December 29, 2025, you agree to:
- License your contributions under the BSD 3-Clause License with Branding Protection
- Acknowledge that echoHello may use your contributions in both the open-source version and any commercial offerings
- Grant echoHello the right to relicense your contributions as needed for commercial purposes
Note: All contributions made before December 29, 2025 remain under their original MIT license terms.
- Fork the repository and create a new branch for your feature/fix
- Make your changes following our code style (see below)
- Test your changes - run
mise run testand verify iOS/watch apps work - Submit a pull request with a clear description of what you've changed and why
- Follow Swift API Design Guidelines
- Use
// MARK:to organize code into navigable sections - Keep view files focused and split when they exceed ~300-500 lines
- Prefer native iOS APIs over custom solutions
- See AGENTS.md for detailed coding philosophy
- Xcode (for iOS Simulator)
mise(recommended)- XcodeGen (only needed if you don’t use the
misetasks):brew install xcodegen
From the repo root:
mise installmise run build
mise run testFor detailed instructions on running iOS and watchOS apps, including simulators and troubleshooting, see:
- Local Development Guide - Complete setup and common tasks
- Main Docs - iOS and watchOS simulator instructions
- Local Development Guide - Setup, environment variables, common tasks
- Docs Index - API reference, examples, iOS/watchOS run instructions
- Authentication Guide - Auth methods and configuration
- Root README - Project overview
- AGENTS.md - Code organization and philosophy