由于原文已经删除, 在此转载供个人学习记录.
[转载]滴滴 iOS 动态化方案 DynamicCocoa 的诞生与起航
方案诞生
动态化一直是 App 开发梦寐以求的能力,而在 iOS 环境下,Apple 禁止了在 Main Bundle 外加载和执行的自己的动态库,所以像 Android 一样下发原生代码的方案被堵死。
后来像 React Native、Weex 这样的基于 Web 标准的跨端方案出现,各大公司都有对其进行尝试,但对于滴滴现状,也许并不适合:
- 滴滴 App 强交互、以地图为主体、端特异性高;
- 客户端人员充足,跨技术栈学习和开发有较大成本;
- 大量固化 Native 代码,重写成本高。
所以我们思考,能不能做一套保持 iOS 原生技术栈、不重写代码就神奇的拥有动态化能力的方案呢?
于是,我们设计和实现了一个具有里程碑意义的 iOS 专属动态化方案:DynamicCocoa