mcpField
I
ios-application-dev

ios-application-dev

github.com/minimax-ai开发13.7k2.1k 次安装28 周前更新
代码仓库

关于 ios-application-dev

ios-application-dev 是使用 UIKit、SnapKit 和 SwiftUI 构建 iOS 应用的实践指南。它为开发者提供符合 Apple 平台惯例的组件建议,以及布局、无障碍、导航、隐私和系统集成检查清单。

主要功能

  1. 01UIKit 与 SwiftUI 组件参考
  2. 02布局与字体实践
  3. 03无障碍和颜色指导
  4. 04导航与状态保留模式
  5. 05隐私和权限检查清单
  6. 06系统集成建议

适用场景

  1. 01为应用界面选择 UIKit 或 SwiftUI 组件
  2. 02检查布局的无障碍性和屏幕尺寸适配
  3. 03规划跨标签页导航与状态处理
  4. 04核查权限请求和隐私行为

安装

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

$npx skills add https://github.com/minimax-ai/skills --skill ios-application-dev

安装后在 Claude Code 中输入/ios-application-dev确认已加载。

包含的文件

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

references/
accessibility.md
graphics-animation.md
layout-system.md
metal-shader.md
navigation-patterns.md
swift-coding-standards.md
swiftui-design-guidelines.md
system-integration.md
uikit-components.md

详细介绍

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、.secondary、Color(.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)
  • 为自定义颜色使用资源目录变体(任意/深色外观)
  • 不要仅用颜色传达信息(应搭配图标或文本)
  • 普通文本的对比度 >= 4.5:1,大号文本为 3:1
辅助功能
  • 为图标按钮添加标签(.accessibilityLabel())
  • 遵循减少动态效果设置(@Environment(\.accessibilityReduceMotion))
  • 确保阅读顺序合理(.accessibilitySortPriority())
  • 支持粗体文本、增强对比度偏好设置
导航
  • Tab 栏(3-5 个分区)在导航过程中保持可见
  • 支持向后滑动(绝不覆盖系统手势)
  • 在不同 Tab 之间保留状态(@SceneStorage、@State)
  • 绝不使用汉堡菜单
隐私与权限
  • 在适当的上下文中请求权限(不要在启动时请求)
  • 在系统对话框前提供自定义说明
  • 支持使用 Apple 登录
  • 尊重 ATT 拒绝结果

检查清单

布局
  • 触控目标 >= 44pt
  • 内容置于安全区域内
  • 主要操作位于拇指可及区域(下半部分)
  • 所有屏幕尺寸均采用灵活宽度(从 SE 到 Pro Max)
  • 间距符合 8pt 网格
字体排版
  • 使用语义文本样式,或采用 UIFontMetrics 缩放的自定义字体
  • 动态字体支持至辅助功能字号
  • 大字号下布局可重新排列(不截断)
  • 最小文本字号为 11pt
颜色
  • 采用语义系统颜色或浅色/深色资源变体
  • 深色模式经过专门设计(而非仅反转颜色)
  • 信息不只通过颜色传达
  • 文本对比度 >= 4.5:1(普通文本)/3:1(大号文本)
  • 交互元素使用单一强调色
无障碍
  • 为所有交互元素设置 VoiceOver 标签
  • 阅读顺序符合逻辑
  • 遵循粗体文本偏好设置
  • 减少动态效果设置可禁用装饰性动画
  • 所有手势都有替代操作方式
导航
  • 使用标签栏展示 3-5 个顶级版块
  • 不使用汉堡菜单/抽屉式菜单
  • 导航过程中标签栏保持可见
  • 全程支持向后滑动
  • 在不同标签页之间保留状态
组件
  • 仅在需要做出关键决策时使用警告框
  • 操作面板提供关闭方式(按钮和/或滑动)
  • 列表行高度 >= 44pt
  • 破坏性按钮使用 .destructive 角色
隐私
  • 在相关场景中请求权限(而非启动时)
  • 在系统权限对话框前提供自定义说明
  • 与其他服务提供商选项一同提供通过 Apple 登录
  • 无需账户即可使用基本功能
  • 如需跟踪,则显示 ATT 提示,并尊重用户的拒绝选择
系统集成
  • 应用可妥善处理打断情况(来电、后台运行、Siri)
  • 应用内容已编入 Spotlight 索引
  • 可分享内容提供分享表单

参考资料

主题参考资料
触控目标、安全区域、CollectionView布局系统
TabBar、NavigationController、模态视图导航模式
StackView、Button、Alert、Search、ContextMenuUIKit 组件
CAShapeLayer、CAGradientLayer、Core Animation图形与动画
动态字体、语义颜色、VoiceOver无障碍
权限、位置、分享、生命周期、触觉反馈系统集成
Metal 着色器与 GPUMetal 着色器参考
SwiftUI HIG、组件、模式、反模式SwiftUI 设计指南
Optionals、Protocols、async/await、ARC、错误处理Swift 编码规范

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

评论

支持 Markdown