技术沙龙|第二十五期:Swift&OC混编基础设施建设技术沙龙

原创
2021/10/18 08:47
阅读数 378

2021年10月20日,由58同城与稀土掘金联合主办的58技术沙龙Swift&OC混编基础设施建设技术沙龙即将正式与大家见面!本次沙龙由58同城用户价值增长部高级架构师彭飞老师出品,共邀请58同城的6位嘉宾进行6大选题的分享。沙龙线上线下同步进行,欢迎大家于10月20日14:00准时收看:

线下参与:北京58集团总部A1楼-木兰从军会议室

线上直播:扫码收看直播


1

日程安排


2

详细介绍

【出品人】
彭飞 58同城集团 用户价值增长中心-平台技术部-大前端技术部-iOS技术部 高级架构师
出品人寄语:
着Swift ABI在2019年稳定,苹果官方对Swift的逐步加持,开源社区弃OC而兴Swift,针对大型成熟App,引入Swift混编研发,是一个迫切和急需的事情。 在此背景下,58集团通过技术委员会,在去年Q4成立了混天协同项目,以降本提效、业务广泛应用为目标,打造Swift&OC混编基础设施建设。
在项目过程中,针对一个大型成熟App,有许多棘手问题需要处理。比如:
  1. 如何基于Clang Module打造一劳永逸的OC&Swift混编基础,并能解决与之带来的编译时间超长问题;

  2. 混编后从编译到最终的Mach-O文件都发生了较大变化,如何深入研究底层寻求解决方案,使得之前沉淀的研发工具能够与之适配;

  3. 新的语言引入,代码质量层次不齐,如何在早期通过质量规范来提高业务代码质量;

  4. 基础组件需要处理哪些纷繁复杂的混编问题使得上层业务可以无忧调用,业务如何从0到1再到深入应用等。

期望通过此次技术沙龙能与业界同行进行深度技术交流,共同推进iOS研发生态演进。
【分享嘉宾】
1.  曾庆隆  58同城用户价值增长部架构师
个人介绍: 曾庆隆,58同城用户价值增长中心-平台技术部-大前端技术部-iOS技术部架 构师
分享议题: 58同城Clang Module实践和编译时间优化
议题介绍: 主要介绍Clang Module构建过程,以及在58同城中混编实践中的编译时间分析和优化方案。
用户痛点: 组件化中混编环境需要引入Clang Module,但会导致编译时间加长,如何进行编译时间上的优化?
新技术/实用技术点:
1.Clang Module的构建过程
2.通过LLVM/Clang分析编译耗时
3.Module编译时间优化
听众收益:
1.了解Clang Module的编译原理
2.了解如何基于多app复杂业务实施Clang Module改造
3.了解Module编译时间的分析和优化思路
2.  宋立国 58同城信息安全部 高级工程师
个人介绍: 宋立国  58同城信息安全部-信息安全管理部-安全研发部-安全前端部高级工程师
分享议题: 基础组件的混编改造实践
议题介绍 主要介绍集团内部SDK以及三方SDK如何实现Module化改造,以及在实践过程中哪些API需要重点处理,作为独立SDK,如何快速实现OC到Swift的代码切换

用户痛点:

  • SDK如何支持module化混编?

  • 新旧SDK改造module有何不同?

  • .a .framework处理有何不同?

  • OC-API如何去适配?

  • OC-Swift如何快速转化

新技术/实用技术点:

1.modulemap的添加
2.宏/load等典型API的处理

3.SwiftRewriter的实现

听众收益:
1.了解SDK如何支持混编实践
2.提供OC的API在Swift中调用的处理方案
3.了解语言转化的大致原理与流程
3.  吴品 58同城房产事业部资深 工程师
个人介绍: 吴品  房产事业部-大前端技术部-移动技术部资深工程师
分享议题: Swift在58安居客房产业务实践
议题介绍 主要介绍Swift在房产的混编实践,以及混编开发过程中与现有机制的冲突与解决方案

用户痛点:Swift与OC如何混编,Swift与OC混编开发中底层特性的差异导致与现有机制的冲突如何解决?它与OC混编的性能怎么样?怎么控制风险以及代码质量。

新技术/实用技术点:

1. 通过Module化自动桥接
2. 反射原理
3. 混编注入绑定方案

听众收益:
1. 了解项目中如何Module化
2. 了解OC底层特性以及反射相关原理
3. 了解多种注入绑定方案以及优缺点
4.  蒋演 58同城用户价值增长中心架构师
个人介绍: 蒋演  用户价值增长中心-平台技术部-大前端技术部-iOS技术部架构师
分享议题: 基于SwiftLint的Swift代码质量控制
议题介绍 主要介绍多App协同下如何制定Swift编码规范,以及如何基于SwiftLint二次开发搭建代码质量平台。

用户痛点:如何根据各自的业务特点灵活制定Swift代码规范?如何构建Swift警告修复收益平台?

新技术/实用技术点:

1. 搭建可调试的SwiftLint环境;
2. 改造SwiftLint的代码,为自己的业务量身定制代码规范;
3.NodeJS+MySql+Flutter搭建警告修复平台
听众收益:
1. 理解SwiftLint的工作原理
2. 了解SwiftLint改造的方法
3. 了解搭建警告平台的技术方案及细节
5.  邓竹立 58同城用户价值增长中心 资深 工程师
个人介绍: 邓竹立  用户价值增长中心-平台技术部-大前端技术部-iOS技术部 资深工程师
分享议题: 基于mach-o的混编环境下无用代码检测实现
议题介绍 主要介绍Swift&OC混编项目无用代码检测的实现原理及探索过程。

用户痛点:混编项目的Swift的二进制存储与OC有较大的差异,业界常用的技术方案无法满足Swift的无用类检测。目前已知的技术手段包括Appcode开发工具、基于indexstoreDB的pecker、基于二进制分析的WBBlades可以满足Swift的无用类检测。

新技术/实用技术点:

1. 混编项目二进制的存储规则
2. 如何在二进制中判断Swift类被使用
3. 二进制文件检测与段迁移等技术的冲突解决

听众收益:
1. 深入了解Swift的二进制存储特征
2. 了解段迁移、反汇编等多种技术与二进制之间的相关性
6.  李杨 58同城招聘事业部高级 工程师
个人介绍: 李杨  招聘事业部-企业客户端-招才猫团队iOS开发高级 工程师
分享议题: 基于mach-o的APP机审工具实现
议题介绍 基于Mach-O 文件确定是否使用私有库,是否使用私有 API,是否使用敏感字段,是否存在未声明就使用的权限。

用户痛点:提交APP审核时,官方机审结果不可预知性,出现问题才能知道,事半功倍。

新技术/实用技术点:

1. 如何基于Mach-O解析出OC类型的Class,Method,String
2. 如何基于Mach-O解析出Swift类型的Class,Method
3. 如何
基于Mach-O扫描出用户权限
听众收益: 能深入了解基于Mach-O技术在机器审核上的应用,并基于此应用可以扩展到其它应用场景。

3

收看方式

线下参与:北京58集团总部A1楼-木兰从军会议室

线上直播:扫码入群收看直播



本文分享自微信公众号 - 58技术(architects_58)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部