返回全部 Skills

ios-application-dev

开发工具 官方认证

iOS 应用开发指南,涵盖 UIKit、SnapKit 和 SwiftUI。内容包括触摸目标、安全区域、导航模式、动态字体、深色模式、无障碍支持、集合视图、常见 UI 组件以及 SwiftUI 设计指南。有关特定主题的详细参考,请参见参考文件。 使用场景:开发 iOS 应用、实现 UI、审查 iOS 代码、使用 UIKit/SnapKit/SwiftUI 布局、构建 iPhone 界面、Swift 移动开发、符合 Apple HIG 规范、实现 iOS 无障碍功能。

44

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

在项目根目录执行以下命令,完成 Skill 安装。

npx bzskills add MiniMax-AI/skills --skill ios-application-dev

skill.md

name: ios-application-dev
description: "iOS 应用开发指南,涵盖 UIKit、SnapKit 和 SwiftUI。内容包括触摸目标、安全区域、导航模式、动态字体、深色模式、无障碍支持、集合视图、常见 UI 组件以及 SwiftUI 设计指南。有关特定主题的详细参考,请参见参考文件。  \n使用场景:开发 iOS 应用、实现 UI、审查 iOS 代码、使用 UIKit/SnapKit/SwiftUI 布局、构建 iPhone 界面、Swift 移动开发、符合 Apple HIG 规范、实现 iOS 无障碍功能。"
license: MIT
metadata:
    author: MiniMax-OpenSource
    version: "1.0.0"
    category: mobile
    sources:
        - Apple Human Interface Guidelines
        - Apple Developer Documentation

iOS 应用开发指南

一份使用 UIKit、SnapKit 和 SwiftUI 构建 iOS 应用的实用指南。专注于经过验证的模式和 Apple 平台惯例。

快速参考

UIKit

