内容简介:Swift 周报 #73
作者:Jesse Squires, 原文链接 ,原文日期:2017-06-09
译者: 四娘 ;校对: walkingway ;定稿: CMB
这周的事情很多!今天是 WWDC 2017 的最后一天,Swift 4 随着 Xcode 9 ,一起放出了开发者公测版。Xcode 和 Swift 都有好几个重大的改进和新的功能 — 这个版本真的很棒。整个 社区 的 反响 都 很 正 面 。恭喜 Apple 的 Xcode, Swift 和开发 工具 组!
想要赞助 Swift Weekly Brief 吗? 点击此处了解更多
Swift 解包
第 14 集: Swift 更新内容,Part 1
我们讨论了 Swift 4 里的一些新功能和改进。
资讯及社区
Apple 宣布 Swift Playgrounds 已经支持对玩具机器人和无人机的编程了。他们正与多家公司合作,包括 Lego, Sphero 等一众公司。 这件事情很棒很好玩,你可以在这里查看 相关视频 。
Erica Sadun 的新书 Swift Style 这周正式开始销售。
objc.io 已经放出了他们的新书, Optimizing Collections 。作者 Károly Lőrentey 在这本书里介绍了如何使用 Swift 编写高效的自定义集合类型。
Xcode 9 beta 以及新的 SDK 全都放出来啦!
WWDC 里关于 Swift 的视频
- What’s new in Swift
- What’s new in Swift Playgrounds
- Teaching with Swift Playgrounds
- What’s new in Foundation
- Understanding undefined behavior
提交和合并的请求
Rober Widmann 合并了修改 ,使用了 Xcode 新的未定义行为检测器,来修复了一些未定义的行为。
Roman Levenstein 做了一些小调整 ,让标准库的代码体积减少了 1.5% !!!
Swift 服务端 API 工作组发布了一个 新的 repo ,主要是关于跨平台 HTTP API 的开发。
Ben Cohen 向 swift-4.0 分支
发起了一个合并的请求
,用于提高 substring 比较的性能。Nate Cook 也发起了一个提高字典效率的合并请求
,现在已经有 好几个 Swift 4 的合并请求
了,希望那些已经请求完成的合并请求可以尽快通过。我们应该可以在接下来的 beta 版里看到这些改进。
Slava Pestov 修复 了几个 Bug。:clap:
正在 review 的提案
SE-0180 :字符串索引类型统一,Dave Abrahams, 正在 review
现在 String
跟它的 CharacterView
共用一个 Index
类型,但 UTF8View
, UTF16View
以及 UnicodeScalarView
就不是了。这个提案重新定义了这几个类型的 Index
类型,让它们跟 String
保持一致。并且暴露一个公开的 encodedOffset
属性和构造器,用于序列化和反序列化 String
和 Substring
的索引值。
[…]
这样的结果就是很多 API 都无法从原本的设计中获益,通常来说,一个 view 的索引如果可以在另一个 view 有对应的索引值的话,这些索引值的转换都应该在内部完成,而不是像现在这样需要写很多不必要的代码。
[…]
所有 String 的 view 都会使用同一种 Index 类型 ( String.Index
),这样索引值就可以在内部进行转换,而不用显式地去完成。
邮件列表
Ted Kremenek 发布了 一个公告 ,关于即将开源的重构工具,以及其它在 WWDC 公布的事情:
今天下午在 WWDC 上,我们发布了 Xcode 9 里新的重构功能(支持 Swift,C,Objective-C 和 C++)。我们同时宣布将会把这个引擎的核心代码开源出来,包括 Xcode 编译时才会索引的新功能。
大概会在接下来的几个星期里, 我们将会分阶段把这些代码发布出来:
-
关于 Swift 的重构功能,我们还需要做一些收尾工作,例如文档的编写,我们想在发布之前完成。 Argyrios Kyrtzidis 和他的团队负责处理这个计划。
-
关于 C/C++/Objective-C 的重构功能,我们想和 LLVM 社区一起完成然后并入 LLVM。第一阶段应该会在 swift-clang 的 repo 里完成,但是他们想做的不只是这些。Duncan Exon Smith 和他的团队负责这个计划。
-
我们也会开源编译器对于编译时索引的支持,包括了 Clang 和 Swift。Argyrios 和他的团队负责推进这件事。关于 Clang 的改变他们应该会在也会在 swift-clang 上完成,然后跟 LLVM 社区讨论如何将他们并入 Clang 里。
-
最后,我们将会把 Swift 迁移工具剩余的部分开源出来。Argyrios 和他的团队负责推进这件事情,这些修改只会在 Swift 仓库里完成。
和之前一样,我们还需要完成 Swift 与 Apple 最新的 SDK 的桥接工作。希望可以在下周之前完成,之后我们就会暂时关闭仓库的 commit 权限。相关的细节之后会通过邮件公布。在此之前, Swift.org 的可下载的工具链都可以跟 Xcode 8.3.2 交互。在这之后, 我们可下载的工具链就主要会面向 Xcode 9 beta。这件事情很必要,因为之后最上层的 API 会依赖于最新的 SDK。
Rick Ballard 发了一个关于 Swift 4 包管理器的 公告 :
Hello, Swift Pacakage Manager 的社区。
我想要汇报一下 Swift 4 里 SwiftPM 的开发进度。我们已经在这个春季实现了一系列的 evolution 提案:
除了这些提案,我们还实现了一些重大的改进:
-
在 macOS 上,包的交互和包的编译现在都沙盒化了,能够减轻恶意软件带来的损耗。
-
许多错误信息和诊断都加强了,包括依赖管理时出现的冲突。
-
Xcode 工程文件生成器也改进了,现在允许在重新生成工程文件时让 scheme 引用包里的 target。
-
并且做了大量的小改进和 bug 修复。
Xcode 9 在新的编译系统里为 Swift 包管理提供了原生的支持。这个编译系统提供了灵活性和拓展性,让 Xcode 可以支持新的编译模型,例如 Swift 包管理。此外, SwiftPM 为 SwiftPM 的库做了大量的工作,让 Swift 包管理的工具可以轻松嵌入诸如 Xcode 的软件里。
那 SwiftPM 4 还有什么?首先,我们将会实现 SE-0179
,支持 swift package run
命令。另外,我们还希望开始放下现在的版本,然后开始计划后面,虽然我们还是在接收建议和 evolution 的提案
[…]
其它功能我们应该会考虑在下个版本进行支持,例如包资源(例如图片),许可证和元数据支持,用于处理源代码控制分支的显式支持,以及一个泛用的机制去处理编译工具不支持包管理的情况。最后, 我们确实考虑了之后建立一个中心化的包索引机制,我们也许会在接下来一年为这件事情做一些基础工作。
最后
最后 – self storage
本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问http://swift.gg。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- javascript周报 434 期
- 不简单的周会与周报
- 《Web动画周报》第一期
- Android 开发技术周报
- Flink weekly(周报) 2019/25
- Android 开发技术周报 Issue#273
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。