fosmvvm-viewmodel-generator

🏗️ FOSMVVM 架构 ViewModel 智能生成器

🥥8总安装量 2评分人数 2
100% 的用户推荐

FOSUtilities 官方出品的 SwiftUI ViewModel 代码生成技能,基于 FOSMVVM 架构自动生成服务端/客户端托管的 ViewModel、请求类型、本地化绑定及工厂代码,显著提升 iOS 开发效率与架构一致性。

S

安全性较高,可在多数场景中优先使用

  • 来自可信组织或认证账号,需要结合权限范围判断
  • ✅ 纯 Markdown 文档型资产,无可执行代码,无代码执行风险
  • ✅ 无网络通信、无数据收集、无敏感权限申请
  • ✅ 无危险函数(eval/exec/system/subprocess),无动态代码加载
  • ⚠️ 生成的 Swift 代码模板需用户审查后使用,实际执行在本地 Swift 编译器环境
  • ⚠️ 代码示例中的占位符(如 `{Name}}`)需正确替换,避免编译错误

使用说明

核心用法

FOSMVVM ViewModel Generator 是一款专为 SwiftUI 开发者设计的架构代码生成工具,基于 FOSMVVM(Model-View-ViewModel)架构模式,自动生成完整的 ViewModel 脚手架代码。该技能通过对话上下文自动识别需求,无需手动指定文件路径或回答冗长问卷。

使用时,开发者通过 /fosmvvm-viewmodel-generator 命令触发技能,系统根据对话中已明确的视图需求、数据源类型(服务端数据库或本地状态)以及是否为表单输入场景,自动生成对应的代码文件。对于服务端托管模式(Server-Hosted),生成 ViewModel 结构体、Request 类型、YAML 本地化文件及工厂实现共 4 个文件;对于客户端托管模式(Client-Hosted),仅需 2 个文件,工厂代码由宏自动生成。子组件 ViewModel 则根据是否包含本地化文本生成 1-2 个文件。

显著优点

该技能的最大优势在于架构标准化与开发效率的双重提升。首先,它强制推行 FOSMVVM 架构的最佳实践,包括 @ViewModel 宏的正确使用、、@LocalizedString 属性包装器的自动绑定、以及 RequestableViewModel 与纯 ViewModel 的清晰区分,确保团队代码风格高度一致。

其次,本地化支持深度集成。技能自动处理静态 UI 文本(@LocalizedString)、动态枚举值(LocalizableString)、日期数字格式化(LocalizableDate//LocalizableInt`)等多种本地化场景,且支持服务端编码时本地化与客户端编码时本地化两种模式,满足全球化应用需求。

第三,错误处理模式优雅。针对客户端错误展示场景,技能提供专门的 Client-Hosted 模式,允许开发者将捕获的 ResponseError 快速包装为特定 ViewModel,避免创建通用的「ToastViewModel」反模式,保持类型安全与架构清晰。

第四,代码生成全面。从顶层页面 ViewModel 到嵌套子组件,从展示型 ViewModel 到表单型 ViewModel(自动关联 Fields 协议),覆盖 MVVM 开发的全场景需求。

潜在缺点与局限性

该技能的主要局限在于框架绑定性。FOSMVVM 是一个特定的架构实现,与 SwiftUI、Vapor 后端及特定的本地化系统深度耦合,无法直接应用于 UIKit、React Native 或其他技术栈的项目。对于未采用 FOSMVVM 架构的团队,学习曲线和迁移成本较高。

其次,技能本身为纯文档型工具,仅提供代码模板和生成指导,不直接执行代码生成操作。实际代码生成依赖于开发者在 Xcode 或命令行环境中的手动操作,或配合其他自动化工具使用,无法做到「一键生成并写入项目」。

第三,对于复杂业务逻辑,自动生成的工厂代码可能需要大量手动调整。特别是服务端托管模式下,数据库查询逻辑、数据转换规则仍需开发者自行实现,技能仅提供骨架代码。

第四,嵌套子类型的使用规则较为精细(如「仅当子类型仅被单一父类型使用且不代表完整 ViewModel 时才嵌套」),初学者容易混淆何时嵌套、何时独立成文件。

适合的目标群体

该技能最适合以下开发者:正在使用或计划采用 FOSMVVM 架构的 SwiftUI 开发团队;需要构建服务端渲染(Server-Side Swift)与原生客户端混合应用的工程师;对 MVVM 架构有深入理解,希望提升代码生成效率的中高级 iOS 开发者;以及需要维护大型 SwiftUI 代码库、追求架构一致性的技术团队。

对于纯 UIKit 项目、跨平台框架(Flutter/React Native)开发者,或小型原型项目,该技能的价值有限。

使用风险

性能方面,由于技能本身不执行代码,无运行时性能影响。但生成的 ViewModel 若包含大量嵌套子类型或复杂计算属性,可能在 SwiftUI 的 body 计算中引发不必要的重绘,需遵循「View 仅渲染,不在 View 中组合数据」的原则。

依赖项方面,使用该技能生成的代码依赖于 FOSUtilities 框架及其宏系统,需确保项目已正确配置 Swift Package Manager 依赖和宏编译支持。YAML 本地化文件需与项目的本地化系统(如 Vapor 的 Leaf 渲染或 SwiftUI 的字符串目录)正确集成。

版本兼容性方面,技能文档提及 Swift 6 并发特性(Sendable 协议),需确保开发环境为 Xcode 15+ 及 Swift 6 工具链。

fosmvvm-viewmodel-generator 内容

手动下载zip · 13.5 kB
reference.mdtext/markdown
请选择文件