用途组件
主要分区UITabBarController
向下钻取UINavigationController
聚焦任务Sheet 弹出式展示
关键选择UIAlertController
次要操作UIContextMenuInteraction
列表内容UICollectionView + DiffableDataSource
分段列表DiffableDataSource + headerMode
网格布局UICollectionViewCompositionalLayout
搜索UISearchController
分享UIActivityViewController
位置(一次性)CLLocationButton
反馈UIImpactFeedbackGenerator
线性布局UIStackView
自定义形状CAShapeLayer + UIBezierPath
渐变CAGradientLayer
现代按钮UIButton.Configuration
动态文本UIFontMetrics + preferredFont
深色模式语义颜色(.systemBackground.label
权限上下文请求 + AVCaptureDevice
生命周期UIApplication 通知

SwiftUI

用途组件
主要分区TabView + tabItem
向下钻取NavigationStack + NavigationPath
聚焦任务.sheet + presentationDetents
关键选择.alert
次要操作.contextMenu
列表内容List + .insetGrouped
搜索.searchable
分享ShareLink
位置(一次性)LocationButton
反馈UIImpactFeedbackGenerator
进度(已知)ProgressView(value:total:)
进度(未知)ProgressView()
动态文本.font(.body) 语义样式
深色模式.primary.secondaryColor(.systemBackground)
场景生命周期@Environment(\.scenePhase)
减少动态效果@Environment(\.accessibilityReduceMotion)
动态字体大小@Environment(\.dynamicTypeSize)

核心原则

布局

  • 触摸目标 >= 44pt
  • 内容位于安全区域内(SwiftUI 默认遵守,仅对背景使用 .ignoresSafeArea()
  • 使用 8pt 递进的间距(8、16、24、32、40、48)
  • 主要操作位于拇指可及区域
  • 支持所有屏幕尺寸(iPhone SE 375pt 到 Pro Max 430pt)

排版

  • UIKit:preferredFont(forTextStyle:) + adjustsFontForContentSizeCategory = true
  • SwiftUI:语义文本样式 .headline.body.caption
  • 自定义字体:UIFontMetrics / Font.custom(_:size:relativeTo:)
  • 在无障碍尺寸下自适应布局(最小 11pt)

颜色

  • 使用语义系统颜色(.systemBackground.label.primary.secondary
  • 自定义颜色使用 Asset 目录变体(任意/深色外观)
  • 不使用仅靠颜色传达信息的方式(搭配图标或文字)
  • 对比度 >= 4.5:1(正文),3:1(大号文字)

无障碍

  • 图标按钮添加标签(.accessibilityLabel()
  • 尊重“减少动态效果”(@Environment(\.accessibilityReduceMotion)
  • 符合逻辑的阅读顺序(.accessibilitySortPriority()
  • 支持“粗体文本”、“增强对比度”偏好

导航

  • Tab 栏(3-5 个分区)在导航过程中保持可见
  • 返回滑动可用(切勿覆盖系统手势)
  • 跨 Tab 保持状态(@SceneStorage@State
  • 绝不使用汉堡菜单

隐私与权限

  • 在上下文(而非启动时)请求权限
  • 在系统对话框之前显示自定义说明
  • 支持“通过 Apple 登录”
  • 尊重 ATT 拒绝

检查清单

布局

  • [ ] 触摸目标 >= 44pt
  • [ ] 内容位于安全区域内
  • [ ] 主要操作位于拇指可及区域(下半部分)
  • [ ] 支持所有屏幕尺寸(SE 到 Pro Max)的灵活宽度
  • [ ] 间距遵循 8pt 网格

排版

  • [ ] 使用语义文本样式或经 UIFontMetrics 缩放的自定义字体
  • [ ] 动态字体支持到无障碍尺寸
  • [ ] 大尺寸时布局自动重排(无截断)
  • [ ] 最小文本字号 11pt

颜色

  • [ ] 使用语义系统颜色或浅色/深色 Asset 变体
  • [ ] 深色模式是经过设计的(并非简单反色)
  • [ ] 没有仅靠颜色传达信息
  • [ ] 文本对比度 >= 4.5:1(正文)/ 3:1(大号文字)
  • [ ] 可交互元素使用单一强调色

无障碍

  • [ ] 所有可交互元素添加 VoiceOver 标签
  • [ ] 符合逻辑的阅读顺序
  • [ ] 尊重“粗体文本”偏好
  • [ ] “减少动态效果”禁用装饰性动画
  • [ ] 所有手势都有替代访问路径

导航

  • [ ] 3-5 个顶级分区使用 Tab 栏
  • [ ] 无汉堡/抽屉菜单
  • [ ] 导航过程中 Tab 栏保持可见
  • [ ] 返回滑动始终可用
  • [ ] 跨 Tab 保持状态

组件

  • [ ] 仅对关键决策使用弹窗
  • [ ] Sheet 有退出路径(按钮和/或滑动)
  • [ ] 列表行高度 >= 44pt
  • [ ] 破坏性按钮使用 .destructive role

隐私

  • [ ] 在上下文(而非启动时)请求权限
  • [ ] 在系统权限对话框之前显示自定义说明
  • [ ] 与其他提供商一同提供“通过 Apple 登录”
  • [ ] 基本功能无需账户即可使用
  • [ ] 如果涉及跟踪则显示 ATT 提示,并尊重拒绝

系统集成

  • [ ] 应用优雅处理中断(电话、后台、Siri)
  • [ ] 应用内容已为 Spotlight 建立索引
  • [ ] 可供分享的内容提供分享面板

参考文献

主题参考
触摸目标、安全区域、CollectionView[布局系统](references/layout-system.md)
TabBar、NavigationController、Modal[导航模式](references/navigation-patterns.md)
StackView、Button、Alert、Search、ContextMenu[UIKit 组件](references/uikit-components.md)
CAShapeLayer、CAGradientLayer、Core Animation[图形与动画](references/graphics-animation.md)
动态字体大小、语义颜色、VoiceOver[无障碍](references/accessibility.md)
权限、位置、分享、生命周期、触觉反馈[系统集成](references/system-integration.md)
Metal 着色器与 GPU[Metal 着色器参考](references/metal-shader.md)
SwiftUI HIG、组件、模式、反模式[SwiftUI 设计指南](references/swiftui-design-guidelines.md)
可选值、协议、async/await、ARC、错误处理[Swift 编码规范](references/swift-coding-standards.md)

---

Swift、SwiftUI、UIKit、SF Symbols、Metal 和 Apple 是 Apple Inc. 的商标。SnapKit 是其各自所有者的商标。