autojanet/skills/understand/languages/swift.md
Zoë cc74ad0bd0
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
fix: use library/ Harbor project, add skills, fix pipeline secrets
- .woodpecker.yaml: image paths -> library/autojanet-{agent,dispatcher}
- .woodpecker.yaml: secret names RS_HARBOR_USER / RS_HARBOR_PASS (global)
- container/Dockerfile: restore COPY skills/, skills/ populated from opencode config
- skills/: 84 opencode skills bundled into image
- k8s/manifests: update image refs to library/
2026-05-30 15:43:14 -07:00

2.5 KiB

Swift Language Prompt Snippet

Key Concepts

  • Optionals and Optional Chaining: Type? wraps values that may be nil; ?. chains safely
  • Protocols and Protocol Extensions: Define contracts with default implementations via extensions
  • Value Types vs Reference Types: Structs and enums are value types; classes are reference types
  • Closures: Self-contained blocks of functionality that capture surrounding context
  • Property Wrappers: @State, @Binding, @Published encapsulate property storage logic
  • Result Builders: @ViewBuilder, @resultBuilder enable declarative DSL syntax
  • Actors and Structured Concurrency: actor types for data isolation; async let, TaskGroup
  • Generics: Type parameters with where clauses and associated type constraints
  • Enums with Associated Values: Each case can carry distinct typed payloads
  • Extensions: Add methods, computed properties, and protocol conformance to existing types

Import Patterns

  • import Foundation — core library with data types, collections, networking
  • import UIKit — iOS UI framework for traditional view controller architecture
  • import SwiftUI — declarative UI framework with reactive state management
  • @testable import ModuleName — import with internal access for unit testing

File Patterns

  • Package.swift — Swift Package Manager manifest defining targets and dependencies
  • *.xcodeproj / *.xcworkspace — Xcode project and workspace configuration
  • AppDelegate.swift — UIKit application lifecycle entry point
  • App.swift — SwiftUI application entry point using @main
  • Tests/ — test target directory following SPM or Xcode conventions

Common Frameworks

  • SwiftUI — Declarative UI framework with reactive data flow
  • UIKit — Imperative UI framework using view controllers and Auto Layout
  • Vapor — Server-side Swift web framework with async support
  • Combine — Reactive framework for processing values over time
  • Core Data — Object graph and persistence framework

Example Language Notes

Uses @Published property wrapper to automatically notify SwiftUI views of state changes. When the wrapped value mutates, the property wrapper triggers objectWillChange on the enclosing ObservableObject, causing dependent views to re-render.

Protocol extensions provide default implementations, allowing types to conform by simply declaring conformance — no method body needed if defaults suffice.