Community-maintained Agent Skills for complete Swift and Apple-platform app delivery.
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Medium
Suggest reviewing before use
Changes in the iOS 27 / Xcode 27 SDK that affect state, previews, documents, and common views. Gate with #available unless the note says it back-deploys.
Building with Xcode 27 swaps the @State property wrapper for the State() macro. Declarations keep the same syntax. Per the iOS 27 release notes it avoids re-evaluating the initial value and back-deploys to iOS 17-aligned OSes. Xcode 26 and earlier still use the property wrapper.
Source-breaking cases when moving to Xcode 27:
@State with other property wrappers or macros is unsupported.struct CounterView: View {
@State private var count = 0 // OK
// Breaks on Xcode 27: declaration-site value plus init assignment
// @State private var count = 0
// init(count: Int) { _count = State(initialValue: count) }
}Keep @State private, keep defaults cheap and side-effect free (SwiftUI re-creates the default when it instantiates the view), and use .task for deferred setup.
ContentBuilder is a type alias for ViewBuilder, positioned as the single builder for views, toolbar content, and commands.
@ContentBuilder
var editingToolbarItems: some ToolbarContent {
ForEach(EditingOptions.toolbarItems, id: \.self) { option in
ToolbarItem { Button(option.title) { option.action() } }
}
}Existing @ViewBuilder and @ToolbarContentBuilder code keeps working.
@Entry now warns when the default value is a class instance or closure. Keep environment defaults as value types.
PreviewProvider and its preview modifiers are deprecated in Xcode 27. Use #Preview. See migration-view-lifecycle-layout.md.
New protocols for document-based apps with direct disk access:
ReadableDocument, WritableDocument: async read/write with progress and the document URL. read(from:progress:) and write(content:to:previous:progress:) requirements are @concurrent.Document: combines both; use with DocumentGroup.DocumentGroup initializers plus an Observable URLDocumentConfiguration for editing-only apps and custom pre-open UI. URLDocumentConfiguration is no longer Sendable; makeDocument and makeReadableDocument closures are @MainActor.fileExporter(isPresented:documents:contentTypes:onCompletion:onCancellation:) exports WritableDocument collections.FileWrapperDocumentWriter's makeFileWrapper now receives previous: FileWrapper? for incremental package writes; update existing closures.\.newDocument accepts an in-memory ReadableDocument on macOS 27.FileDocument and ReferenceFileDocument are deprecated for DocumentGroup; prefer Document or ReadableDocument.
| API | Note |
|---|---|
AsyncImage | Caches via HTTP caching headers. New URLRequest initializers with cachePolicy; View.asyncImageURLSession(_:) sets the session |
Text + .textSelection(.enabled) | Uses system selection UI when built with the iOS 27 SDK; works with TextRenderer on iOS and macOS |
textInputBorderShape(_:), TextInputBorderShape | Customize text input borders. New .bordered text field style; .squareBorder and .roundedBorder are soft-deprecated |
toolbarColorScheme(_:for: .statusBar), toolbarVisibility(_:for: .statusBar) | Status bar color scheme and visibility |
LabeledContent in Menu | Value becomes the menu item subtitle |
alert/confirmationDialog with data item or error | Overloads back-deploy |
| Gesture initializers with input sources | Restrict to direct touch, pencil, or pointer |
sceneAccessory with ExternalNonInteractiveAccessory | Non-interactive content on external displays |
crossFade sheet transition | New sheet transition |
Menu item symbol images are hidden by default on iPadOS 27 and macOS 27. Restore with labelStyle(_:) set to .titleAndIcon.
Navigation bars, tabs, and toolbars: swiftui-navigation. Reordering and drag containers: swiftui-layout-components.
| Deprecated | Use |
|---|---|
PreviewProvider | #Preview |
FileDocument, ReferenceFileDocument (for DocumentGroup) | Document, ReadableDocument |
.squareBorder, .roundedBorder text field styles | .bordered |
toolbarMinimizeBehavior | toolbarMinimizationBehavior |
.tessl-plugin
skills
accessorysetupkit
references
activitykit
adattributionkit
references
alarmkit
references
app-clips
app-intents
app-store-optimization
app-store-review
apple-on-device-ai
appmigrationkit
audioaccessorykit
references
authentication
references
avfoundation-audio
references
avkit
background-processing
references
browserenginekit
callkit
references
carplay
cloudkit
contacts-framework
references
core-bluetooth
references
core-data
core-haptics
references
core-motion
references
core-nfc
references
coreml
references
cryptokit
cryptotokenkit
debugging-instruments
device-integrity
references
energykit
references
eventkit
family-controls
references
financekit
focus-engine
gamekit
git-branching-workflow
references
healthkit
references
homekit
references
ios-accessibility
ios-app-workflow
references
ios-ettrace-performance
ios-localization
ios-memgraph-analysis
ios-networking
ios-simulator
references
metrickit
references
musickit
references
natural-language
paperkit
references
passkit
references
pdfkit
pencilkit
references
permissionkit
references
photokit
push-notifications
quicklook
references
realitykit
references
relevancekit
references
scenekit
sensorkit
shazamkit
references
speech-recognition
references
spritekit
storekit
swift-api-design-guidelines
swift-architecture
references
swift-charts
swift-codable
references
swift-code-review
swift-concurrency
swift-formatstyle
references
swift-language
swift-security
references
swift-testing
swiftdata
swiftlint
swiftui-animation
swiftui-gestures
references
swiftui-layout-components
swiftui-liquid-glass
references
swiftui-patterns
swiftui-performance
swiftui-responsive-layout
swiftui-uikit-interop
swiftui-webkit
tabletopkit
tipkit
vision-framework
weatherkit
references