用途:为基于 UIKit 的 iOS 应用提供架构模式与最佳实践,适用于构建 UIKit 应用、实现 MVVM/MVC/Coordinator 模式,或让 UIKit 与 SwiftUI 互操作。
主要能力:
- MVVM:Model 承载数据与业务逻辑,View 为 UIViewController/UIView 子类,ViewModel 负责展示逻辑并把模型数据转换为可显示内容。
- Coordinator:用协议 Coordinator(含 childCoordinators、navigationController、start())把导航流程从视图控制器中抽离,由 AppCoordinator 等负责 push 与子协调器管理。
- 依赖注入:通过初始化器注入协议依赖(如 UserServiceProtocol),提升可测试性。
- 纯代码 UI 与 Auto Layout:用 translatesAutoresizingMaskIntoConstraints 与 NSLayoutConstraint.activate 构建约束。
- 现代集合视图:UICollectionViewCompositionalLayout.list 配合 UICollectionViewDiffableDataSource 与 CellRegistration,通过 snapshot 应用数据更新。
- UIKit 与 SwiftUI 互操作:用 UIHostingController 在 UIKit 中承载 SwiftUI 视图;用 UIViewRepresentable 把 UIKit 视图(如 MKMapView)包装进 SwiftUI。
- 常见模式:视图控制器生命周期中管理 Task 并在 viewDidDisappear 取消;闭包中使用 [weak self] 避免循环引用。
使用方式:资料以概念说明与 Swift 代码示例呈现,未提供安装命令或调用命令。
适用场景:需要为 UIKit 项目引入清晰分层、可测试依赖注入、程序化导航与列表数据源,或需要混合 UIKit 与 SwiftUI 的工程。
限制与反模式:避免 Massive View Controller,应把展示逻辑、导航、UI 组件、网络/数据服务拆分;避免复杂的 Storyboard Segue 网络,改用 Coordinator 程序化导航;避免强制转换 cell,应使用 as? 并处理失败。资料未提供收费、价格、平台或效果信息。