微信号:swift-cafe

介绍:喝杯咖啡,聊聊技术,小而美的技术自媒体. 探讨 Swift;Objective-C;Cocoa 等开发技术.

WWDC19 - Xcode 11 新功能,以及你不一定知道的其他特性

2019-06-14 08:06 swiftcafe

这个文章系列旨在给大家介绍 WWDC 2019 苹果发布的最新技术细节. 在这个时间资源稀缺的时代, 对很多开发者来说, 花费整块时间, 把所有的视频都看一遍, 是一件很耗时间的事情. 所以这个系列,我帮大家把这些新内容中最重要的部分整理出来,你可以在任何碎片时间翻出来看一看, 拿出手机, 即可了解苹果最新的技术内容.


对于开发者来说,开发工具一定是最重要的东西。 Xcode 11 正是 iOS 开发者的必备工具。 这次的 WWDC 依然对 Xcode 做出了很多更新。 下面来和大家聊一下。

UI 界面的改进

编辑器模式选择

首先 Xcode 11 对编辑器界面做了改进。 现在在编辑器右上角可以设置编辑器显示模式, Editor Only, Editor and Canvas, Editor and Assistant。 这三个选项分别对应,只显示代码编辑器, 代码编辑器与 SwiftUI 预览视图, 编辑器和辅助编辑视图:

Editor and Canvas, Editor and Assistant 这两个选项还会根据你当前的文件类型, 来确定是否会打开辅助视图。 比如你当前选中的是一个 SwiftUI 视图文件,那么就会在左边显示代码编辑器,右边显示 SwiftUI 预览界面。

比如我们当前编辑器使用 Editor and Canvas 模式:

上图打开的是 ContentView.swift 文件,这是一个 SwiftUI 文件,所以编辑器同时展示了代码视图和 SwiftUI 预览视图。 

再看另外一种情况:

这里我们打开的是 AppDelegate.swift 文件, 这次只显示了代码编辑视图,因为 AppDelegate.swift 是一个普通的代码文件。

编辑窗口任意分割

另外,在 Xcode 11 中,还可以点击编辑模式选择按钮旁边的分割按钮将主窗口进行分割:

直接点击这个按钮,会横向进行分割。 按住 Option 按键点击它,会纵向分割, 下图是一个分割后的界面示例:

上图中界面被分成了 3 个编辑窗口。 左边被上下分割成了两个小窗口,右边被单独分割出一个大窗口。

指定文件打开位置

上面我们介绍了窗口分割,在 Xcode 11 中,你还可以按住 Option + Shift,然后在左边点击要打开的文件,这时会出现窗口选择提示:

你可以用键盘,或者鼠标任意方式选择你要打开这个文件的窗口,选中后点击鼠标左键或者键盘的 Enter 键,就可以在指定窗口打开这个文件了。除此之外你还可以移动鼠标到两个窗口之间,将要打开的文件在这里插入一个新的窗口:

Focus Mode

如果你同时分割了多个窗口,又需要专注使用某一个窗口,你可以点击每个窗口左上角的 Focus Mode 按钮:

这样,这个窗口就会暂时最大化占用整个编辑界面, 当你不再需要 Focus Mode 的时候,再次点击这个按钮又可以回到最初的界面。

MiniMap

这个也是 Xcode 11 最亮眼的新特性之一。 现在你打开代码编辑窗口的时候,右边会出现这样一个预览视图:

整个代码文件的结构都在这里展示出来。并且你可以通过 MiniMap 快速的跳转到文件的任何区域。 MiniMap 支持代码标记, 断点显示,以及搜索高亮提示,非常多的便捷功能。

比如下图, 我们搜索 app 这个关键字,右边的 MiniMap 上会标记处代码文件中所有命中的搜索, 并且还会高亮展示出当前命中搜索的位置(这个需要仔细看一下):

代码编辑器能力加强

除了上述 UI 操作方面的改进, Xcode 11 还对代码编辑器继续增强了能力。

注释自动补齐

如果我们为一个已经写好注释的函数新增参数的话,你只需要按住 Command 然后点击函数名称,即可打开操作弹出框, 在弹出框中可以进行很多操作,这里我们点击 Add Document, 为这个函数补齐注释:

Change Bar

这是另外一个我觉得很酷的功能, 当你的项目关联了版本控制工具时,比如 Git, Xcode 会检测出当前文件哪些地方相对于上次递交的版本有更改,并且会通过在左边显示一个蓝色线条标记出来:

这还不是最酷的,你可以按住 Option 键,然后点击这个线条,这时候会弹出操作菜单:

比如你可以点击 Show Change,展示当前的改动,和上次提交版本的对比:

如上图所示,上面比较暗色的代码是之前 git 提交的版本, 下面是我们当前的修改。你可以非常方便的对比他们。

版本对比

除了 Change Bar 之外,你还可以直接对比整个文件,点击右上角的 Code Review 按钮:

你会看到整个文件的版本对比:

Swift Package Manager

Xcode 11 还有另外一个重要的更新,就是对 Swift Package Manager 的内置集成。 打开项目文件,然后找到 Swift Packages 选项卡:

随后打开的窗口中,输入你要安装的第三库地址, 比如这里输入 Alamofire 的 github 项目地址:

这里有个前提,就是这个项目已经支持 Swift Package Manager 了。然后点击下一步,会弹出版本选项:

一般来情况下,使用默认配置即可,这个版本选项我们在使用 CocoaPods 的时候应该也见过。然后点击下一步 Xcode 就开始抓取这个包,完成之后会显示 target 配置界面:

这里选择好刚刚抓取到的库要关联到哪个 target 上面, 选择好之后,Alamofire 就配置到我们的项目中了:

随后,你可以直接在代码中使用它了:

很方便吧,至于 Swift Package Manager 能否改变大家已经习惯的 CocoaPods,我个人感觉短期不太容易。但随着新项目的使用,以及今后开发者社区的发展,也不是没有可能,至少给我提供了一种新的选择。

Debug 工具升级

Xcode 11 中,对模拟器调试做了很多加强。 你现在可以点击调试配置界面,动态改变模拟器的运行参数,比如这里改变主题模式到黑色,改变文字大小,更改辅助选项等等:

这里所有的改动都是实时生效的。

对网络和温度的模拟

新的 Xcode 11 还加入了对网络环境和设备温度的模拟。这两个条件对开发者来说应该不陌生,它们也是最难通过常规手段复现的场景。在设备管理窗口中,现在增加了这几个选项:

上图是网络状况设置,几乎涵盖了各种网络条件状态,你还可以设置温度状态:

这些模拟环境,都可以让你的 APP 在更有预期的状况下运行。

总结

Xcode 11 这次依然带来了非常多的更新和实用的特性。这里把一些比较重要的特性和大家进行了分享。无论是 MiniMap, Change Bar,以及其他各种新增的特性,都非常的好用,相信也能很好的帮助大家提高开发效率。 也希望这里分享的内容对大家有所帮助,在9月份 Xcode 11 正式发布的时候,大家就可以马上借助这些新特性,帮助自己更愉快的进行开发了。


 
SwiftCafe 更多文章 WWDC19 - SF Symbols 内置图标库 SwiftUI 初体验 WWDC 2019 速览 - 可能是看点和干货最多的一次 Swift 5 - 对 raw string 的支持 你的 iOS 应用启动界面支持多语言吗?
猜您喜欢 为什么我的服务器资源使用率这么低? 赏味不足已经一年了 调用Android 7.0系统摄像头的正确姿势 使用DRPC构建分布式多语言编程架构 研究表明:大型机构投资者仍在避开比特币?