Xcode 9 的这些新特性细节,助力你高效开发

Posted SwiftCafe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xcode 9 的这些新特性细节,助力你高效开发相关的知识,希望对你有一定的参考价值。

随着新 iPhone 以及 ios 11 的正式发布。 作为开发工具的 Xcode 9 也发布正式版了。 这次的 Xcode 更新,做出了不小的改进,提供了很多新特性。 我为大家做了一些整理。

我翻阅了苹果官方的完整介绍,确实感到这次 Xcode 9 的升级是一个大跨步式的提升。无论是对 Swift 语言更加完善的支持,还是对现有 IDE 能力的深度挖掘,或者是对很多特性功能的定制化支持,都让我感觉到 Xcode 团队在发力做好这款对开发者使用的产品。 接下来就把其中一些应该对大家有实际帮助的特性拿出来说一下。

代码重构功能增强

这次 Xcode 9 对代码重构功能有较大的提升,首先是重命名功能,在编辑器中点击类名,然后选择 Refactor -> Rename:

这时,重命名的预览界面会直接显示在编辑器中:

Xcode 9 的这些新特性细节,助力你高效开发

从图中可以看到,ViewController 类所有引用它的地方,所在的文件位置,都直接铺在了代码编辑器里面,只需要滚动编辑框,就可以很轻松的看到这次重构影响的所有地方,非常方便。

Rename 这个功能说起来是很常用的一项,我自己就经常使用。可惜 Xcode 前几个版本对 Swift 支持不好,在开发 Swift 项目时只好手动来做 Rename,这次终于算是解决了,并且还提供了更好的体验。

另外,这次 Xcode 9 还解决了重命名在 Swift 语言中的一个老问题,就是:

Xcode 9 的这些新特性细节,助力你高效开发

常用 Swift 的同学应该都知道这个,以前版本的 Xcode 不支持 Swift 语言的重命名操作。 等了好几个 Xcode 版本, 这次终于是支持了。

新的 Xcode 还提供了快捷菜单,按住 Cmd 键, 再点击相应的变量或者类名,就会弹出快捷菜单:

Xcode 9 的这些新特性细节,助力你高效开发

快捷菜单中,提供了诸如重命名,转到定义,快速提示这些操作。

Swift 低版本兼容

XCode 9 使用 Swift 4 编译器。 这次新的编译器同时可以支持 Swift 3, 这样就不用立即修改项目的 Swift 代码了。 相信有过 Swift 更新经历的同学对这个印象都比较深刻,包括我自己。 前几个版本的 Xcode 升级后,都会带来 Swift 编译器的升级,而之前的升级都是不做向下兼容的,必须把整个项目的代码都修改一遍。曾经亲身经历过一次,当时真是差点崩溃。 现在不用担心这个问题了。

可以在项目设置中选择当前 target 使用的 Swift 版本:

Xcode 9 的这些新特性细节,助力你高效开发

Main Thread Checker

顾名思义, Xcode 9 的调试器现在可以检测 UI 操作是否在主线程中了。 以往开发中的一个常遇到的问题,就是在非主线程操作 UI 元素。 现在 Xcode 9 在调试 APP 的时候会自动附带 Main Thread Checker, 一旦遇到这类问题,就会在控制台中报告给开发者,就像这样:

2017-09-27 23:47:23.042830+0800 VisionSample[8361:2640850] [reports] Main Thread Checker: UI API called on a background thread: -[UIView setAlpha:]

同时,在代码编辑器中,也会高亮显示相应的代码行:

Xcode 9 的这些新特性细节,助力你高效开发

以往这种在非主线程操作 UI 的问题很难发现,而且我相信这类问题是大家都会常常遇到的。 在 Xcode 9 中,这个老大难问题也有了更好的解决方案。 关于 Main Thread Checker 的详细内容,可以参看苹果的官方文档: https://developer.apple.com/documentation/code_diagnostics/main_thread_checker

文件操作改进

现在你在 Xcode 中拖动文件时,会相应的改变文件系统了。 我们都知道,Xcode 左边栏中黄色的小文件夹叫做 Group:

