Swift开发者选择了UIKit和SwiftUI:调查结果

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

UIKit vs SwiftUI:2024年开发者如何选择?



Swift开发者社区早已分为两大阵营:忠于UIKit的保守派,以及学习SwiftUI的爱好者。但在实际项目中,人们到底使用什么?一项针对iOS/macOS工程师的最新调查,覆盖了各大会议和专业聊天群,结果出人意料。



调查方法



超过850名来自俄罗斯、独联体和欧洲的工程师参与了此次调查,他们都在从事生产环境项目(App Store应用、企业解决方案、SaaS产品)。受访者被要求指出主要的UI框架,以及附加工具:Combine、Async/Await、Core Data、Realm等。



关键数据



  • UIKit——58%的受访者将其作为iOS/macOS生产环境的主要框架。
  • SwiftUI——32%的开发者已将其应用于实际项目,但通常是与UIKit混合使用。
  • 纯SwiftUI(不含UIKit)——只有10%的受访者敢于完全迁移。
  • Combine——在45%的项目中使用,通常与UIKit一起使用。
  • Async/await(结构化并发)——67%的开发者已将其用于生产环境,无论选择哪个UI框架。


为什么UIKit仍然领先?



尽管Apple积极推广SwiftUI,UIKit仍然是行业的“主力军”。主要原因:

  • 成熟与稳定——UIKit已存在超过10年,其行为可预测。
  • 兼容性——大量遗留代码和第三方库依赖于UIKit。
  • 灵活性——UIKit可以实现复杂的自定义UI元素,而在SwiftUI中则需要变通方法。
  • macOS Catalyst——许多人通过UIKit将iPad应用移植到Mac。


SwiftUI:突破还是实验?



SwiftUI正在迅速增长,尤其是在初创公司和新项目中。然而,生产环境经验表明:SwiftUI仍然存在以下问题:

  • 对复杂动画和自定义布局的支持有限。
  • 在处理大型列表时存在性能问题(LazyVStack vs UICollectionView)。
  • 不完全的向后兼容性(SwiftUI需要iOS 13+,而许多公司支持iOS 15+)。


尽管如此,32%的受访者已经在生产环境中使用SwiftUI——相比2023年增长了12%。趋势很明显:在未来2-3年内,SwiftUI在新项目数量上可能超过UIKit。



附加工具:还有哪些常用?



调查还涉及了数据处理和网络栈: