Xcode 的 UML class 图(Swift 编程)

UML class diagrams for Xcode (Swift programming)

我已经创建了一个 iOS 移动应用程序。有没有办法为 Swift 编程语言生成 UML class 图?

我已经尝试过 Omni Graffle,但它一直说该项目不包含 Objective-C 接口。而 Omni Graffle 仅对 Objective-C.

执行此操作

不幸的是,答案是:你做不到。至少不会自动。 Swift 因为编译器本身有足够多的缺陷。别管一些工具将能够吞下任何 Swift 代码。您唯一的选择是旧的手动方式。

我知道 Enterprise Architect 有可能定义基于 BNF 的语言语法。但是 Swift (再次不幸)不是上下文无关的。 (事实上​​ ,它对上下文非常敏感,以至于它经常吞下自己的屁股。)所以这也行不通。

P.S.: 现在 Swift 是开源的,有人可能会借此机会为 class 接口挖掘编译器的输出。我想这应该不会太难,但仍然有很多工作要做。

我记得不久前看过这个问题,很失望没有这样的工具,所以我在同事的帮助下自己创建了一个。它是免费的,它是开源的,它正在寻找贡献者...

https://github.com/yoshimkd/swift-auto-diagram

这里有一个关于如何使用它的教程(不用担心,它很简单): https://martinmitrevski.com/2016/10/12/swift-class-diagrams-and-more/

快乐的绘图:)

受到 swift-auto-diagram 和类似开源工具的启发,我开始研究此类实用程序,目标是将其编写在 Swift 中(让 Swift 开发人员更容易做出贡献)并将其整合到 Xcode 和 Swift 生态系统中。

Xcode 分机:https://github.com/MarcoEidinger/SwiftPlantUML-Xcode-Extension

您可以从选定的代码行或 Xcode 中显示的整个文件生成 class 图表。 class 图将在您的浏览器中打开。在那里您可以使用 PlantUML 符号修改图表

要从多个源文件生成 class 图表,您可以使用底层 CLI 工具和 Swift 包:https://github.com/MarcoEidinger/SwiftPlantUML

可见图表内容有大小限制(但您可以使用 PlantUML 符号在浏览器中删除内容)