用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/UitbreidenOS/UitKit --skill ios-swift-ui命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
Guidelines and instructions for Agent execution state rollback rules
Guidelines and instructions for Agent execution step counters limits
Guidelines and instructions for Agent execution timeout limits setups
基于 SOC 职业分类
| name | ios-swift-ui |
| description | Build iOS apps with SwiftUI — declarative views, async/await, SwiftData, and Apple platform integration |
| allowed-tools | ["Read","Write","Bash","Grep"] |
| effort | high |
@State for local, @Bindable for shared, @Environment for injected.async let for parallel, Task for background work, .task modifier for view lifecycle. Handle loading/error states explicitly.@Model for entities, @Query for fetching, ModelContainer for setup. Migrate from Core Data only if benefits outweigh effort.NavigationStack with type-safe NavigationPath. Define routes as enums. Support deep linking via onOpenURL..accessibilityLabel, .accessibilityHint, Dynamic Type support with @ScaledMetric, VoiceOver testing.@Observable
class ProductListViewModel {
var products: [Product] = []
var isLoading = false
var error: Error?
func loadProducts() async {
isLoading = true
defer { isLoading = false }
do {
products = try await api.fetchProducts()
} catch {
self.error = error
}
}
}
struct ProductListView: View {
@State private var viewModel = ProductListViewModel()
var body: some View {
NavigationStack {
List(viewModel.products) { product in
NavigationLink(value: product) {
ProductRow(product: product)
}
}
.task { await viewModel.loadProducts() }
}
}
}