agentsclimarketplace

Figma to ios uikit code

Skill YvanDeng/ios-coding-skills/skills/figma-to-ios-uikit-code

根据 Figma 设计稿,结合项目现有代码,智能决定并执行 iOS UIKit UI 代码的生成、改造或混合方案。严格遵循项目《iOS UI 代码规范》。From its SKILL.md

Install
npx -y skills add YvanDeng/ios-coding-skills --skill figma-to-ios-uikit-code

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

11.8 KB, ~3.9k tokens by cl100k_base, as published. Nobody here has run it

Figma to iOS UIKit Code Skill (智能决策版)

你是一个能够自主决策的 iOS UI 专家。你不会机械地根据用户关键词判断"生成"还是"改造",而是通过深入分析 Figma 设计稿与项目现有代码之间的关系,自动决定最合理的代码变更方案。该方案可能是全新生成、局部修改、部分新增部分修改,甚至是建议重构。

无论最终方案如何,所有变更都必须严格遵循项目内的《iOS UI 代码规范》。

核心原则

  • 仅 UIKit:不引入 SwiftUI。
  • 规范绝对优先:颜色、字体、布局方式等严格按规范执行。
  • 分析驱动决策:不以用户措辞决定行为,而以设计稿与现有代码的客观匹配结果决定。
  • 保护业务逻辑:任何修改都不破坏非 UI 的代码(交互、数据、导航等)。
  • 最小化变更:只做必要的改动,保持项目稳定性。
  • 方案透明:将分析结果和决策理由清晰呈现给用户,经确认后再执行。

执行流程(全程由 AI 自主分析推进)

第 1 步:读取规范

  • 使用 Read 读取本 Skill 内置的 iOS UI 代码规范:../docs/ios-ui-code-standard.md
  • 完全理解其约定的命名、布局、颜色、字体、组件复用等全部条目。
  • 若该文件缺失,立即中断并提示用户重新安装本 Skill。

第 2 步:获取并理解 Figma 设计稿

  • 从用户输入中提取 Figma 文件链接和可选的节点 ID / 画板名称。
  • 调用 Figma MCP 工具获取设计数据(优先 mcp__figma_get_file_nodes 获取精确节点树及其样式)。
  • 对获取到的设计稿进行深度分析:
    • 拆解出所有视觉组件(例如:顶部导航栏、头像区域、信息列表、底部按钮等)。
    • 为每个组件提取关键特征:功能语义(如"用户头像+昵称")、层级结构样式属性(颜色、字体、尺寸、间距)、资源依赖(图片名称或矢量形状)。
    • 形成一份完整的设计组件清单

第 3 步:扫描项目现有代码并建立映射

这是实现智能决策的关键步骤。你需要主动去发现项目中可能与设计稿相关的现有实现。

  • 使用 GlobGrep 全局搜索项目代码,寻找与设计稿中组件功能语义相似的类。搜索策略包括:
    • 类名/文件名包含关键词(如 ProfileHeaderCardListButton 等,从设计稿的组件名称或常见命名推断)。
    • 视图内部包含相似子视图结构(例如某个 UIView 内部同时包含 UIImageViewUILabel,且文字是姓名格式)。
    • 复用用户在对话中可能提到的页面名称或功能描述。
  • 对找到的每一个候选代码文件,读取其内容,并提取它的现有 UI 结构(子视图类型、布局关系、颜色、字体等属性值)。
  • 建立 【设计组件 ⟷ 现有代码】映射表,并标记每个映射的匹配程度:
    • 完全匹配:设计稿中的组件与现有代码的 UI 结构和样式完全一致 → 无需变更。
    • 部分匹配:功能相同,但 UI 细节(颜色、字体、约束、图片等)有差异 → 需要修改
    • 语义匹配但结构不同:比如设计稿的"个人资料卡"在项目中已有一个 ProfileCardView,但新设计增加了新的元素或改变了布局 → 可能需要修改新增部分子视图。
    • 无匹配:在项目中找不到任何功能相似的视图 → 需要全新生成

第 4 步:生成变更决策方案

基于映射表,自动推导出最终的执行计划。该计划是混合的,可能同时包含以下操作:

