Děkujeme za zájem o přispění do VaciPlayer! 🎸
- Fork tento repository
- Clone váš fork:
git clone https://github.com/your-username/player.git - Build projekt:
swift build - Test funkcionalitu:
./scripts/test_basic_functionality.sh
- Použijte Bug Report template
- Včetně kroků pro reprodukci
- Specifikujte prostředí (macOS verze, hardware)
- Použijte Feature Request template
- Popište use case pro guitar practice
- Navrhněte UI/UX řešení
- Použijte Pull Request template
- Followujte coding standards
- Přidejte testy kde to dává smysl
- macOS 14.0+ (Sonoma)
- Xcode 15.0+ s Command Line Tools
- Swift 5.9+
# Clone repository
git clone https://github.com/your-username/player.git
cd player
# Build project
swift build
# Create standalone app
./build_standalone_app.sh
# Run tests
./scripts/test_basic_functionality.sh# Install SwiftLint
brew install swiftlint
# Run linting
swiftlint lint --strict- Classes:
PascalCase(e.g.,AudioManager) - Functions:
camelCase(e.g.,updateSongVolume) - Variables:
camelCase(e.g.,currentSongIndex) - Constants:
camelCase(e.g.,maxVolume)
- Czech language pro user-facing strings
- English pro code comments a dokumentaci
- Minimal comments - code should be self-documenting
Sources/VaciPlayer/
├── Models/ # Data models (Song, Playlist, etc.)
├── Views/ # SwiftUI views
├── Services/ # Business logic (AudioManager, etc.)
└── VaciPlayerApp.swift
@ObservableObjectpro shared state@Publishedproperties pro UI updates- UserDefaults pro persistence
# Basic functionality
./scripts/test_basic_functionality.sh
# Manual testing checklist
- [ ] Audio playback works
- [ ] Drag & drop reordering
- [ ] PDF export functionality
- [ ] Keyboard shortcuts
- [ ] Volume controls- Test with různé screen sizes
- Verify hover states
- Check accessibility
feature/short-description- nové featuresbugfix/issue-description- bug fixeshotfix/critical-issue- critical fixes
feat: add PDF export functionality
fix: resolve drag and drop conflict with tap gesture
docs: update installation instructions
style: fix SwiftLint warnings
refactor: extract audio player logic to service
- Create feature branch z
main - Make changes s atomic commits
- Test locally - build, functionality, manual testing
- Create PR using template
- Address review feedback
- Squash and merge po approval
- Test s real MP3 files (various bitrates)
- Verify performance s large playlists (50+ songs)
- Test audio výstup (speakers, headphones, USB interfaces)
- Test s různým počtem songs (1-50)
- Verify font scaling
- Check PDF formatting on různých systémech
- Maintain existing shortcuts
- Document new shortcuts
- Test v různých app states
- Support for network drives
- Handle file permission issues gracefully
- Preserve user data při folder changes
- No hardcoded secrets - use environment variables
- Validate all inputs - file paths, user input
- Secure file operations - check permissions
- Minimal data collection - only necessary for functionality
- Local storage only - no cloud uploads
- User control - clear data management
- Startup time: < 2 seconds
- Memory usage: < 100MB for typical playlists
- CPU usage: Minimal when not playing audio
# Build optimized version
swift build --configuration release
# Check binary size
ls -lh .build/release/VaciPlayer
# Profile memory usage during development- Document public APIs
- Include usage examples
- Update CLAUDE.md for architecture changes
- Update README pro new features
- Create usage examples
- Document keyboard shortcuts
- SwiftLint passes bez warnings
- Code follows established patterns
- No debug print statements
- Error handling implemented
- Feature works as expected
- No regressions in existing features
- Tested on target macOS version
- Keyboard shortcuts work
- Code changes documented
- README updated if needed
- CLAUDE.md updated for architecture changes
- PR template filled out
-
./scripts/test_basic_functionality.shpasses - Manual testing completed
- Performance impact assessed
- Accessibility considered
- Be respectful a constructive
- Focus on code not personality
- Help others learn - explain reasoning
- Search existing issues before creating new ones
- Provide context - screenshots, logs, steps
- Follow up na your reports
- Audio format support expansion
- Performance optimizations
- Accessibility improvements
- Advanced PDF customization
- Integration s guitar software
- Advanced practice features
- Enhanced file organization
- Automation capabilities
- Issues: Use GitHub issues pro bugs a features
- Discussions: Pro general questions a ideas
- Documentation: Check README a CLAUDE.md
Děkujeme za vaši pomoc s VaciPlayer! 🎵