一次关于 Swift 在 iOS 生态圈里的现状调研

本文是一次关于Swift在iOS生态的现状调研,通过发展历程、语言排名、社区活跃度和使用现状等方面进行深入探讨。数据显示,Swift在编程语言排行榜上的排名逐年提升,社区活跃度超过Objective-C,Apple的SDK也在更多地采用Swift。2020年,国内和国外使用Swift的iOS应用占比分别达到30.4%和82.3%,表明Swift正逐渐成为iOS开发的主流选择。
摘要由CSDN通过智能技术生成

本文是 SketchK 的一篇数据调研笔记,可以帮助大家看清当前国内 iOS 开发形式。文章末尾处有一个开放性投票,欢迎大家积极参与

Swift 的发展历程

概述

通过官网的 Document Revision History[1] 和 Xcode Release Notes[2] 梳理了一下 Swift 的发展历程和重大事件。

Swift 版本 Xcode 版本 发布时间 重大事件
Swift 1.0 ~ 1.2 6.x 2014 语⾔发布
Swift 2.0 ~ 2.2.1 7.x 2015 对协议,泛型能力进一步扩展,开始支持 Linux,随后出现了以 Swift 语言为核心的后端框架 Perfect,Vapor,Kitura
Swift 3.0 ~ 3.3.1 8.x 2016 发布了 Swift Package Manager,同时以 GCD,Core Graphics 为代表的基础库 API 风格发生了大幅度转变,摆脱了 Objective-C 时代的烙印
Swift 4.0 ~ 4.1.3 9.x 2017 在整体的语法,使用和理念上基本定型,提出了 Codable 协议,同时 Xcode 的 Swift Syntax Mirgration 的最低版本固定为 4
Swift 4.2 ~ 4.2.4 10.x 2018 Swift 社区从邮件列表转向论坛,语言小幅升级,主要是功能完善,性能提升,同年 Swift for TensorFlow 发布并开源
Swift 5.0 ~ 5.0.3 10.2.x 2019 ABI 稳定,iOS 12 开始内置 Swift 运行时
Swift 5.1 ~ 5.2 11.x 2020 新增 Property Wrapper ,Opaque Type 等新的语法功能,同年 WWDC 上,Apple 发布了 SwiftUI,Combine,Catalyst 等 Swift 语言的专属 SDK
Swift 5.3

质量和性能增强,增加对 Windows 和其他 Linux 发行版的支持。

结合着自己的 Swift 学习经历,不难发现:

在 Swift 4 之前,由于语言整体还没定型,确实存在着发一个新版本,学一门新语言的情况,但在 Swift 4 之后,Swift 变化变得收敛了许多,不过也出现了入门容易,精通难的情况,毕竟光 Swift 的语法糖数量就快赶上了 C++ 了。

语言排行榜

Swift 语言从诞生之日开始,就一直存在各种各样的争议:一方面的焦点在于 Swift 的应用领域还是集中在 Apple 生态下,让人觉得不够大气,毕竟新时代的语言就是要全能,另一方面的焦点就是 Swift 语言的变化太快,每个版本都是是全新的感觉,这让开发者意识到,东西虽好,但代码还是要一个个的自己改的。

不过随着时间的推移,Swift 在后端,人工智能,物联网上的解决方案和应用场景不断出现,它已经远远不在是一个只能在 Apple 生态下运行的语言,关于这个非常推荐看看 Onevcat 在 GMTC 2019 上的分享:在分歧中发展——2019,我们能用 Swift 做什么[3]

ABI 在 Swift 5.0 的时候也终于稳定了,虽然 ABI 稳定是使用 binary 发布框架的必要非充分条件,但都 ABI 了,module stability 也不会太远了,这些信号都让开发者的信心不断增强。

为了验证这一点,我们也可以从编程语言排行榜 TIOBE[4] 和 PYPL[5] 里看出一些端倪。

下图为 TIOBE 2020 年 四月排行榜,Swift 的排名在 11 名,Objective-C 的排名在 17 名,份额差距在 0.6% 左右:

TIOBE 2020 年 四月排行榜

下图为 PYPL 2020 年 四月排行榜,Swift 的排名在 9 名,Objective-C 的排名在 8 名,份额差距在 0.17% 左右:

PYPL 2020 年 四月排行榜

不论哪种排名,我们应该都可以得出这样一个结论:相比于 Objective-C 的下降趋势,Swift 的未来会更让人期待。

社区活跃度

观察一个编程语言活跃度的最好地方就是 Github,通过 Pull Requests ,Issues,Pushes,Stars 的情况,我们就可以大致了解到它的情况。

恰好 Githut[6] 提供了这样的能力,通过观察 2020 年第一季度的数据,我们可以清楚的观察到 Swift ,Objective-C 等语言在社区的活跃度。

整体趋势图

下面四张图的 Y 轴分别代表了 Pull Requests ,Issues,Pushes,Stars 的数量,蓝色的线代表 Objective-C ,浅橙色的线代表 Swift,深橙色的线代表 Kotlin。

Pull Requests
Issues
Pushes
Stars

我们可以发现,从 2016 年开始,Swift 的数据已经超过了 Objective-C,现在有一种取而代之的快速发展趋势&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值