【发布时间】:2015-03-21 18:03:43
【问题描述】:
我创建了一个 iOS 移动应用程序。我想知道是否有办法为 swift 编程语言生成 UML 类图? 我尝试过 Omni Graff,但它一直说该项目不包含 Objective-C 接口。而 Omni Graff 仅针对 Objective-c 执行此操作。请帮忙。
提前致谢。
【问题讨论】:
我创建了一个 iOS 移动应用程序。我想知道是否有办法为 swift 编程语言生成 UML 类图? 我尝试过 Omni Graff,但它一直说该项目不包含 Objective-C 接口。而 Omni Graff 仅针对 Objective-c 执行此操作。请帮忙。
提前致谢。
【问题讨论】:
我记得不久前看过这个问题,对没有这样的工具感到失望,所以我在同事的帮助下自己创建了一个。它是免费的,它是开源的,它正在寻找贡献者......
https://github.com/yoshimkd/swift-auto-diagram
这里有一个关于如何使用它的教程(不用担心它很简单): https://martinmitrevski.com/2016/10/12/swift-class-diagrams-and-more/
快乐的图表:)
【讨论】:
不幸的是,答案是:你做不到。至少不是自动的。 Swift 作为编译器本身就有足够的缺陷。不用管一些工具将能够吞下任何 Swift 代码。您唯一的选择是旧的手动方式。
我知道 Enterprise Architect 可以定义基于 BNF 的语言语法。但是 Swift (再次不幸地)不是上下文无关的。 (事实上,它对上下文非常敏感,以至于它经常吞下自己的后部。)所以这也行不通。
P.S.:既然 Swift 是开源的,那么有人可能会借此机会利用编译器的输出来获取类接口。我想这应该不会太难,但仍然需要做很多工作。
【讨论】:
受swift-auto-diagram 和类似的开源工具的启发,我开始研究此类实用程序,目标是用 Swift 编写它(使 Swift 开发人员更容易做出贡献)并将其集成到 Xcode 和 Swift 生态系统中。
Xcode 扩展:https://github.com/MarcoEidinger/SwiftPlantUML-Xcode-Extension
您可以从选定的代码行或 Xcode 中显示的整个文件生成类图。然后将在您的浏览器中打开类图。在那里您可以使用 PlantUML 符号修改图表
要从多个源文件生成类图,您可以使用底层 CLI 工具和 Swift 包:https://github.com/MarcoEidinger/SwiftPlantUML
可见图表内容有大小限制(但您可以在浏览器中使用 PlantUML 表示法删除内容)
【讨论】: