内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

玩转Xcode中的Playground

2018-06-08 17:25 出处:清屏网 人气: 评论(0

Swift 语言是苹果在 WWDC14 上正式发布的,与之同时发布的 Xcode6 中也第一次集成了 Playground 功能 。两年后的 WWDC16 上,苹果发布了 iPad 专有的 Swift Playground 软件 ,帮助年轻人更好地学习使用 Swift 语言。今年的 WWDC18 上,苹果再次跟我们聊了聊 “充分利用 Xcode 的 Playground 功能” 。苹果如此不遗余力地推广 Swift 语言,如果这样还无法让你下定决心拥抱这门属于未来的语言,估计苹果也得急哭了。

更新不多,重点是机器学习

这次大会上发布的Xcode 10中关于 Playground 的更新并不多,但有一个重点是 Playground 用来训练机器学习的模型,只要 import 新的Create ML 框架 即可。微博上已经有大佬玩了起来,看起来很厉害。

下面是 Xcode 10 中关于 Playground 的更新内容:

为机器学习量身打造的 Playground

  • 类 REPL 模式(Read-Eval-Print-Loop)可以快速重新运行已有的 playground 代码;
  • 运行指定行之前的代码,或者“shift+回车”运行刚写的代码;
  • Import 新的 Create ML 机器学习框架 交互式地训练新的模型,在 playground 中写代码测试模型。完成之后,直接将模型运用在应用中。

关于 Create ML 框架这次大会上有一个单独的会场。

基本功能

Session 中先是讲了 Playground 的一些基本用法,包括 Live ViewMarkup 。关于 playground 一些基本的介绍可以查看官方的帮助文档。

Live View

我们可以在 Playground 中可视化地查看自己的视图。实现起来也很简单:

import PlaygroundSupport
let viewController = /* 你的试图控制器 */

PlaygroundPage.current.liveView = viewController

可以使用 Live View 快速测试自己想要做的动画或特效。这种形式非常适合学习官方 API,或者制作教程。国外著名设计师 Meng To 的《Design+Code》教程 中的动画设计部分就是用 playground 写的,每一行代码产生的效果都可以直接在 Live View 中看到,十分直观。

Markup

Playground 是支持 markdown 注释渲染的,只需要在单行或多行注释的后面添加冒号即可。某种意义上来说,你可以把 Playground 当成 markdown 编辑器来用。同时,Playground 还支持各种格式的资源,包括音频,视频,图片等等。而且,你既可以用标记语言引用这些资源,也可以用代码来引用。比如:

//  你可以用标记语言引用图片资源
 ![alternate text](MyPicture.jpg "hover title")
//  也可以直接用代码引用
 let image = UIImage(named: "image.jpg")

Playground 支持多页面,新建 Playground Page 即可。同时页面之间的跳转也十分简单,有三种方式:

[上一页](@previous)
[下一页](@next)
[指定页](PageName)

渲染起来也十分简单,打开右边栏,勾选“文件检查器”(file inspector)中的“Render Documentation”即可。

详细的标记语言语法参见苹果官方文档。同时,苹果官方有一个 Swift 语言标准库文档的playground 文件模板,可以参观学习一下,说不定我们也可以试试用 playground 写文档。

按步运行(Xcode 10 新功能)

按步运行是 Xcode 10 中的一个新功能,鼠标在 Playground 的代码行移动时,行号那一列会变成蓝色播放键。点击行号上的播放键即可运行当前行以上的代码(包括当前行)。

已经运行过的代码播放键会变成灰色,如果鼠标所在行不形成一个完整的代码块(例如位于一个循环语句中)播放键也会显示为灰色。

那么在什么样的情况下建议使用 playground 呢?开发团队也给了建议:

  1. 自家 api 的按步骤的使用教程
  2. 处理一些数据的时候,比如地图数据,公开统计数据,班级作业等等
  3. 测试游戏 demo或者测试应用动画的时候

高级技巧

自定义显示类型

Xcode 9.3/Swift 4.1 中 CustomPlaygroundDisplayConvertible 替代了之前的 CustomPlaygroundQuickLookable 。可以通过 CustomPlaygroundDisplayConvertible 协议自定义 Playground 中的返回值显示类型。

extension MyType: CustomPlaygroundDisplayConvertible { 
    var playgroundDescription: Any { ... }
}

类型可以是 Xcode 9.3/Swift 4.1支持的所有类型。

Playground 中使用自定义框架

引用自定义框架的方法也很简单。如果是简单的一个框架,直接把 Playground 文件拖到工程中即可。

如果是多个框架,把多个框架放在一个 workspace 里,然后再把 Playground 文件拖进去即可。

最后,开发团队的人说他们的愿景是:

明年,每个工程里面都有一个 Playground 文件!

你觉得他们的愿景会实现吗?

总的来说,Playground 的使用场景还是聚焦在学习和试玩的层面,毕竟交互式的界面设计可以让学习者很快看到自己代码的结果,这样反馈对初期学习是十分重要的。我们也看到开发团队也做了很多努力,让我们在 Playground 中的东西可以直接应用到正式工程中。

所以,就像第二位讲者说的一样,Playground 是个“有趣”(fun)的地方,但是它是“严肃的有趣”(serious fun),因为里面的东西都是可以复用的。Xcode 的 Playground 是苹果给开发者的一片游乐场,可劲儿玩吧!


分享给小伙伴们:
本文标签: PlaygroundXcode

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号