关于 ios-swift
面向 iOS 开发者的 Swift 开发技能,涵盖 SwiftUI、UIKit、网络请求、数据持久化、Xcode 配置及 App Store 提交准备。
主要功能
- 01SwiftUI 与 UIKit 开发指导
- 02async/await、Combine 和 URLSession 网络请求
- 03Core Data、SwiftData 与 UserDefaults 持久化
- 04Xcode 签名、能力与权限配置
- 05TestFlight 和 App Store 提交流程
适用场景
- 01创建 iOS 应用界面与导航
- 02实现异步网络数据加载
- 03配置签名、推送和后台能力
- 04通过 TestFlight 测试应用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ partme-ai/ full-stack-skills --skill ios-swift安装后在 Claude Code 中输入/ios-swift确认已加载。
附带文件LICENSE.txt
详细介绍
何时使用此技能
在用户希望进行以下操作时使用此技能:
- 使用 Swift 和 SwiftUI 或 UIKit 创建 iOS 应用
- 实现导航、视图控制器,或 SwiftUI 视图和修饰符
- 使用 async/await、Combine 或 URLSession 进行网络通信
- 配置 Xcode 项目设置、签名、功能或授权
- 使用 Core Data、SwiftData 或 UserDefaults 持久化数据
- 通过 TestFlight 准备 App Store 提交
如何使用此技能
1. SwiftUI 视图
struct ContentView: View {
@StateObject private var viewModel = ItemViewModel()
var body: some View {
NavigationStack {
List(viewModel.items) { item in
NavigationLink(item.name) {
DetailView(item: item)
}
}
.navigationTitle("Items")
.task { await viewModel.loadItems() }
}
}
}
2. 使用 async/await 的 ViewModel
@MainActor
class ItemViewModel: ObservableObject {
@Published var items: [Item] = []
func loadItems() async {
let (data, _) = try await URLSession.shared.data(from: url)
items = try JSONDecoder().decode([Item].self, from: data)
}
}
3. 导航(UIKit)
let detailVC = DetailViewController()
detailVC.item = selectedItem
navigationController?.pushViewController(detailVC, animated: true)
4. Xcode 配置
- 设置 Signing & Capabilities:团队、Bundle ID、配置描述文件。
- 在 Signing 标签页中添加功能(Push Notifications、Background Modes)。
- 通过 Product -> Archive -> Distribute App 归档并上传。
最佳实践
- 在
@MainActor上执行所有 UI 更新;在闭包中使用[weak self]以避免循环引用。 - 在请求权限前,将
NSCameraUsageDescription等隐私键添加到 Info.plist。 - 在提交 App Store 前,在真机和 TestFlight 上进行测试。
- 遵循 Apple 人机界面指南中的布局、排版和导航模式。
资源
- https://developer.apple.com/documentation/swift
- https://developer.apple.com/documentation/swiftui
- https://developer.apple.com/design/human-interface-guidelines
关键词
iOS、Swift、SwiftUI、UIKit、Xcode、async/await、Core Data、TestFlight、App Store
评论
支持 Markdown