📖 About Swift
Swift is a powerful and intuitive programming language created by Apple for iOS, macOS, watchOS, and tvOS development. It combines the best of modern language thinking with wisdom from Apple's engineering culture. Swift is safe by design yet also produces software that runs lightning-fast.
🎯 Best For
- iOS and macOS applications
- watchOS and tvOS apps
- Server-side Swift
- Cross-platform mobile development
- System programming
🔧 Key Features
- Type safety and type inference
- Optionals for null safety
- Value types (structs and enums)
- Protocol-oriented programming
- Automatic memory management (ARC)
- Modern syntax with powerful features
🛠️ Development Tools
Build
swift build
Test
swift test
Coverage
swift test --enable-code-coverage
Run
swift run
📄 Package Contents (7 files)
AGENTS_RULES.md
Complete AI agent rules (universal)
- SWIFT-specific best practices
- TDD workflow (Red-Green-Refactor)
- DDD principles and patterns
- Git workflow and commit format
- Code quality principles
.cursorrules
Quick reference for Cursor IDE
- Essential rules summary
- Links to full documentation
- Optimized for quick loading
.gitignore
Git exclusions
- SWIFT-specific patterns
- Build artifacts
- IDE configuration files
- Dependency directories
AGENTS.md
Quick reference guide
- Common patterns
- Best practices summary
- Quick troubleshooting
README.md
Project template with examples
- Setup instructions
- Sample code and structure
- Testing examples
- Build and run commands
CODE_QUALITY_PRINCIPLES.md
Quality principles and best practices
- Avoid default values (fail-fast)
- Consistency across code paths
- Extract reusable functions
- SWIFT-specific examples
CONTRIBUTING.md
Contribution guidelines
- TDD workflow (Red-Green-Refactor)
- Git commit format
- Code review process
- Testing requirements (90% coverage)
💻 Code Examples
Optionals and Safety
struct User {
let id: UUID
let name: String
let email: String
}
func findUser(id: UUID) -> User? {
return users.first { $0.id == id }
}
if let user = findUser(id: userId) {
print("Found: \(user.name)")
} else {
print("User not found")
}
Result Type
enum UserError: Error {
case notFound
case invalidEmail
}
func createUser(name: String, email: String) -> Result<User, UserError> {
guard email.contains("@") else {
return .failure(.invalidEmail)
}
let user = User(id: UUID(), name: name, email: email)
return .success(user)
}
Protocol-Oriented Programming
protocol Validatable {
func isValid() -> Bool
}
struct User: Validatable {
let name: String
let email: String
func isValid() -> Bool {
!name.isEmpty && email.contains("@")
}
}