This repository was archived by the owner on Jul 15, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
github-actions[bot] edited this page Jun 2, 2026
·
3 revisions
⚠️ Rebranded: Contributions should go to github.com/douinc/deck. This repository is publicly archived.
Thank you for your interest in contributing to ClickerRemote!
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/deck.git cd deck - Set up the development environment (see Getting-Started)
git checkout -b feature/your-feature-name
# or
git checkout -b fix/bug-description- Edit Swift source files directly
- If changing build settings, edit
project.yml - After editing
project.yml, runxcodegen generate -
Never edit
Clicker.xcodeprojdirectly — it's generated
# Build both apps
just build-mac
just build-sim
# Run and test manually
just run-macUse conventional commit messages:
feat: add timer vibration pattern options
fix: resolve connection timeout on iOS 18
docs: update architecture diagram
refactor: extract connection logic to protocol
Prefixes:
-
feat:— New feature -
fix:— Bug fix -
docs:— Documentation -
refactor:— Code refactoring -
test:— Tests -
chore:— Maintenance
- Push your branch:
git push origin feature/your-feature-name
- Open a PR on GitHub
- Fill out the PR template
- Wait for review
- Use SwiftUI and modern Swift concurrency (
async/await) - Prefer
@MainActorfor UI-related classes - Use
@Publishedfor observable state - Follow Apple's Swift API Design Guidelines
| Type | Convention | Example |
|---|---|---|
| Classes | PascalCase | ConnectionManager |
| Protocols | PascalCase | CommandSender |
| Functions | camelCase | sendCommand() |
| Variables | camelCase | isConnected |
| Constants | camelCase | serviceType |
// MARK: - Properties
// MARK: - Initialization
// MARK: - Public Methods
// MARK: - Private Methods
// MARK: - Protocol Conformance-
Shared code →
Shared/ -
Mac-only code →
MacApp/ -
iOS-only code →
iPhoneApp/
Edit project.yml, not Xcode project settings:
targets:
ClickerMac:
settings:
base:
YOUR_SETTING: valueThen regenerate:
xcodegen generate- Documentation improvements
- UI polish and animations
- Accessibility improvements
- Localization
- Additional key mappings (custom keys)
- Slide counter display
- Multiple Mac connections
- Widget for quick launch
Check GitHub Issues for open bugs.
- Open a Discussion
- File an Issue
By contributing, you agree that your contributions will be licensed under the MIT License.