2014

CocoaPods 是对 Cocoa 社区的反映,一面反映了数千人为了分享和帮助彼此改进而做出的个人贡献的镜子。随着社区的壮大,围绕它的工具也在壮大,无论是在复杂性还是规模上。

一年前,我们公布了新的 CocoaPods 品牌。这是几位志愿者在业余时间经过 6 个月的设计和开发工作的结果。让我们看看去年还发生了哪些变化。

贡献

今年,我们有两人受雇全职为 CocoaPods 工作一段时间。第一位是 Fabio Pelosin,他利用由 SoundCloud 赞助的时间重构内部结构,帮助引入对 CocoaPods 插件和按配置 Pod 的支持,然后最终改进了命令行界面。第二位是 Samuel Giddins,他一直在为 CocoaPods 和 Bundler(Ruby 版 CocoaPods)的迭代依赖关系解析器 工作。

团队整体也发生了变化。去年,许多当前的主要提交者并未参与 CocoaPods 的工作。我们已将活跃开发人员的数量从大约 4 人增加到大约 8 人。这很难判断,因为 CocoaPods 对大多数人来说都是一个副业。但在贡献者聊天室中,有很多新面孔和 非常受欢迎的面孔

Web 属性

一年前,文档存在于四个地方:CocoaPods 主页、基于 Ruby 源代码的开发者参考、文档子网站和 GitHub Wiki。这些内容已合并到一个指南网站中,其中包含所有重要内容,并期望 StackOverflow 填补空白。

网站的流量从每月 60,000 次展示增加到 180,000 次。具体细分为:cocoapods.org:120,000 次,blog.cocoapods.org:8,000 次,guides.cocoapods.org:55,000 次。

我们改变了主页的重点,以反映我们在分析中看到的内容;人们花了很多时间使用我们的搜索。新设计将搜索移至网站的正面和中心,并且在我们的分析中显示,我们的搜索量从每月 70,000 次增加到 825,000 次。它增加了其复杂性,并被重新编写以应对规模。现在,它还使用我们的指标来推导出一种流行度排序算法。它并不完美,但它是我们 想要去的地方 的一大步。

我们引入了一些新的网络服务,有一个 指标引擎,它不断从 GitHub(以及很快 CocoaDocs 质量)获取所有 Pods 的指标。这将构成真正的 CocoaPods API 的大部分内容。

有一个身份验证服务器,Trunk,它为库作者提供了控制谁可以推送其库的版本的能力。以前,我们使用的是 Pull Request,社区制作了 12,000 多个,使我们成为 GitHub 最 活跃的仓库 之一。现在它更大,并且是自动化的。因此,我们看到对规范仓库的贡献者从 1,800 增加到 4,200。另一方面,我们现在每天看到大约 1,500 次规范仓库的下载。

社区

作为一个有趣的指标,@CocoaPods twitter 帐户已经从 4k 增加到超过 10k。我们把新 pod 公告分拆到一个单独的 twitter 帐户 @CocoaPodsFeed,以便处理新 pod 的数量。

关于新 Pods 的主题,它从 2,400 大幅增加到 7,000。我预计这部分是由于网络效应,并降低了进入门槛。我们投入了大量时间,通过命令 pod lib create 提供 最佳实践作为默认值,使 OSS 库非常容易。

活动

我们举办了一些 CocoaPods 活动,包括一些进行得很顺利的聚会。一场围绕 CocoaPods 插件展开的黑客马拉松。最有趣的是一场 CocoaPods Bug Bash。我们的想法是尝试处理尽可能多的细小问题,我们计划在周末进行,但第一天就完成了。第二天用于改进 CocoaPods。这次活动让我们在让新人加入和 引导人们从事 CocoaPods 工作方面积累了一些宝贵的经验,这导致了一个元仓库 Rainforest,它包含所有仓库。它还引入了新的贡献者,他们现在非常宝贵。

CocoaPods

本月,我们的 CocoaPods Gem 总下载量达到 1,000,000 次。

2013 年 10 月的最新版本是 CocoaPods 0.26。从那时起,CocoaPods 已添加

  • 基于配置的 Pod
  • 插件支持
  • 更新特定 Pod
  • 大幅减少围绕本地缓存的网络连接
  • 迁移到支持 JSON podspec
  • 切换到预构建库
  • 添加了一条命令,可立即尝试任何 Pod
  • 优雅地处理 Xcodeproj 合并冲突
  • 添加了弃用 Pod 的功能
  • CocoaPods 的候选版本

1.0

未来一片光明,即将发布的下一个版本将带来解析器上的工作。

然后是 Swift CocoaPods。它有一个奇异的 Pull Request,你可以 关注。我已亲自迁移 Artsy iOS Swift 应用,以移除所有子模块并 仅使用 CocoaPods。制作 Swift 或动态框架 Pod 与 Objective-C Pod 没有什么不同。

我们一直在努力实现一个稳定的 1.0 版本,这意味着长期支持。由于一个问题只能在一个里程碑中出现,我们的官方 1.0 里程碑 有点空。Swift 支持让我们在这方面稍稍落后,但并不严重。

就我个人而言。为如此多的人使用的如此引人注目的工具工作,是一种非常令人满足的体验。我认为 CocoaPods 大大降低了新程序员的入门门槛,并让经验丰富的程序员可以通过涵盖从库发现到 Xcode 集成的所有内容,轻松改进他们的代码库。这是自第一个 CocoaPods 提交以来的第四年,也是迄今为止最好的一年。