mcpField
U
uikit-max

uikit-max

github.com/tornikegomareli测试与质量49756 次安装17 周前更新
代码仓库

关于 uikit-max

uikit-max 是用于 Swift 和 UIKit 项目的代码审查技能,检查正确性、API 现代性、无障碍、性能、并发及项目规范,并只报告实际问题。

主要功能

  1. 01检查已弃用的 UIKit API
  2. 02审查视图与 Auto Layout
  3. 03验证导航和控制器实现
  4. 04检查无障碍与性能
  5. 05检查并发和代码整洁度

适用场景

  1. 01在提交拉取请求前审查 UIKit 改动
  2. 02发现 iOS 界面的无障碍问题
  3. 03检查布局与生命周期实现
  4. 04排查并发问题和已弃用 API

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tornikegomareli/uikit-agent-skill --skill uikit-max

安装后在 Claude Code 中输入/uikit-max确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
accessibility.md
api.md
concurrency.md
controllers.md
design.md
hygiene.md
layout.md
navigation.md
performance.md
swift.md
tableview-collectionview.md
views.md

详细介绍

根据正确性、现代 API 用法和项目约定审查 Swift 和 UIKit 代码。仅报告确实存在的问题——不要吹毛求疵或凭空捏造问题。

审查流程:

  1. 使用 references/api.md 检查是否使用了已弃用的 API。
  2. 使用 references/views.md 检查视图、子类化和组合模式是否遵循最佳实践。
  3. 使用 references/layout.md 验证 Auto Layout 用法和约束模式。
  4. 使用 references/controllers.md 确保视图控制器生命周期和架构正确。
  5. 使用 references/navigation.md 确保导航模式现代且易于维护。
  6. 使用 references/tableview-collectionview.md 验证 UITableView 和 UICollectionView 的用法。
  7. 使用 references/design.md 确保代码采用符合 Apple《人机界面指南》的无障碍设计。
  8. 使用 references/accessibility.md 验证无障碍合规性,包括动态字体、VoiceOver 和特征。
  9. 使用 references/performance.md 确保代码运行高效。
  10. 使用 references/concurrency.md 检查并发和线程安全问题。
  11. 使用 references/swift.md 快速验证 Swift 代码。
  12. 使用 references/hygiene.md 进行最终代码规范检查。

如果只进行部分审查,仅加载相关参考文件。

核心说明

  • iOS 26 已发布,是最新的 iOS 版本。除非项目另有指定,新代码的最低部署目标应为 iOS 17 或更高版本。
  • 目标使用 Swift 6.2 或更高版本,并采用现代 Swift 并发机制。
  • 遵循项目的部署目标。 建议使用现代 API 前,先检查其可用性。如果项目面向更早版本的 iOS,请推荐最佳可用替代方案,并使用 if #available 检查封装较新的 API。参考文件会标注关键 API 的 iOS 版本(例如“iOS 15+”)。不要建议使用低于项目最低目标版本的 API,除非同时提供回退方案。
  • 作为 UIKit 开发者,用户期望使用 UIKit 模式。除非用户明确要求,否则不要建议改用 SwiftUI。
  • 未经询问,不要引入第三方框架。
  • 将不同类型拆分到不同的 Swift 文件中,不要在同一个文件中放置多个类、结构体或枚举。
  • 保持一致的项目结构,并根据应用功能安排文件夹布局。
  • 对新代码,优先使用通过 Auto Layout 锚点编写的编程式 UI,而不是 Storyboard 和 XIB;除非项目已广泛使用 Interface Builder。

输出格式

按文件组织审查结果。对于每个问题:

  1. 标明文件和相关行号。
  2. 指出违反的规则(例如,“使用 UIAlertController 替代 UIAlertView”)。
  3. 展示简短的修改前后代码。

跳过没有问题的文件。最后按优先级总结最值得先处理的改动。

示例输出:

ProfileViewController.swift

第 8 行:使用 UIAlertController 替代已弃用的 UIAlertView。

// Before
let alert = UIAlertView(title: "Error", message: msg, delegate: self, cancelButtonTitle: "OK")
alert.show()

// After
let alert = UIAlertController(title: "Error", message: msg, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default))
present(alert, animated: true)

第 24 行:使用 NSLayoutConstraint.activate 批量激活约束。

// Before
label.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
label.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true

// After
NSLayoutConstraint.activate([
    label.topAnchor.constraint(equalTo: view.topAnchor),
    label.leadingAnchor.constraint(equalTo: view.leadingAnchor)
])

第 42 行:添加约束前设置 translatesAutoresizingMaskIntoConstraints = false。

// Before
view.addSubview(label)
label.topAnchor.constraint(equalTo: view.topAnchor).isActive = true

// After
label.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(label)
NSLayoutConstraint.activate([
    label.topAnchor.constraint(equalTo: view.topAnchor)
])
总结
  1. 已弃用的 API(高): 必须将第 8 行的 UIAlertView 替换为 UIAlertController。
  2. 布局(中): 第 24 行逐个激活约束,应改用 NSLayoutConstraint.activate。
  3. 布局(中): 第 42 行缺少 translatesAutoresizingMaskIntoConstraints,会导致约束冲突。

示例结束。

参考资料

  • references/api.md — 已弃用的 UIKit API 及其现代替代方案。
  • references/views.md — UIView 生命周期、组合、子类化和自定义绘制。
  • references/layout.md — Auto Layout、布局锚点、UIStackView、固有内容尺寸、安全区域。
  • references/controllers.md — UIViewController 生命周期、容器控制器,以及避免臃肿的视图控制器。
  • references/navigation.md — 导航控制器、标签栏、协调器模式和模态呈现。
  • references/tableview-collectionview.md — 可差分数据源、组合布局、单元格配置和预取。
  • references/design.md — 人机界面指南、UIAppearance、特征集合、深色模式和自适应布局。
  • references/accessibility.md — VoiceOver、动态字体、辅助功能特征、标签和提示。
  • references/performance.md — 离屏渲染、图层优化、图像缓存和主线程性能。
  • references/concurrency.md — 主线程安全、async/await、DispatchQueue 迁移和后台任务。
  • references/swift.md — 现代 Swift 代码、Swift 并发和 Objective-C 互操作。
  • references/hygiene.md — 内存管理、循环引用、KVO/通知清理和 deinit 模式。

评论

支持 Markdown