Skip to content

Instantly share code, notes, and snippets.

@kemchenj
Last active June 28, 2021 04:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kemchenj/0d9d1c9c4058df1f6f01c619c61f2f68 to your computer and use it in GitHub Desktop.
Save kemchenj/0d9d1c9c4058df1f6f01c619c61f2f68 to your computer and use it in GitHub Desktop.
摘要

Swift Concurrency

高效,可控,安全的 Concurrency。

整个 Concurrency 功能的结构和思路 https://github.com/SwiftOldDriver/WWDC21/pull/13#issuecomment-862922860:

社区会作为一个 Trouble Maker 的角色去不停地挑刺,提出问题和自己认为可行的解决方案,最典型的就是 Chris Lattner,并且随着方案迭代,代码的实现,慢慢地也会发现一些问题,例如 Actor 最初被定义为 Class with State Isolation,但实现慢慢深入,一些最初支持 actor class 的人也觉得 actor 没有继承,与 class 撇清关系会更好。

SwiftUI

Not Primitive

SwiftUI 的 UI 原语是基于 AppKit / UIKit 的,自身缺乏 UI 原语。

(UI 原语泛指从自身数据结构到 Native 绘制的过程/接口)

做小控件得心应手,但处理页面结构乏力,如果哪天 SwiftUI 可以用来实现 UINavigationController 或者 UITabBarController,才算是真正迈向成熟。

数据驱动的 UI 框架目前在移动客户端实际上还存在很多空白,在 Web 上很多事情都是因为大家可以接受 reload 所以才被解决。

短期内可能 SwiftUI 都不会有很大的改进,苹果需要花很长的时间,才能组织起一套 SwiftUI 自身的 UI 原语,实现所有 UINavigationController 和 UITabBarController 的功能。

跨平台

SwiftUI 想要跨平台缺乏着力点:

  • React Native / Weex 都有统一的 UI 原语 —— Virtual Dom
  • Flutter 则是 Skia,一套高效的跨平台渲染引擎
    • Flutter Web 之所以到了 2.0 才推出出,就是因为它需要额外支持 Dom(亦或者是让 Skia 提供 Canvas 接口)

Swift 与社区的关系

纯社区提案是如何经过一波三折,最终成为 Swift 的一部分

社区最能讨论的大多是 API 设计,而刚好这个提案就踩中了这个点。

苹果往 Swift 里添加私有功能,引起社区不满

我们应该怎么看待开源项目和商业公司的关系?或者说,开源是否意味着民主化?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment