SwiftUI 在线编辑器
编写、运行和分享代码片段,无需任何配置。
在线运行 SwiftUI,在 iPhone 上看到你的应用
这是一个免费的 SwiftUI 在线编辑器。写一个 ContentView,你的视图就会出现在代码旁边一块 iPhone 大小的屏幕上。按钮、开关和文本框都能响应点按,所以 @State 的变化会像在真机上一样显示出来。不需要 Mac,不需要 Xcode,也不用下载模拟器。
你的代码由 swiftc 编译,基于 Coddy 自己实现的 SwiftUI,Coddy SwiftUI 课程里的实时预览用的也是它。它覆盖了日常会用到的 API:各种栈、Text、Image(systemName:)、Button、Toggle、TextField、Slider、Stepper、Picker、List、ForEach、Form、NavigationStack、弹出页和提示框,以及 @State、@Binding、ObservableObject 和 @Published。它不是 Apple 的框架,所以 UIKit、MapKit、Core Data 等 Apple 专有框架无法使用。
这个 SwiftUI 在线编辑器好用在哪里
- iPhone 实时预览:屏幕按 iPhone 尺寸渲染在设备外框里,带状态栏和灵动岛,布局在手机上什么样,这里就什么样。
- 可以点按应用。按钮、开关、步进器和文本框都会响应,预览会在全新的状态上重放你的点按,所以
@State和@Binding的表现和真实应用一样。 - 自动预览:停止输入片刻后屏幕会重新构建,点击刷新按钮会让应用从头开始。编译错误会指向文件中的具体行。
- 编辑器里有 SwiftUI 代码提示:输入点号后提示修饰符,提示参数可取的值(
.font(.、.foregroundStyle(.),输入@后提示属性包装器,还能提示 SF Symbol 名称。 - 把手机画面保存为 PNG 截图,下载
ContentView.swift,以后在 Xcode 中打开。从 Xcode 粘贴过来的文件也能构建:#Preview块会被忽略。
可以在 SwiftUI 在线编辑器里做什么
- 待办事项列表:用
List、ForEach($items),每行一个Toggle,再加一个TextField和一个添加新行的按钮。 - 设置页面:一个分区的
Form,里面有Picker、Stepper和Slider,全部绑定到@State。 - 导航:一个带标题的
NavigationStack,每行是一个NavigationLink,点按后推入详情视图。 - 布局实验:用
VStack、HStack和ZStack配合.padding、.frame、.background和圆角形状,看看修饰符是怎样叠加的。
SwiftUI 在线编辑器常见问题
没有 Mac 能运行 SwiftUI 吗?
能。这个在线编辑器可以在任何现代浏览器中运行,Windows、Linux、Chromebook 或 iPad 都行。你的代码在 Coddy 的服务器上编译,屏幕直接绘制在网页里,所以试用 SwiftUI 不需要 Xcode、Mac 或 iOS 模拟器。
SwiftUI 在线编辑器免费吗?
免费,而且无需注册:打开页面,修改代码,看手机屏幕的变化就行。
这是 Apple 的 SwiftUI 吗?
不是。这是 Coddy 自己实现的 SwiftUI 视图、修饰符和属性包装器,由 swiftc 编译,再绘制成 iPhone 屏幕。日常的 SwiftUI 代码无需修改就能运行,预览也和 Coddy SwiftUI 课程用来展示和评分的是同一个。UIKit、MapKit、Core Data 等 Apple 专有框架无法使用,动画只显示最终状态。
可以用 @Observable 或 #Preview 吗?
ObservableObject 配合 @Published 和 @StateObject。@Observable 宏和 #Preview 需要 Xcode 的宏插件;#Preview 块会被忽略,所以从 Xcode 粘贴过来的文件仍然能构建,应用会显示 ContentView。你也可以添加自己的 @main App 结构体。试用在线编辑器之后,怎样学习 SwiftUI?
@State、列表、导航、@Binding 和可观察数据,每节课都有同样的 iPhone 实时预览。适合 SwiftUI 的实用工具
与 SwiftUI 在线编辑器搭配使用的免费浏览器工具,全部来自 Coddy。