- Build and run:
xcodebuild -scheme "Leader Key" -configuration Debug build - Run all tests:
xcodebuild -scheme "Leader Key" -testPlan "TestPlan" test - Run single test:
xcodebuild -scheme "Leader Key" -testPlan "TestPlan" -only-testing:Leader KeyTests/UserConfigTests/testInitializesWithDefaults test - Bump version:
bin/bump - Create release:
bin/release
- Imports: Group Foundation/AppKit imports first, then third-party libraries (Combine, Defaults)
- Naming: Use descriptive camelCase for variables/functions, PascalCase for types
- Types: Use explicit type annotations for public properties and parameters
- Error Handling: Use appropriate error handling with do/catch blocks and alerts
- Extensions: Create extensions for additional functionality on existing types
- State Management: Use @Published and ObservableObject for reactive UI updates
- Testing: Create separate test cases with descriptive names, use XCTAssert* methods
- Access Control: Use appropriate access modifiers (private, fileprivate, internal)
- Documentation: Use comments for complex logic or non-obvious implementations
Follow Swift idioms and default formatting (4-space indentation, spaces around operators).