apple-platform-targetslisted
Install: claude install-skill wei18/apple-dev-skills
# Apple Platform Deployment Targets
## When to invoke
- Starting a new iOS / macOS App and setting the minimum deployment version.
- Writing the `platforms:` block in `Package.swift`.
- Deciding whether to adopt latest-OS-only APIs (Liquid Glass `.glassEffect()`, new Observation, new SwiftData behaviour, etc.).
- User asks about minimum iOS / macOS version or whether to support the previous major version.
## Default decisions
- **iOS 18 / macOS 15** as the default minimum.
- Toolchain: **Xcode 16+** (the first version with formal Swift 6 language mode support).
- Do not auto-bump with each Xcode major — bumping requires an explicit decision recorded in `foundations.md`.
- Keep `Package.swift` `platforms:` **aligned** with the App target deployment target; no skew.
## Rationale
- iOS 18 / macOS 15 aligns with the Swift 6 toolchain, unlocking Observation / SwiftData improvements and async sequence enhancements.
- Locking out auto-bumps prevents blindly chasing each Xcode major and losing users who haven't upgraded.
- For solo / small projects the user base is small, so the compatibility tax is low compared to the stability benefit.
## Deviation considerations
### Bump up to iOS 26 / macOS 26 (or newer)
- **Trigger**: adopting Liquid Glass (`.glassEffect()` is iOS 26+) or other latest-OS-only APIs.
- **Conditions**: the project has no backward-compat baggage (brand new App, no existing user base); or it's a personal / showcase project willing to cut off older versions.