近日,快手、美团、滴滴、字节跳动等多家互联网公司的移动端开发工程师齐聚快手总部,共同参与了一场WWDC <T> 技术沙龙,iOS 开发者们互相交流经验,为 Swift 社区碰撞出新的思想火花。
Swift 是苹果公司开源的一门现代编程语言,编写 Swift 代码的过程充满了乐趣和互动。Swift 语法简洁,但表现力强,更包含了开发者喜爱的现代功能。Swift 代码从设计上保证安全,同时还能开发出运行快如闪电的软件,得到大批开发者的追捧。
这次的活动是“SwiftGG翻译组”联合“快手中学”举办的WWDC <T> 技术沙龙——北京地区专场线下沙龙。<T> 技术沙龙是 SwiftGG 翻译组的一个线下活动 IP,SwiftGG组织者的理念是要交流,不要讲课。因为水平不同,就会变成讲课,只有水平相近,才能真正交流。那么,对于线下活动而言,线下活动存在的意义就是交流,这种面对面的交流无法被任何搜索引擎或者线上工具替代,由此产生的价值也是独一无二的。
Swift 经过 ABI 稳定到 SwiftUI 隆重推出,受到开发者一致认可。再加上今年大热门 Swift 并发技术的发布,让 Swift 大放光彩。Swift 使得苹果开发更加稳定和高效,快手也将搭上 Swift 这班车,目前快手的AcFun 和快手海外版均已大范围使用 Swift 开发,这都是为了让咱们的用户能够用上更稳定、更好性能的产品,有更好的用户体验。这次交流会除了 Swift 相关主题,还有包体积瘦身的方案分享和提升开发体验的工程构建优化相关分享。
(▲交流现场)
本次交流采取线下线上结合的参会方式。交流会开放了部分线下参会名额,所有现场观众需佩戴口罩,确保测温和健康宝状态正常,在签署健康声明后方可入场,入会就座时也均保持了一定间隔。此外,交流全程还通过“快手 APP”直播,观看总人数超1.5万人。
来自快手主站技术部的移动端架构师戴铭、美团平台移动端技术专家宋旭陶、字节跳动 Client Infrastructure 高级工程师徐纪光、滴滴国内移动端专家工程师孔汉宁分别带来了现场分享,Hacking With Swift 系列书籍作者 Paul Hudson、objc 联合创始人Chris Eidhof则通过视频的方式问候现场及线上的开发者们。
戴铭使用了 SwiftUI 编写了一个PPT程序来进行此次 SwiftUI 的介绍,和 PowerPoint 还有 Keynote 不同的是,程序的动画效果非常丰富,这些动画效果都是使用了 SwiftUI 强大的 GeometryEffect、GeometryReader、AnyTransition、AnimatablePair、Shape 等技术来完成的。本场主要分享了在系统支持SwiftUI 之前,能让开发体验更加接近 SwiftUI 的一些关键技术。
(▲快手-戴铭《聊一聊 SwiftUI》
宋旭陶从介绍 Machine Outliner 开始,讲述 Machine Outliner 是如何减少重复指令个数,接下来通过介绍 Uber 的工作,包含 Uber 如何实现全局有外联优化,以及重复外联的方案。最终通过 LTO 链接时优化完成全局 Outliner 的任务。
(▲美团-宋旭陶《使用 Global Machine Outliner 缩减重复代码》)
徐纪光以 iOS 当前主流研发模式组件化为背景,分析了影响研发效率的几大痛点。随后介绍了对好的研发体验思考,引出了动态化研发模式 ARK,并从核心技术实现以及整套方案的实施两个方向深入探索 ARK 研发模式。
(▲字节-徐纪光《动态化研发模式-ARK》)
孔汉宁从 Pod 二进制污染问题讲起,随后介绍了 Xcode Cache 优劣势、原理和实践,其中包括缓存工作机制,如何利用缓存产物出包等,最后讨论了多分支场景下的实现方案。
(▲滴滴-孔汉宁《使用 Xcode Cache 为构建打包提速》)
接着 Paul Hudson 通过视频分享了《Build Software for iPhone 101》。Paul 表达了他对 Swift 美好前景的期盼以及信心。同时还列出了大量数据来说明目前 Swift 的使用情况,包括有多少人在学习 Swift,有多少公司在生产环境使用 Swift,甚至还提到了学 Swift 能赚多少钱,真是为打算学 Swift 的同学把方方面面都考虑到了。
(▲ Paul Hudson(左) & Chris Eidhof(右))
Chris Eidhof 则带来了《A Speed Run of Creating A TODO App in SwiftUI》的分享。Chris Eidhof 采用的是Live Coding 的方式,从零开始一步一步编码实现了一个 TODO 的程序,通过一个完整开发过程让大家感受到 SwiftUI 的简洁和优雅,还学习到了很多 Swift 开发的技巧。
快手以技术为核心竞争力,十分重视技术创新和应用,同时也希望通过更多更广泛的技术交流,和业内开发者分享经验,碰撞出更多智慧火花,推动技术不断前进。“快手中学”作为内部专业人才培养平台,旨在通过提供丰富多样的专业课堂培训、比赛、技术交流,助力人才成长,提升专业能力和专业影响力。未来,由快手中学组织的技术交流还会以每月一次的频率举办。
(通过在快手 APP 中搜索“快手中学”,可查看本次沙龙的完整视频回放;关注微信公众号“快手大前端技术”,回复“swift”可获得本次沙龙的全部PPT)