这是一个用于在 Swift(5.10+)中创建跨平台应用的类似 SwiftUI 的框架SwiftCrossUI
的介绍:
- 主要特点:可在不同操作系统(如 macOS、Linux、Windows、iOS、tvOS)上创建原生外观的应用,一次编写代码即可。
- 社区与支持:讨论在SwiftCrossUI Discord 服务器进行,可通过成为赞助者支持该项目。
- 文档与示例:文档网站为[https://stackotter.github.io/...],有基本示例和更多示例,运行示例需使用Swift Bundler,也可使用 SwiftPM,但存在一些限制。
- 后端介绍:有多种后端,如[DefaultBackend]可适配目标操作系统,还包括[AppKitBackend](原生 macOS 后端)、[UIKitBackend](原生 iOS & tvOS 后端)、[WinUIBackend](原生 Windows 后端)、[GtkBackend](适用于 Linux、macOS 和 Windows,需安装 gtk 4)、[Gtk3Backend](用于较旧的 Linux 发行版,需安装 gtk 3,在 macOS 上较 buggy),使用[DefaultBackend]时可通过设置
SCUI_DEFAULT_BACKEND
环境变量在编译时覆盖底层后端。
基本示例代码如下:
import PackageDescription
let package = Package(
name: "YourApp",
dependencies: [
.package(url: "https://github.com/stackotter/swift-cross-ui", branch: "main")
],
targets: [
.executableTarget(
name: "YourApp",
dependencies: [
.product(name: "SwiftCrossUI", package: "swift-cross-ui"),
.product(name: "DefaultBackend", package: "swift-cross-ui"),
]
)
]
)
import SwiftCrossUI
import DefaultBackend
@main
struct YourApp: App {
@State var count = 0
var body: some Scene {
WindowGroup("YourApp") {
HStack {
Button("-") { count -= 1 }
Text("Count: \(count)")
Button("+") { count += 1 }
}.padding()
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。