是否可以从 SwiftUI 中的模板/结构/类生成样板表单数据输入视图

问题描述

我需要为简单的结构/类等创建许多数据输入表单。我不想参与手动编写视图的乏味。

理想情况下,我可以提供一些“可编码”的结构/类,并且可以为我自动生成视图

例如,我有一些包含简单字段的模型,例如这些

struct Person {
  let age: Int
  let firstName: String
  let lastName: String
}

struct Blah {
  let a: Int
  let b: String
  let c: Date
  let d: Float
}

等等。等

任何类似于“Codable”的“魔法”可以生成合适的 SwiftUI 视图?

例如:

struct Person: SwiftUIView {
  ...
}

解决方法

您可以使用 Telosys ( https://www.telosys.org ) 来实现这一点,该代码生成器旨在通过生成应用程序的“样板”部分来减少编程工作量。这是一款轻量实用的工具,易于使用。

它基于“模型”来定义您的所有实体(就像您提到的“结构”一样),但使用特定(且非常简单)的 DSL 编写 (见https://www.telosys.org/dsl-syntax.html

Telosys 可用于生成任何类型的编程语言。目前似乎没有适用于 SwiftUI 的现有模板,但是创建特定模板非常简单,它们基于众所周知的 Velocity 模板语言 ( https://velocity.apache.org/ )。 GitHub https://github.com/telosys-templates-v3 上提供了一些模板示例。

有关更多信息,另请参阅:https://modeling-languages.com/telosys-tools-the-concept-of-lightweight-model-for-code-generation/