关于wwdc:WWDC2023-Session系列探索XCode15新特性-京东云技术团队

38次阅读

共计 3109 个字符,预计需要花费 8 分钟才能阅读完成。

一、版本阐明

XCode 15 beta 公布于 2023 年 6 月 5 日, 可反对 macOS 13.3 或以上版本,你能够按需下载须要的平台。

二、新增个性

1. 代码智能提醒 (Code completion)

  • 创立新的文件在援用时的提醒

首先创立一个新的文件

而后,在援用的中央,输出文件首字母会立刻自动弹出补全提醒。

  • 函数调用时列出所有可能的参数排列

在没有提醒的状况下,调用函数时如何传参往往是比拟艰难的,不晓得能够传哪些参数,当初 XCode 将列出所有可供选择的可能,你能够更轻松找到适合的参数列表并抉择它。

  • 主动剖析代码上下文,并给出最合适的倡议。

例如在 Text 组件调用中,输出 ” 点号 ” 后,在弹出的提醒列表中的最上方会提醒 font(此时 Text 还没设置 font),这是因为 XCode 剖析了上下文,“辨认出”这是一个 Text,并且此时还没有设置过字体,你可能须要它,因而将字体放在倡议的最上方。

2. 资产文件作为变量援用 (Asset catalogs)

过来资产文件如图片是以“字符串”作为图片名称在代码中被援用,当初间接通过相似变量的标识符去援用它,它能够承受编译时的查看。

  • 资产援用的编译查看

批改资产的名称为“MultipleClouds”后,援用处产生了编译谬误

这是因为此前资产的名称是 “clouds”, 当初,编译器提醒你批改它为 “MultipleClouds”。

  • 代码中援用图片资产的智能举荐

编辑资产的名称时,能够取得 XCode 的智能举荐。

3. 本地化资源集中管理 (Localization)

  • 旧我的项目的本地化文件迁徙

XCode 设置中 抉择 Edit > Convert to string catalog,此时 XCode 会主动扫描工程中的 storyboards、.strings、以及 .stringsdict 类型的文件。并将其列在下图所示的列表中,你能够依据须要抉择局部或全副文件进行迁徙。

迁徙实现后,所有的本地化翻译将被整合到一个 Localization 目录中,你还能够查看到不同语言翻译的进度。

  • 追踪代码中的字符串变动

每次构建时,XCode 会主动提取代码中的所有字符串。当增加新字符串或删除某个字符串时,本地化目录会标记出受影响的中央,并给出“古老”和“新增”的标记进行凸显,从而提醒你去翻译或者删除它。

4. 文档 (Documentation)

  • 新的文档卡片款式
  • 文档小助手

抉择小助手,而后抉择文档预览。

右边是代码,左边能够看到对应的文档,你能够实时编辑和预览,这看起来有点像 MD。

5. 新增 Swift 宏 (Swift macros)

零碎局部框架曾经实现了宏,如 Swift standard library、foundation、以及一个新的 Swift data framework.

  • 创立宏包 (macro package)

应用快捷键 Command-Shift-A, 而后在弹出的输入框中输出 New package 能够疾速创立一个带有样例代码的宏包,你能够批改并实现它。

而后抉择 Swift Macro

以下是一个曾经实现的宏包 EnumHelper,而 CaseDetection 被实现为一个宏,宏的代码和个别的 swfit 代码没什么大的区别。

以下是援用了宏包 EnumHelper 中的宏 @CaseDetection,它默认会暗藏了宏实现,

  • 开展宏和断点调试

当你须要时,你能够抉择开展宏,通过 Editor > Expand Macro 能够开展它。

开展后,还能够应用断点,如下图所示:

6. 运行时预览 (Previews)

  • 基于宏疾速创立一个预览实例

应用宏 #Preview 疾速创立一个预览实例,在右侧边栏能够看到预览成果。

以下持续增加了一个带名称的预览实例,当有多个预览实例时,能够在右侧边栏的左上角切换 tab 预览对应实例。

  • AppKit 及 UIKit 的预览反对

为了兼容非 SwiftUI 的代码,可反对对旧工程的 Appkit 及 UIKit 增加预览。

  • Widget 预览反对

