Bccb420a0bd5e353d028f1bd19be8c0c
WWDC20 10654 - 利用 Swift Playground 为 iPad 和 Mac 创建优质内容的小提示

引子

这是一个麻雀虽小,但五脏俱全的 Session,在短短的 8 分钟里,不仅包含了功能介绍,也有相应的代码演示。

不过整个 session 都是围绕在如何利用 Swift Playground 为 iPad 和 Mac 创建优质内容而展开的,所以都是很细节和琐碎的点。

下面的脑图展示了这个 session 的所有知识点,方便你复习和加深理解:

Swift Playground 在界面上的改变

如果使用过 Swift Playground ,那么你应该能回忆起,在 iPad 上是可以看到代码补全功能提供的 token。

为了适配 Mac 平台,Apple 团队为 Swift Playground 的代码补全功能做了进一步的优化。

现在,在 Mac 上不仅可以看到这些 token,还可以看到相应的帮助文档

除此之外,帮助文档没有对语言类型做限制,我们完全可以将文档的语言类型变为使用者的本地语言,通过这样的方式来降低他们的理解成本

如果想创建 API 的帮助文档,可以使用 3 个 / 来声明,除了描述方法外,也可以为参数添加说明,下图就是一个例子

在 iPad 上的话,可以通过 Quick Help 的弹窗或者代码补全的提示条来展示相应的代码说明,它的效果如下所示

针对不同平台展示定制化内容的能力

在 Playground book 格式的文件中,提供了两个新的 API 用来区分不同平台的定制化能力,它们分别是 supportedDevicesrequiredCapbilities

这里要记住一点,Playground 和 Playground Book 是两个不一样的东西,在 Xcode 或者 Swift Playground 里是无法直接触发 Playground Book 的 target 或者 Project 的,需要到官方下载 Swift Playgrounds Author Template, 如果你想更进一步了解这两种格式的区别,建议阅读 官方的说明文档Using Swift Playgrounds & Playground Books

supportedDevices 这个 key 是用来区分不同平台的,例如是 iPad 还是 Mac,而 requiredCapbilities 则是用来明确平台能力的,例如需要 AR 能力(Mac 拥有,而 iPad 没有),需要 WIFI 能力(两个平台都具备)。

它们的设定是在 manifest 文件和 feed json 文件中进行的,需要设定相应的 key 值,具体的示例可以参考下面的两张图

关于 requiredCapbilities 支持的键值,可以查看 UIRequiredDeviceCapabilities 的 API 说明,这里放一个传送门

top Created with Sketch.