在2016 苹果全球开发者大会(WWDC)期间, 苹果一如既往地给开发者们披露了新版的集成开发工具 – Xcode, 在过去的每一次大版本发布中,苹果都会积极地改进开发工具,添加一些极具吸引力的新功能,今年也不例外。
1. Swift 2 and 3
过去每一版的Xcode 都和固定版本的Swift编程语言绑定在一起, Xcode 8中将不再如此,Swift 3给 Swift编程语言带来大量的语法变化,这些改变会让基于以前Swift版本的程序编译失败。
Xcode 8 中新创建的项目默认地使用Swift 3, 幸运地Xcode 8 在编译设置中支持开发者明确地选择Swift 2或Swift 2.3 进行编译。
支持Swift语言以往版本
这就是说你可以选择适合的时候迁移项目到Swift 3, 如果一个目标(Target)需要支持Swift 2.3, 需要在目标(Target)的编译设置里把Use Legacy Swift Language Version 设置成Yes。
Xcode 8 也提供了迁移工具帮你把项目升级到Swift 3, 不过Xcode提供的迁移工具让人喜忧参半,这次Swift 3 升级比上次升级有太多的变化,希望Xcode 8 的迁移工具会有所改善吧。
2. 源码编辑器扩展
Xcode 8 最让人惊喜的是支持源码编辑器第三方扩展,开发者对于本地插件系统已经翘首企盼了很多年,源码编辑器扩展算是沿着插件系统方向迈出坚实的第一步吧。
源码编辑器扩展很类似于Xcode的扩展,但苹果一再强调当前的扩展专注于源码的操作和导航,也就是为什么会叫做源码编辑器扩展,Xcode 8 甚至提供了编辑器扩展模板让你快速上手。
Xcode 源码编辑器扩展模板
对于当前扩展架构中我最喜欢的一点就是每个扩展都运行在不同的进程中,这就意味着扩展的异常崩溃不会引起Xcode的意外终止,随着本地插件的越来越多,特别是苹果发布了新版的Xcode, 分进程运行的优势会显得越来越突出。
扩展对比插件另一个优点是安全,你可以通过开发账号登录和发布扩展程序,苹果也提到开发者可以通过Mac 应用商店销售扩展,对于想通过销售扩展赚钱的开发者来说是很不错机会。
我对于源码编辑器扩展是非常兴奋的,虽然我是Alcatraz的粉丝,但苹果的本地扩展更贴近于未来正确的方向。非常期待开发者们未来会提供什么样的扩展,其实已经有人在GitHub上发布了插件。
3. 调试
即使最好的开发者每天都要花费大量的时间进行调试程序,懂你的苹果提供了更好的工具让调试更简单,Xcode 8中针对调试做了不少显著的优化。
界面调试
Xcode 8中的界面调试非常强大,界面调试可以展示运行时(runtime)问题,改善后的界面调试对于调试不清晰或者不满意的布局变得更加简单。
运行时问题?没错,Xcode 8中除了编译时问题还提供了运行时问题,如果在运行时遇到自动布局的问题,Xcode会在左面导航面板把这些问题展示为运行时问题,这将会是个非常受欢迎的功能。
运行时问题
内存调试
Xcode 8 的内存调试功能针对查找内存泄漏和循环引用的问题也做了显著优化,我还不太确定在实际项目中效果如果,但看起来很棒。
内存调试
4. 代码签名
代码签名对于那些对苹果平台有兴趣开发者来说是非常不幸的,但幸运的是苹果没有做把头埋在沙子里的鸵鸟,苹果看到了开发者们遇到的问题并尝试解决,一些经验非常丰富的开发者也会不时遇到签名的问题,在今年的Platforms State of the Union视频中, 苹果甚至自嘲自己的 修复问题(Fix Issue) 按钮,不仅很少时候能修复真正的问题,有时候会把问题弄得更糟。
修复问题(Fix Issue) 按钮通常不能修复问题
代码签名问题在Xcode 8 中将成为过去式,对于每一个目标(Target), 你可以勾选复选框让Xcode帮你管理代码签名,这个选项对于新项目默认是勾选的。在勾选的情况下,Xcode帮你管理证书,配置文件 和 应用标示等。
Code Signing Done for You
希望苹果这次能解决签名问题,数以万记的开发者们和我一起祈祷吧。
5. 其他改善和增强
San Francisco Mono字体
如果你非常享受使用精雕细琢的软件,你应该会很喜欢Xcode 8中的San Francisco Mono 字体,请参看下图:
San Francisco Mono
高亮当前行
你有没有注意到上面截图中的当前行被标示为高亮? 这是Xcode8中另一个受欢迎的功能,当前我在Xcode 7 中使用Backlight for Xcode实现类似功能,在Xcode 8 中将不再需要这个插件了。
图片代码自动完成
说到一些将被废弃的插件, 目前我在使用Kent Sutherland开发的插件KSImageNamed能够在Xcode中帮助图片代码自动完成, 在Xcode 8 我将不需要这个插件,因为这个功能已经内置在Xcode 8 中。
图片自动完成
6. 文档
相信每个开发者都会在浏览和阅读文档上会花费很多时间,好的文档对于开发者有很大帮助,其实苹果的文档是非常优秀的,但提供的浏览方式却没有那么友好。
这个问题在 Xcode 8 将会被解决,新的文档格式看起来漂亮极了,且文档浏览会变得简单和快捷。苹果也针对内存问题做了相关优化,新版的内存占用会少很多。
下面是两张关于文档的截图,是不是极有设计感?
新文档浏览器图1
新文档浏览器图2
总结
最后想说我这篇文章只是覆盖了Xcode新功能的一部分,对于Xcode的大版本升级我总是很期待的。 哪一个是你最喜欢的Xcode 8中的新功能? 在评论区不吝分享吧。