File tree Expand file tree Collapse file tree 1 file changed +8
-0
lines changed
Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change 4444
4545[ @Barney ] ( https://github.com/BarneyZhaoooo ) :文章讨论了 Swift 编译器如何识别 DispatchQueue.main 为 @MainActor ,这是通过检查源代码实现的。当使用 DispatchQueue.main.async 时,系统会自动将其视为 @MainActor ,这使得在主线程上执行并发任务变得方便。然而,这种行为并未在 Xcode 等 IDE 中明确显示出来,作者希望能直观显示 @MainActor 和相关并发信息,以便更好地理解和学习 Swift。
4646
47+ ### [ Why Ollie is moving away from SwiftUI to UIKit] ( https://medium.com/goodones/why-ollie-is-moving-away-from-swiftui-to-uikit-cfdefe918d1c )
48+
49+ [ @JonyFang ] ( https://github.com/JonyFang ) : 本文描述了该团队在 SwiftUI 应用过程中经历了一系列关于 SwiftUI 和 Swift 并发的问题,最终决定从 SwiftUI 迁移到 UIKit。他们指出 SwiftUI 的抽象和不确定性给开发带来了更多的开发成本,在处理复杂的业务逻辑和多线程时问题更为明显。SwiftUI 的"魔法"和 AttributeGraph 的不确定表现让 debug 变得困难。开发过程中 Swift 并发的死锁问题也让开发者头疼,而其异步执行的顺序问题使得调试变得复杂。
50+
51+ 作者强调了 SwiftUI 可能正在经历第二系统效应(second-system effect),第二系统效应可能造成软件专案计划过度设计,产生太多变数,过度复杂,无法达成期待,并因而失败。他们解释了在使用 SwiftUI 和 Swift 并发时的一些错误实践,包括对 MVVM 和对 SwiftUI 内部属性的误用。他们还提到了对 Combine 的迁移以及将重型操作移到显式调度队列的决策。
52+
53+ 为了解决问题,团队决定迁移到 UIKit,并举例说明了一个使用 UIKitCollectionView 的案例在性能上远远超过 SwiftUI 版本。
54+
4755## 工具
4856
4957> 开发过程中常用的工具,及一些新工具的介绍
You can’t perform that action at this time.
0 commit comments