7. 书签性能 (Bookmark)

  • 增加书签

你可能常常会遇到遗记此前关注或应用的一些重要代码,在你想要找到之前的那些代码时,你发现没有方法疾速找到它。当初,通过增加可命名的书签来标记他们。

增加实现后,书签被展现在右边栏的书签 tab 下。

  • 书签分组

你能够将多个书签打包成一个组,作为有关联性的代码。

你也能够设置一个组名,便于搜寻和了解。

  • 设置为代办或实现

你能够将书签作为工作来治理,比方你能够将书签设置为实现状态,它将会在左侧显示一个对勾。

8. 代码版本控制 (Source Control Navigation)

  • 版本控制面板

在新的面板中,所有的版本改变将集中在一个文件中一起预览,通过高低滑动能够看到多个文件的批改内容,从而防止来回切换批改的文件。

批改的预览是可交互的,你能够通过操作来扩充预览区域,从而查看以后批改处的更多上下文。

除了预览,你还能够间接在以后界面下持续编辑,编辑实现后,能够提交 commit,而后 push。

可通过左侧的竖条批改状态。

小结:代码批改的预览、编辑、提交、推送都在同一页面下,缩小不必要的界面切换,操作更便捷。

9. 测试 (Testing)

  • 测试面板

Apple 对新的测试面板应用 Swift 进行了重写,提速了 45%,下图案例列出了测试计划中的测试用例。

  • 查看测试后果

测试后果的整体统计信息看起来简明扼要,次要包含:

Top Insights:分析测试后果,给出一些问题剖析的倡议,包含谬误的起因、散布、最耗时的测试用例。

Tests: 展现测试用的统计数据,包例成功率,按机型、语言分类,以及谬误列表。

  • 可交互的测试用例回放

测试用例的详情信息能够被查看,它展现了自动化的测试步骤,以及标出产生谬误的节点,你能够通过以上信息来帮忙找出问题的起因。

10. 调试 (Debugging)

  • 控制台引入 OSLog 的反对

OSLog 可用来很好的捕捉运行时信息。它可定义及收集结构化的日志信息,使日志看起来东倒西歪,接下来让咱们看看如何应用它。

首先,应用 OSLog 编写一段日志:

默认状况下,日志的元信息是被暗藏的,仅显示开发者输出的日志信息,控制台中对不同重大水平(如 info、notice、error 等)的日志,标记为不同的色彩以示辨别。

你能够选择性的增加展现日志的分类,包含子系统类别等元信息。

还能够过滤不同重大程序的日志。

最初,咱们能够通过操作某条日志,跳转到日志代码定义处。

11. 散发 (Distributing)

  • 新增 TestFlight 包的备注信息

你能够给 TestFlight 的包增加一些从属的备注信息,例如须要测试哪些内容的阐明,这些信息会被展现给获取 TF 包的测试者。

  • 查看框架签名

XCode 引入了 XCFrameWork 能够对签名的框架进行验签,从而显示其起源,并保障其完整性不被毁坏,从而建设框架的信赖机制。

  • 隐衷清单

框架作者能够给本人的框架增加隐衷清单,来阐明隐衷的应用状况和如何爱护敏感数据。隐衷清单会与框架捆绑一起签名,因而,隐衷清单是可被信赖的。

来看看下图所示的隐衷清单:

你能够应用 XCode 能够生成和查看残缺的隐衷报告

  • TestFlight 仅散发到内部测试

当修复问题时,你不心愿测试包被实在用户看见,这时你能够通过勾选“仅分发给内部测试”而后只分发给本人公司或团队的测试者,这样能够避免被误发给共测用户。

以下是另外一个操作内部测试的门路

三、总结

XCode15 在开发效率和性能、平安晋升上次要体现为以下概括的内容:

更简洁 :次要体现在宏、文档、和日志上。

更智能 :晋升主动补全代码能力、晋升测试剖析能力。

更便捷 :包拆分下载、代码补全、书签、git 集中管理,本地化集中管理。

更平安 :图片资产符号化治理,通过对框架和隐衷的解决,使得代码更加平安。

作者:京东批发 王晰源

起源:京东云开发者社区

正文完
 0