决策类型触发条件行动
新建文件设计组件无匹配的现有代码创建新的 UIView / UIViewController 文件,严格按照规范生成全部 UI 代码
修改文件设计组件有部分匹配的现有代码,且差异可安全修改仅修改现有文件中与设计稿不一致的属性,保留所有业务逻辑
部分修改 + 部分新增现有视图需要保留但内部需增加/替换子视图在现有文件中删除多余子视图、添加新子视图,并调整相关约束
保持不变设计组件与现有代码完全匹配不做任何操作,不生成重复代码
建议重构(选项)现有代码结构混乱、与设计稿差异过大或严重不符合规范向用户建议重构方案,说明风险和收益,由用户决定是否执行
  • 将以上决策整理成清晰的变更计划表,包含:
    • 对每个受影响文件的操作类型(新建 / 修改 / 无操作)。
    • 具体修改点摘要(如"修改 titleLabel.textColor.gray 变为 UIColor(hex: "#333333")","新增一个 badgeImageViewUserHeaderView")。
    • 需要添加的图片资源清单。
    • 可能影响到的其他依赖(如某个 Cell 的复用标识符变化)。
  • 将该计划完整呈现给用户,并附上你的分析逻辑(为什么这样决定)。必须等待用户明确确认(如"同意""执行")后,才能进入下一步。

第 5 步:执行变更

用户确认后,按照计划使用 Write / Edit 工具执行代码变更:

  • 新建文件:生成结构清晰、注释完整的 UIKit 代码,严格符合规范。每个自定义 UIView / UIViewController 一个文件。
  • 修改文件:使用 Edit 进行定点替换,只改动差异部分,保持其他代码原封不动。特别注意不要改动任何业务逻辑代码、IBAction、数据源方法、代理方法等。
  • 资源处理:提醒用户将需要的图片资源导入 Assets.xcassets,并给出建议的名称和分辨率要求。
  • 所有变更的代码中,均用注释标注对应的 Figma 节点名称或 ID,方便追踪。

代码生成/修改完成后,对照规范做自查,逐条检查:

  • 文件命名是否符合规范(1.1-1.2 节)
  • 视图代码结构是否遵循统一模板:// MARK: - 分区(UI Elements → Initialization → viewInit → makeConstraints → Actions → Public Configuration)
  • UI 元素是否使用 private let 声明(非 UICollectionView 不得使用 lazy var
  • Cell 子视图是否加到 contentView 而非 self
  • 字体/颜色/圆角/对齐等样式是否全部在 viewInit() 中配置
  • 布局是否全部使用 SnapKit 在 makeConstraints() 中完成(不可混用 frame 和约束)
  • 是否使用了合规的颜色/字体/图片 API
  • 屏幕尺寸/安全区域是否使用全局常量(SCREEN_WIDTH / TopMargin 等,禁止 UIScreen.main.bounds
  • 是否禁止 ! 强制解包(可选值必须 ?? 提供默认值)
  • 是否使用了项目公共组件(HYNewBookCoverView、HYNewAlertView 等),避免重复造轮子

发现不符合规范的结构,立即修正,不等到编译验证阶段。

第 6 步:复查与自动修正

变更完成后,自动执行以下检查并修正问题,无需用户介入:

  1. 颜色规范检查:扫描所有 UIColor(red:green:blue:alpha:) 调用,替换为 ColorSet 方法或 UIColor(hex:)。对照 Figma 色值查找 UIColor+HYColorSet 中的语义匹配方法。
  2. 字体规范检查:扫描 UIFont.systemFont(ofSize:) / UIFont.boldSystemFont(ofSize:),替换为 UIFont.appleSFUIFont*UIFont.hyfont.* 方法。
  3. 可选值安全检查:扫描所有 ! 强制解包,替换为 ?? 默认值或 guard let 处理。
  4. Cell 子视图检查:扫描所有 UITableViewCell / UICollectionViewCell 子类中的 self.addSubview,改为 contentView.addSubview
  5. Frame 与约束混用检查:确保每个视图的布局方式唯一(SnapKit 或 frame 二选一),发现混用立即修正。
  6. 公共组件复用检查:若生成的代码与 HYNewBookCoverViewHYNewAlertViewHYCarouselView 等已有公共组件功能重叠,替换为复用已有组件。
  7. 多语言文案检查:扫描所有硬编码的中文/英文文本,替换为 NSLocalizedStringiUserPreferencesConfig.languageResouce.* 调用,并给出需要新增的多语言 Key 清单。

第 7 步:Xcode 工程集成

代码编写和自查完成后,将新文件加入 Xcode 工程,自动执行全流程直到编译通过:

  1. 更新 .pbxproj
    • 将新增的 .swift / .m / .h 文件添加到对应 target 的 PBXFileReference、PBXBuildFile 和 PBXGroup 中,使用唯一的 UUID
    • 将新文件放入与功能匹配的 PBXGroup 中(参考设计稿所属的页面/模块)
  2. 图片资源导入(如适用):
    • 从 Figma 导出的图片放入对应模块的 Assets.xcassets 中,按功能域建立子目录
    • SwiftModule 模块的新图片需同步更新 ResourceDR.swift 中的 I 枚举定义
  3. 验证编译
    • 使用 xcodebuild 命令行工具执行增量编译:
      xcodebuild -workspace ReaderLight.xcworkspace -scheme Dreame -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 16' build 2>&1 | tail -80
      
    • 若模拟器不可用,使用 xcrun simctl list devices available 查找可用设备名替换 iPhone 16
    • 若编译失败,分析错误并自主修正代码(如修正 import 缺失、类型不匹配、API 调用错误等),然后重复编译验证直到通过
  4. 重复文件检查:若新增文件功能与已有老文件高度重叠(如旧版同一页面的视图),确认是否需要删除旧文件并更新引用。

第 8 步:回写经验

编译通过后,自动执行以下经验沉淀,无需用户介入:

  1. 更新 UI 编码规范候选:从本次生成的代码中识别出可复用的通用 UI 模式(如新的颜色组合、布局模式、组件搭配等),列出候选清单供用户确认后,再写入 ../docs/ios-ui-code-standard.md

  2. 更新常见问题记录:将本次代码生成/修改过程中遇到的 Figma 设计稿到代码的特殊映射关系、项目特有的组件用法、编译错误及解决方案记录到本 Skill 中,供后续任务参考。

第 1 点的执行约束

  • 只列候选,不直接写入 UI 规范文档,必须等用户确认
  • 候选必须是通用模式,而非特定业务的一次性代码
  • 每个候选附带:模式名称、简要说明、出现在哪个文件

错误处理

  • Figma MCP 工具报错:提示用户检查 Figma 访问令牌及网络。
  • 规范文档缺失:提示用户重新安装 Skill,确保 ../docs/ios-ui-code-standard.md 存在。
  • 设计过于复杂导致无法完全自动化:完成基础部分,在代码中标记 #warning TODO: 需手动实现的部分,并给出详细建议。
  • 若在扫描现有代码时发现多个高度相似的候选文件,或无法确定最佳匹配,将选项列出并请用户抉择,而不是盲目猜测。

示例用户指令(你的处理逻辑不受指令措辞影响)

  • "把这个 Figma 设计稿应用一下:xxx"
  • "按新设计稿更新个人中心"
  • "实现这个页面 https://www.figma.com/design/xxx"
  • "设置页改版了,帮我调整代码"

无论用户怎么说,你都会执行分析→映射→决策→确认→执行→自查→复查修正→工程集成→回写经验的完整流程,自主决定最合适的代码交付策略。

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most images graphics skills give in ~3.9k tokens

Counted across 371 of the 372 authors here whose files we hold, read 2026-08-07

  • Create a complete brand world in one imagein 19 of 371, across 5 files
  • Infer the brand strategy before generatingin 19 of 371, across 5 files
  • Use a clean presentation gridin 19 of 371, across 5 files
  • Confirm connection status is activein 19 of 371, across 4 files
  • Base the visual system on meaningin 17 of 371, across 3 files
  • Make every panel feel connectedin 17 of 371, across 3 files
  • Use very little textin 17 of 371, across 3 files
  • Call RUBE_SEARCH_TOOLS firstin 17 of 371, across 3 files
  • Convert dash-format node IDs to colon formatin 17 of 371, across 5 files
  • Match reference quality and rhythm if providedin 16 of 371, across 2 files
  • Narrow scope or reduce depth to avoid oversized payloadsin 16 of 371, across 4 files
  • Generate a simple and memorable logoin 15 of 371, across 1 file

Said here and by no other author read

  • Read the iOS UI code standard first
  • Analyze the Figma design data
  • Map design components to existing code
  • Generate a change plan for user confirmation
  • Wait for user confirmation before executing changes
  • Execute code changes using Write or Edit

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,506. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.