Xcode 9 的这些新特性细节,助力你高效开发

在以前的 Xcode 版本中, 直接在这里面移动文件是不会影响文件系统位置的,比如把 ViewController.swift 文件移动到 group1 中,不会影响它在文件系统中的位置。

所以以前在移动文件的时候,我们需要先在文件系统中把文件移动一遍,也许当初 Xcode 设计 group 的初衷是为了把逻辑分组和文件系统分开。 但实际操作中反而给大家带来了麻烦,这个细节的修改还是很贴心。

深度集成 Github

Xcode 以前的版本也包含了版本控制的集成,这次更是对 Github 这个最流行的 Git 托管平台做了定制化的集成。 在 Xcode 的 Preference -> Account 设置菜单里面, 现在可以绑定你的 Github 账号:

Xcode 9 的这些新特性细节,助力你高效开发


绑定成功后,你可以在 Xcode 9 新增的源代码导航视图中看到项目的完整记录:

Xcode 9 的这些新特性细节,助力你高效开发

点击 Source Control 的 Clone 菜单项,可以看到你的 Github 账号中所有的内容:

Xcode 9 的这些新特性细节,助力你高效开发

在这个界面的下方,还可以看到这个工程的 Star,Fork 数量,以及 README 文件。 只需要点击右下角的 Clone 按钮,即可把项目从 Github 中复制下来。

在导航视图中,我们还可以看到每一个 commit 的细节:

Xcode 9 的这些新特性细节,助力你高效开发

你还可以点击 View on Github 选项,跳转到这个项目的 Github 页面上。 在这个页面上,如果是 Xcode 工程,还会看到 Open in Xcode 按钮:

Xcode 9 的这些新特性细节,助力你高效开发

点击这个按钮,你就可以直接在本地的 Xcode 打开这个项目, 后台的 Clone 操作完全透明了。 从这里可以看出,Xcode 对 Github 的深度集成是双向的,一定是一个用了心思做的产品。

Xcode 9 的 Github 集成还有很多特性,这里不详细展开了。如果你的团队恰巧用到了 Github 或者 Github 企业版来管理代码,那么就方便很多了。

模拟器升级

Xcode 9 对模拟器的改进也可以算的上是近几年最大的一次。 首先,模拟器的外观做了很大的更新,更加拟物化,并且,可以多个模拟器同时运行,方便多屏幕调试,比如 UI 先关的工作。 这点大家之前应该也都了解了。

下面是多个模拟器同时运行的截图:

Xcode 9 的这些新特性细节,助力你高效开发


全新的构建系统

Xcode 9 这次提供了一个全新的构建系统。 这个构建系统完全使用 Swift 语言写成,基于 Apple 的 llbuild 引擎。这个引擎在 Github 上面已经开源 https://github.com/apple/swift-llbuild ,这里不过多介绍,有兴趣的同学可以自行翻阅。

新的构建系统默认是不开启的,你可以到 File -> Project Settings... 中打开项目设置中找到:

Xcode 9 的这些新特性细节,助力你高效开发

现在还是 Preview 版本,Xcode 后面的版本会把它作为默认构建系统,感兴趣的同学也可以尝试一下。

总结

总体来说,Xcode 9 的这次升级相比以前的版本,算是一个步伐很大的更新。 全新的模拟器,Wifi 调试,新的构建系统,对 Swift 更加完善的支持,等等这些,都算是一次质的飞跃。 这里给大家列出的也只是这次 Xcode 更新的一部分。 完整的内容大家还可以参看这里: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/WhatsNewXcode/xcode_9/xcode_9.html

也希望通过这篇文章,能帮助大家更透彻的感知到它的变化,帮助提升开发体验。


以上是关于Xcode 9 的这些新特性细节,助力你高效开发的主要内容,如果未能解决你的问题,请参考以下文章

带你快速浏览Xcode 9新特性

20 种高效的工作方式,助力你更有效率的编码

Xcode 8带来的新特性和坑

Xcode 10.1 新特性及解决的问题

iOS11 开发你了解这些新特性吗?(文末福利)

李洪强iOS开发之Xcode快捷键