Xcode 9有什么新功能?
今年的WWDC公告重点关注令人兴奋的新SDK(例如ARKit)以及对iOS 11的更改。但是,Apple还通过Xcode 9对Xcode进行了重大改进。 Xcode的新版本不会被其他公告所震撼,它是编码人员的飞跃。 开发人员一定会感到高兴!
今年的改进包括:
- 更新了对Swift 4的支持,包括对Swift 4.0和3.2的并行支持
- 从索引到重构工具,Xcode Project Navigator和Editor的速度得到了极大的提高
- 完全重建的源代码管理(SCM)组件,具有无缝的Git和GitHub集成
- 能够运行多个并行模拟器,以及在iPhone和Apple TV等物理设备上进行无线调试的功能
- 一个新的Main Thread Checker工具,以确保UIKit和AppKit线程合规性
- 改进了UI组件的Interface Builder呈现。
当然,这是一个非常令人兴奋的更改列表,所以让我们从Swift 4开始逐一进行。
支持Swift 4
Swift逐年稳步发展,今年Xcode支持最新的主要Swift版本Swift 4 。 尽管最新的开源迭代没有以前的版本那么大,但是Xcode 9使该过程更加便捷。
对于初学者来说,Xcode 9现在支持同时编译Swift 4.0和Swift 3.2目标的能力,这意味着作为开发人员,您可以选择逐渐迁移项目,而不是一次迁移所有项目,并且可以用任一版本编写项目目标最新或先前的语言版本。
Xcode 9的编译器可以理解这两个版本,并且现在可以通过Xcode Migration Assistant要求用户选择要迁移到4.0版的目标。
实际上,Xcode 9通过“ 编辑器”>“验证”菜单选项来评估您的代码并提供有关项目现代化合规性状态和最佳实践的见解。
项目导航器和编辑器的改进
接下来,Xcode 9对IDE本身进行了一些必要的改进,特别是对Project Navigator和Source Editor组件的改进,从更快的索引引擎开始,该索引引擎增强了您搜索和更快返回结果的能力。
开发人员可以搜索大型代码库并立即获得结果,因为索引引擎现在还可以在编译文件时对文件进行索引,而以前处于编译状态的文件无需进行索引。 这使开发人员能够快速无缝地在链接的项目和库之间跳转和搜索文件,这是一个可喜的收益,特别是当您使用CocoaPods和多项目工作区时。
如Apple所说,编辑器本身也已经过重建,从而实现了“一种基于结构的快速编辑器,可让您智能地突出显示和导航代码”。 这意味着一个新的突出显示引擎,它可以更好地识别按逻辑分组的块,并为您提供用于在代码库的相关部分之间导航的智能工具。
重构
除了允许开发人员轻松地在类之间或方法之间进行导航之外,Xcode还提供了全新的重构功能。 重构工具提供了一个模式编辑器窗格,用于在提取和重构Swift方法时比较所有可能的更改。 即使在Swift和Objective-C方法之间,这也使重构变得容易。
现在,您只需单击一下,就可以更新符号,修改getter和setter,合成iVar以及自动填充强制性协议方法以实现一致性。
降价编辑
其他较小的改进包括在编辑器中对Markdown文件的本地支持(使用Markdown样式呈现)。 考虑到Xcode与GitHub的更深层次的集成,这一改进是有意义的,并且能够在编辑器中更直观地访问README.md文件是有帮助的。
斯威夫特游乐场
Xcode 9还提供了新的iOS Playground模板,您不仅可以在Xcode中进行测试,还可以在iPad上的Swift Playgrounds中进行测试!
其他小型编辑器改进
同样,这是一个很小的改进,但是编辑器现在允许用户使用符合macOS的⌘ +或来增加或减小编辑器字体大小。 ⌘ -快捷方式。
另一个小改进是在Project Navigator中创建,重命名和删除组。 现在,对组进行的更改将反映在关联的文件夹中,从而确保命名的一致性,并消除了许多开发人员对Xcode如何处理文件系统文件夹的烦恼。
最后,对Xcode资产目录的改进增加了对iOS 11中新的HEIF图像开放标准的支持。
源代码管理管理改进
Xcode最显着的改进之一是集成的源代码管理管理,到目前为止,它一直被忽略。 Xcode 9取代了以前从未真正成为Xcode一部分的半裸SCM,现在包括一个经过全面改进的SCM集成。
通过更加无缝集成的新型SCM导航器,您还将获得使用分支和标签的更强大方法。 不仅如此,Xcode现在还具有与GitHub的深度集成,可让您直接从Xcode偏好设置管理帐户,单击即可创建GitHub存储库,并在编辑器中浏览公共存储库。
调试和模拟器改进
顺带一提,调试在Xcode 9中也引起了很多关注。 我们将从研究Xcode Simulator中的新功能开始。
Xcode模拟器
以前,启动Xcode Simulator时,一次只能启动一个Simulator。 因此,如果必须在多种设备类型上进行测试,则必须依次运行每种设备。 无论是手动还是自动测试,这都会使测试变慢。
这在Xcode 9中已发生了变化。开发人员可以首次同时运行多个模拟器,而自动化测试工具现在可以并行运行测试。
苹果公司已经对Simulator进行了一些其他小的但有用的调整。 一种是您可以按住Option键关闭“模拟器”窗口,但仍使其在后台运行。 您也可以从命令行启动Simulator,这对于自动测试和交付工具很有用。
除了截图外,开发人员还可以录制模拟器的视频,这对于App Store发布非常有用。
最后但并非最不重要的一点是,从Simulator毕业到在真实设备上进行测试的开发人员不再需要物理上插入其设备。 Apple现在允许开发人员切断电源,并通过一种称为“网络调试”的功能来无线调试iOS和Apple TV设备。
主线程检查器
苹果公司已经与Xcode 9一起引入了一个新的独立调试实用程序,即Main Thread Checker,它可以从后台线程检测AppKit和UIKit等著名SDK的不合规用法。 例如,开发人员可能在后台线程中使用UITableView
操作,这可能导致奇怪的视觉效果和错误的更新。 主线程检查器默认情况下处于启用状态,并且可以通过方案编辑器进行配置。
内置Xcode服务器
Xcode 9现在具有内置和标准的Xcode Server机器人,从而使开发人员无需安装macOS Server。 这意味着开发人员可以在任何计算机上运行Xcode Server机器人并利用持续集成的最佳实践。
界面生成器的改进
多年来,随着屏幕渲染的不断改进,开发人员已经看到Interface Builder(IB)的逐渐变化和改进。 Xcode 9通过更精确地在画布上呈现UI组件来继续完善IB。 改进的组件包括“导航”,“选项卡”和“工具栏”。
另一个新功能是,当视图约束可能会导致本地化问题时,Xcode和IB现在将警告开发人员。 例如,当视图更改可能导致其他语言(例如德语)的单词被截断或剪切时,您会收到警报。 对于支持多种语言的开发人员来说,这无疑将节省大量时间。
说到布局,Interface Builder现在还支持“自动布局”安全区域指南,这些指南可帮助开发人员安排UI元素。 这不推荐使用Xcode早期版本中的顶部和底部布局指南。
结论
最新版本的Xcode提供了许多新功能,这些新功能将提高开发人员的工作效率。 随着Swift 4的发布,Xcode使从Swift 3.2到最新版本的迁移更加可口,这归功于它对逐步迁移的支持。 Xcode还获得了及时而显着的搜索索引速度改进,以及完全重建的,具有上下文相关性的编辑器,并提供了对重构的新支持。
现在,SCM已成为一流的公民,这意味着开发人员不再需要为满足git管理的需要而在Xcode和第三方SCM编辑器之间切换。 该模拟器得益于一些最显着的改进,它具有运行多个并发模拟器以更快地在多个设备上进行测试的能力,以及能够在物理设备上无线断开和调试的便利。
翻译自: https://code.tutsplus.com/articles/whats-new-in-xcode-9--cms-29654