A站 的 Swift 实践 —— 上篇
小编导读
经过不断迭代,Swift如今已成iOS乃至苹果全平台首选开发语言,A站也已经完全投入到Swift浪潮中,享受到Swift语言带来的舒适和高效开发体验。作为A站的Swift实践上篇,本文介绍了Swift的技术背景,A站使用Swift的架构演进过程,以及对最新框架SwiftUI和Combine等技术的选型。同时也请大家关注本公众号,下篇内容会详细介绍混编和Swift动态性。
编辑 / 贞霓
本文作者
#
背景介绍
Swift赋能AcFun iOS技术团队
苹果推出Swift的原因
苹果采取的实际行动
Swift在AcFun的演进
#
框架选择
框架演进
SwiftUI
RxSwift
Combine
#
如何混编
内容将在本系列下篇中推送,请持续关注。
#
动态性
内容将在本系列下篇中推送,请持续关注。
背景介绍
苹果推出Swift的原因
苹果采取的实际行动
Swift在AcFun的演进
Swift语言的演进
Swift 6的 Roadmap[3] 表明了Swift下一步发展方向是优化Swift部署安装,比如LSP和包管理等;丰富开源生态,包括完善标准库,开发类似科学计算这样的新库;围绕开发体验的构建和代码补全提速、丰富诊断信息、稳定调试体验等;DSL能力提升;完善低级别系统编程和机器学习等重要领域的拓展;提供内存所有权和并发等主要语言特性的方案,要做到出色为止。
目前Swift这个项目的负责人叫 Ted Kremenek[4],斯坦福博士,他之前还是Rust的主力开发。在苹果工作的十年,一个人做了Clang的静态分析器,后面一直管理着Clang和Swift项目,向Chris汇报。Swift项目团队核心成员还有Dave Abrahams(已退出)、John McCall、Doug Gregor、Joe Groff、Saleem Abdulrasool(移植Swift到windows)、Tom Doron(创建SwiftNIO)等,他们的身影活跃在Github的Swift各个提案中。
框架选择
架构演进
SwiftUI
对于SwiftUI,AcFun自研了声明式UI Ysera,类似SwiftUI的接口,并且重构了AcFun里收藏模块列表视图和交互逻辑,如下图所示:
RXSwift
Combine
相关链接
[1]https://blog.timac.org/2020/1019-evolution-of-the-programming-languages-from-iphone-os-to-ios-14/
[2]https://atp.fm/205-chris-lattner-interview-transcript
[3]https://forums.swift.org/t/on-the-road-to-swift-6/32862
[4]https://twitter.com/tkremenek
[5]https://github.com/Dimillian/ACHNBrowserUI
[6]https://github.com/Dimillian/MovieSwiftUI
[7]https://github.com/pointfreeco/swift-composable-architecture
[8]https://github.com/apple/swift-evolution/blob/master/proposals/0195-dynamic-member-lookup.md
[9]https://github.com/apple/swift-evolution/blob/master/proposals/0216-dynamic-callable.md
[10]https://github.com/apple/swift-evolution/blob/main/proposals/0289-result-builders.md
[11]https://github.com/carson-katri/awesome-result-builders
[12]https://mp.weixin.qq.com/s/oRPRCx78owLe3_gROYapCw
[13]https://github.com/rakutentech/AltSwiftUI
[14]https://github.com/OpenCombine/OpenCombine
[15]https://github.com/sergdort/HandMadeRx/tree/master/HandMadeRx.playground/Sources
[16]https://github.com/CombineCommunity/rxswift-to-combine-cheatsheet
[17]https://github.com/matteocrippa/awesome-swift
[18]https://github.com/apple/swift-protobuf
[19]https://github.com/ReactiveX/RxSwift
[20]https://github.com/hyperoslo/Cache
[21]https://github.com/slazyk/Observable-Swift
”
欢迎加入
快手主站技术部客户端团队由业界资深的移动端技术专家组成,通过领先的移动技术深耕工程架构、研发工具、动态化、数据治理等多个垂直领域,积极探索创新技术,为亿万用户打造极致体验。团队自2011年成立以来全面赋能快手生态,已经建立起业内领先的大前端技术体系,支撑快手在国内外的亿万用户。
在这里你可以获得:
提升架构设计能力和代码质量
通过大数据解决用户痛点的能力
持续优化业务架构、挑战高效研发效能
和行业大牛并肩作战
我们期待你的加入!请发简历到:
app-eng-hr@kuaishou.com