WWDC2023 Session系列:探索XCode15新特性
•创建新的文件在引用时的提示
首先创建一个新的文件
•函数调用时列出所有可能的参数排列
在没有提示的情况下,调用函数时如何传参往往是比较困难的,不知道可以传哪些参数, 现在 Xcode 将列出所有可供选择的可能,你可以更轻松找到合适的参数列表并选择它。
•自动分析代码上下文,并给出最合适的建议。
例如在 Text 组件调用中,输入"点号" 后,在弹出的提示列表中的最上方会提示 font (此时 Text 还没设置 font ),这是因为Xcode分析了上下文,“识别出” 这是一个 Text, 并且此时还没有设置过字体,你可能需要它,因此将字体放在建议的最上方。
过去资产文件如图片是以 “字符串” 作为图片名称在代码中被引用,现在直接通过类似变量的标识符去引用它,它可以接受编译时的检查。
•资产引用的编译检查
修改资产的名称为 “MultipleClouds ” 后,引用处产生了编译错误
这是因为此前资产的名称是 "clouds", 现在,编译器提示你修改它为 "MultipleClouds"。
•代码中引用图片资产的智能推荐
编辑资产的名称时,可以获得Xcode 的智能推荐。
•旧项目的本地化文件迁移
Xcode 设置中 选择 Edit > Convert to string catalog, 此时 Xcode 会自动扫描工程中的 storyboards、.strings、 以及 .stringsdict 类型的文件。并将其列在下图所示的列表中,你可以根据需要选择部分或全部文件进行迁移。
迁移完成后,所有的本地化翻译将被整合到一个 Localization 目录中,你还可以查看到不同语言翻译的进度。
•新的文档卡片样式
左边是代码,右边可以看到对应的文档,你可以实时编辑和预览,这看起来有点像 MD。
系统部分框架已经实现了宏,如 Swift standard library、foundation、 以及一个新的 Swift data framework.
•创建宏包 (macro package)
使用快捷键 Command-Shift-A, 然后在弹出的输入框中输入 New package 可以快速创建一个带有样例代码的宏包,你可以修改并实现它。
然后选择 Swift Macro
以下是一个已经实现的宏包 EnumHelper,而CaseDetection 被实现为一个宏,宏的代码和一般的 swfit 代码没什么大的区别。
以下是引用了宏包 EnumHelper 中的宏 @CaseDetection,它默认会隐藏了宏实现。
•展开宏和断点调试
当你需要时,你可以选择展开宏,通过 Editor > Expand Macro 可以展开它。
展开后,还可以使用断点,如下图所示:
以下继续添加了一个带名称的预览实例,当有多个预览实例时,可以在右侧边栏的左上角切换tab 预览对应实例。
•AppKit 及UIKit 的预览支持
为了兼容非SwiftUI 的代码,可支持对旧工程的 Appkit 及 UIKit 添加预览。
•Widget 预览支持
•添加书签
你可能经常会遇到忘记此前关注或使用的一些重要代码,在你想要找到之前的那些代码时,你发现没有办法快速找到它。现在,通过添加可命名的书签来标记他们。
添加完成后,书签被展示在左边栏的书签tab下。
你也可以设置一个组名,便于搜索和理解。
•版本控制面板
在新的面板中,所有的版本改动将集中在一个文件中一起预览,通过上下滑动可以看到多个文件的修改内容,从而避免来回切换修改的文件。
修改的预览是可交互的,你可以通过操作来扩大预览区域,从而查看当前修改处的更多上下文。
除了预览,你还可以直接在当前界面下继续编辑,编辑完成后,可以提交 commit,然后push。
可通过左侧的竖条修改状态。
小结:代码修改的预览、编辑、提交、推送都在同一页面下,减少不必要的界面切换,操作更便捷。
•查看测试结果
测试结果的整体统计信息看起来简明扼要,主要包括:
Top Insights: 分析测试结果,给出一些问题分析的建议,包括错误的原因、分布、最耗时的测试用例。
Tests: 展示测试用的统计数据,包例成功率,按机型、语言分类,以及错误列表。
•控制台引入 OSLog 的支持
OSLog 可用来很好的捕获运行时信息。它可定义及收集结构化的日志信息,使日志看起来井井有条,接下来让我们看看如何使用它。
首先,使用 OSLog 编写一段日志:
默认情况下,日志的元信息是被隐藏的,仅显示开发者输入的日志信息,控制台中对不同严重程度(如 info、 notice 、error 等)的日志,标记为不同的颜色以示区分。
你可以选择性的添加展示日志的分类,包括子系统类别等元信息。
还可以过滤不同严重程序的日志。
最后,我们可以通过操作某条日志,跳转到日志代码定义处。
你可以使用Xcode可以生成和查看完整的隐私报告:
以下是另外一个操作内部测试的路径:
Xcode15 在开发效率和性能、安全提升上主要表现为以下概括的内容:
更简洁: 主要体现在宏、文档、和日志上。
更智能: 提升自动补全代码能力、提升测试分析能力。
更便捷: 包拆分下载、代码补全、书签、git集中管理,本地化集中管理。
更安全: 图片资产符号化管理, 通过对框架和隐私的处理,使得代码更加安全。