我们的Swift样式指南现已开源
Swift在Airbnb的简史
在2014年的WWDC上,Apple用一种新的语言:Swift使我们感到惊讶。 在Airbnb,我们很快跃居第一,并在2014年8月甚至在Swift达到1.0之前就编写了第一行Swift。
那年晚些时候,苹果发布了Apple Watch和WatchKit。 考虑到社区对传闻已久的Apple Watch的兴奋,我们在2015年4月打赌,开始完全在Swift 1.1中编写Airbnb的Apple Watch应用程序的第一个版本。
在WWDC 2015上,Apple正式宣布了Swift 2.0。 因此,当需要构建Apple TV应用程序时,我们尝试了一下并使用Swift 2.0进行了编写。
在这两个成功的试验之后,我们于2016年1月决定要在Swift 2.0中编写所有新功能。 一切进展顺利,直到“大雨燕”改名降落。 为了升级到Swift 3,我们要求一个由两个人组成的团队在5周的时间内进行代码库的迁移。 幸运的是,升级到Swift 4更加简单。 自2017年10月以来,我们的整个代码库都位于Swift 4中。
为什么要使用风格指南?
斯威夫特是一门年轻的语言。 当我们在2014年开始使用它时,我们还没有标准化的Swift样式指南。 我们让15位工程师在我们的代码库中放松下来,他们每个人都以自己的个人Swift风格编写。 很快变得很清楚,如果我们不同意标准化的风格,我们要么花太多时间讨论PR中的风格,要么我们的代码库就像杰克逊·波洛克的画。
当我们在使用Apple TV应用程序时,我们开始了一份非正式的风格指南。 在2016年1月,这与其他临时工作相结合,成为了正式的Airbnb Swift样式指南,我们开始合作定义在Airbnb上编写Swift的首选方式。
苹果和Swift社区为如何编写Swift提供了宝贵的指导。 即使他们绝对影响了我们在Airbnb上编写Swift的方式,我们仍然认为保留自己的样式指南是一种有价值的方法,可以迭代对我们认为正确的事情,同时与社区保持一致。 这就是为什么我们将Apple的建议添加到我们的指导原则中的原因。
我们不想手动识别和更正违反样式指南的行为,因此我们分别采用了Swift社区中最受欢迎的linter和formatter,分别为SwiftLint和SwiftFormat。 在我们的样式指南中,您将找到我们的SwiftLint和SwiftFormat配置。 如果您想使用与我们相同的规则,只需抓住它们并开始在您的项目中使用它!
我们为什么要公开采购?
自从我们开始编写Swift以来,已经过去了很多年,并且社区已经在某些模式上实现了标准化。 Swift语言和社区对我们来说很棒,因此我们想通过分享一些我们在Airbnb上编写Swift所用的模式来做出贡献。
我们了解并非所有人都会同意我们在Airbnb的工作方式。 我们相信有异议的人,我们很想听听您的反馈-我们很高兴分享我们的想法。 如果您不同意或认为我们缺少什么,欢迎您的贡献!
拥抱斯威夫特
在Airbnb,我们将Swift视为iOS开发的未来,并且我们将继续推动尖端本机技术的发展。 鉴于我们即将淘汰React Native,我们将在内部Swift和Kotlin库中投入更多资源。
我们70%的新本地Android代码是用Kotlin编写的,而90%的iOS是用Swift编写的。*我们一直在迁移到最新的语言功能。
*不包括旧版React Native代码。